Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression

From: Nick Piggin
Date: Tue Oct 03 2006 - 21:47:19 EST


Andrew Morton wrote:
On Tue, 03 Oct 2006 17:09:29 -0700
Tim Chen <tim.c.chen@xxxxxxxxxxxxxxx> wrote:


On Tue, 2006-10-03 at 17:07 -0700, Andrew Morton wrote:


Perhaps the `static int __warn_once' is getting put in the same cacheline
as some frequently-modified thing. Perhaps try marking that as __read_mostly?


I've tried marking static int __warn_once as __read_mostly. However, it
did not help with reducing the cache miss :(

So I would suggest reversing the "Let WARN_ON/WARN_ON_ONCE return the
condition" patch. It has just been added 3 days ago so reversing it
should not be a problem.



Not yet, please. This is presently a mystery, and we need to work out
what's going on.

Still, it seems kind of odd to add this IMO. Especially the WARN_ON_ONCE
makes the if statement less readable.

if (WARN_ON_ONCE(blah)) {
}

What does that mean? Without looking at the implementation, that says
the condition is true at most once, when the warning is printed.

What's wrong with adding WARN and WARN_ONCE, and eating the single extra
line? You're always telling people to do that with assignments (which I
agree with, but are _more_ readable than this WARN_ON_ONCE thing).

--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com -
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/