Messages in this thread | | | Date | Thu, 03 Jan 2008 22:03:13 +0100 | From | Arjan van de Ven <> | Subject | Re: [patch 1/3] move WARN_ON() out of line |
| |
Olof Johansson wrote: > On Thu, Jan 03, 2008 at 01:56:58AM +0100, Arjan van de Ven wrote: >> Subject: move WARN_ON() out of line >> From: Arjan van de Ven <arjan@linux.intel.com> >> CC: Ingo Molnar <mingo@elte.hu> >> CC: Andrew Morton <akpm@linux-foundation.org> >> >> A quick grep shows that there are currently 1145 instances of WARN_ON >> in the kernel. Currently, WARN_ON is pretty much entirely inlined, >> which makes it hard to enhance it without growing the size of the kernel >> (and getting Andrew unhappy). >> >> This patch moves WARN_ON() out of line entirely. I've considered keeping >> the test inline and moving only the slowpath out of line, but I decided >> against that: an out of line test reduces the pressure on the CPUs >> branch predictor logic and gives smaller code, while a function call >> to a fixed location is quite fast. Likewise I've considered doing something >> similar to BUG() (eg use a trapping instruction) but that's not really >> better (it needs the test inline again and recovering from an invalid >> instruction isn't quite fun). > > Hi Arjan, > > I've got a couple of patches in -mm at the moment that introduces __WARN() > and uses that (and lets architectures override __WARN, since for example > powerpc does use trapping instructions similarly to BUG()). > > The two patches in question are: > > bugh-remove-have_arch_bug--have_arch_warn.patch > powerpc-switch-to-generic-warn_on-bug_on.patch > > Care to do this incrementally on top of that instead? I.e. call > do_warn_on() from the asm-generic/bug.h __WARN() instead. > > ok just did that; will post shortly
| |