2010-07-27 17:27:12

by Israel Schlesinger

[permalink] [raw]
Subject: [PATCH v2] checkpatch: Add warnings for use of mdelay()

mdelay is a busy-wait loop which is wasteful. If at all possible,
callers should use msleep instead of mdelay.

The only time mdelay is really appropriate is in atomic context,
however, delays of 1ms+ in atomic context are rather expensive, so
a warning for this case is probably appropriate as well to encourage
people to move such expensive delays outside of atomic context

Signed-off-by: Israel Schlesinger <[email protected]>
---
scripts/checkpatch.pl | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index bd88f11..9ce1cb5 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -2570,6 +2570,11 @@ sub process {
}
}

+# check the patch for use of mdelay
+ if ($line =~ /\bmdelay\s*\(/) {
+ WARN("use of mdelay() found: msleep() is the preferred API.\n" . $line );
+ }
+
# warn about #ifdefs in C files
# if ($line =~ /^.\s*\#\s*if(|n)def/ && ($realfile =~ /\.c$/)) {
# print "#ifdef in C files should be avoided\n";
--
1.7.0.2

--
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum


2010-07-28 03:11:57

by Cong Wang

[permalink] [raw]
Subject: Re: [PATCH v2] checkpatch: Add warnings for use of mdelay()

On Tue, Jul 27, 2010 at 10:27:10AM -0700, Israel Schlesinger wrote:
>mdelay is a busy-wait loop which is wasteful. If at all possible,
>callers should use msleep instead of mdelay.
>
>The only time mdelay is really appropriate is in atomic context,
>however, delays of 1ms+ in atomic context are rather expensive, so
>a warning for this case is probably appropriate as well to encourage
>people to move such expensive delays outside of atomic context
>

Then udelay() is also preferred...