Re: [PATCH 2/5] mm: remove unlikly NULL from kfree

From: Jeremy Fitzhardinge
Date: Wed Mar 25 2009 - 16:26:22 EST


Steven Rostedt wrote:
Thanks for this info!

Although gcc plays a role too. That is, if we have

if (x)
do something small;

do something large;


this can be broken into:

cmp x
beq 1f
do something small
1:
do something large

Which plays nice with the cache. But, by adding a unlikely(x), gcc will probably choose to do:

cmp x
bne 2f

1:
do something large

ret;

2:
do something small
b 1b

which hurts in a number of ways.

I think that's probably the dominant effect on x86 systems, because Intel doesn't recommend using the branch hint prefixes as far as I can tell (their consumption of icache space outweighs any benefit of priming the predictor).

J
--
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/