Hello Dave & all, Below is a patch that moves the skb_{over,under}_panic function calls in skb_put and skb_push out of line on i386 and hopefully improves register allocation. If this turns out to be
'call skb_" why "_panic' will break using module symbol versions, skb_*_panic symbols are exported so all references to those symbols need to be visible to cpp, not inside string quotes. This should
Oops, pressed send too soon. Because you are putting the code in .text.lock which is an unusual section, it will make debugging easier if you make the skb code look like the existing lock code, where
How ugly. Does this really make any benchmarkable difference? (very much doubting it) If you really care about such microoptimization just use __builtin_expect. -Andi
I can't see how this can make all that much of a difference, as Andi has stated already. Especially on x86. I mean, GCC is going to generate a branch around the "call skb_foo_panic" code block, and t
Hello Dave & all, Below is a patch that moves the skb_{over,under}_panic function calls in skb_put and skb_push out of line on i386 and hopefully improves register allocation. If this turns out to be
'call skb_" why "_panic' will break using module symbol versions, skb_*_panic symbols are exported so all references to those symbols need to be visible to cpp, not inside string quotes. This should
Oops, pressed send too soon. Because you are putting the code in .text.lock which is an unusual section, it will make debugging easier if you make the skb code look like the existing lock code, where
How ugly. Does this really make any benchmarkable difference? (very much doubting it) If you really care about such microoptimization just use __builtin_expect. -Andi
I can't see how this can make all that much of a difference, as Andi has stated already. Especially on x86. I mean, GCC is going to generate a branch around the "call skb_foo_panic" code block, and t