Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- From: Andrew James Wade <andrew.j.wade@xxxxxxxxx>
- Date: Tue, 3 Oct 2006 23:24:27 -0400
On Tuesday 03 October 2006 21:14, Andrew Morton wrote:
There are changes here: in the old code we'll avoid reading the static
variable. In the new code we'll read the static variable, but we'll avoid
evaluating the condition.
Tim Chen's patch goes back to the old behaviour. I suspect the cache
misses on __warn_once is what he is measuring. If so, the (untested)
patch below should reduce the cache misses back to those of the old
code.
signed-off-by: Andrew Wade <andrew.j.wade@xxxxxxxxx>
diff -rupN a/include/asm-generic/bug.h b/include/asm-generic/bug.h
--- a/include/asm-generic/bug.h 2006-10-03 13:58:40.000000000 -0400
+++ b/include/asm-generic/bug.h 2006-10-03 23:17:37.000000000 -0400
@@ -45,9 +45,10 @@
static int __warn_once = 1; \
typeof(condition) __ret_warn_once = (condition);\
\
- if (likely(__warn_once)) \
- if (WARN_ON(__ret_warn_once)) \
+ if (unlikely(__ret_warn_once) && __warn_once) { \
__warn_once = 0; \
+ WARN_ON(1); \
+ }; \
unlikely(__ret_warn_once); \
})
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
- Follow-Ups:
- Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- From: Andrew Morton
- Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- References:
- [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- From: Tim Chen
- Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- From: Tim Chen
- Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- From: Andrew Morton
- [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- Prev by Date: Re: [patch] remove MNT_NOEXEC check for PROT_EXEC mmaps
- Next by Date: Re: [patch] remove MNT_NOEXEC check for PROT_EXEC mmaps
- Previous by thread: Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- Next by thread: Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
- Index(es):
Relevant Pages
|