Messages in this thread | | | Date | Fri, 04 Jan 2008 22:41:27 -0800 | From | Jeremy Fitzhardinge <> | Subject | Re: [patch 1/3] move WARN_ON() out of line |
| |
Arjan van de Ven wrote: > 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).
Power implements WARN_ON this way, and all the machinery is in place to generically implement WARN_ON that way if you want. It does generate denser code than the call (since its just a single trapping instruction with no need for argument setup), and the performance cost of the trap shouldn't matter if warnings are rare (which one would hope).
J
| |