From: Jeremy Fitzhardinge <jeremy@goop.org>
To: tim.c.chen@linux.intel.com
Cc: herbert@gondor.apana.org.au, akpm@osdl.org,
linux-kernel@vger.kernel.org, leonid.i.ananiev@intel.com
Subject: Re: [PATCH] Fix WARN_ON / WARN_ON_ONCE regression
Date: Tue, 03 Oct 2006 21:39:58 -0700 [thread overview]
Message-ID: <45233B1E.3010100@goop.org> (raw)
In-Reply-To: <1159919263.8035.65.camel@localhost.localdomain>
Tim Chen wrote:
> I think if the condition changes between two evaluations, we do have a
> problem with my fix.
That's not the problem; one hopes that the WARN_ON predicate has no
side-effects (though I know there are places which have side effects in
BUG_ON). The point is that the vast majority of WARN_ONs *don't* have
their values used, so in the current code the variable reference is dead
code and will be removed. But if gcc can't prove the predicate is
side-effect free (call to an external function, for example), then gcc
will have to generate two calls to it, regardless of whether the second
value is used.
And since the condition variable will - at worst - be stored on the
stack on a hot cache line, I don't see how there could be any extra
cache misses.
> I don't have a better idea to avoid using a local
> variable to store the condition. I think we should at least reverse the
> WARN_ON/WARN_ON_ONCE patch if a better way cannot be found.
I don't think you've proved your case here. Do you *know* there are
extra cache misses (ie, measuring them), or is it just your theory to
explain a performance regression?
The other question is whether WARN_ON should return a value. Where does
it get used? It doesn't seem very valuable.
J
next prev parent reply other threads:[~2006-10-04 4:40 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-03 23:04 [PATCH] Fix WARN_ON / WARN_ON_ONCE regression Tim Chen
2006-10-03 23:19 ` Tim Chen
2006-10-04 0:06 ` Jeremy Fitzhardinge
2006-10-03 23:47 ` Tim Chen
2006-10-04 4:39 ` Jeremy Fitzhardinge [this message]
2006-10-04 13:21 ` Tim Chen
2006-10-04 16:30 ` Andrew Morton
2006-10-04 16:22 ` Tim Chen
2006-10-04 17:34 ` Andrew Morton
2006-10-04 20:43 ` Tim Chen
2006-10-10 1:09 ` Tim Chen
2006-10-10 13:04 ` Steven Rostedt
2006-10-10 15:41 ` Tim Chen
2006-10-10 20:03 ` Jeremy Fitzhardinge
2006-10-04 0:07 ` Andrew Morton
2006-10-03 23:42 ` Tim Chen
2006-10-04 0:09 ` Tim Chen
2006-10-04 1:14 ` Andrew Morton
2006-10-04 1:47 ` Nick Piggin
2006-10-04 3:24 ` Andrew James Wade
2006-10-04 3:32 ` Andrew Morton
2006-10-04 16:47 ` Andrew James Wade
2006-10-04 22:06 ` Andrew Morton
2006-10-05 8:13 ` Andrew James Wade
2006-10-05 8:36 ` Andrew Morton
2006-10-05 21:31 ` Andrew James Wade
2006-10-05 21:01 ` Tim Chen
-- strict thread matches above, loose matches on Subject: below --
2006-10-04 16:57 Ananiev, Leonid I
2006-10-04 17:28 ` Andrew Morton
2006-10-08 0:28 ` Steven Rostedt
2006-10-08 0:39 ` Jeremy Fitzhardinge
2006-10-04 21:55 Ananiev, Leonid I
2006-10-05 21:37 ` Andrew Morton
2006-10-05 21:43 ` Jeremy Fitzhardinge
2006-10-05 21:52 ` Andrew Morton
2006-10-05 22:02 ` Herbert Xu
2006-10-05 22:40 ` Jeremy Fitzhardinge
2006-10-05 21:51 ` Tim Chen
2006-10-06 16:11 ` Andrew James Wade
2006-10-06 4:06 Ananiev, Leonid I
2006-10-10 21:05 Ananiev, Leonid I
2006-10-10 21:17 ` Steven Rostedt
2006-10-10 21:41 ` Roland Dreier
2006-10-10 22:59 ` Jeremy Fitzhardinge
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45233B1E.3010100@goop.org \
--to=jeremy@goop.org \
--cc=akpm@osdl.org \
--cc=herbert@gondor.apana.org.au \
--cc=leonid.i.ananiev@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tim.c.chen@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox