>Just looking at the third run, it seems to me that "if (likely(p)) >kfree(p);" beats a naked "kfree(p);" everytime, whether p is half >NULL's, or very few NULL's, or almost all NULL's.
Well, kfree inlined was already mentioned but forgotten again. What if this was used: inline static void kfree_WRAP(void *addr) { if(likely(addr != NULL)) { kfree_real(addr); } return; } And remove the NULL-test in kfree_real()? Then we would have: test eax, eax jz afterwards; <some more stuff for call> call kfree_real; .afterwards: <continue execution> The two cases then: ptr==NULL: test-jmp ptr!=NULL: test-call(freeit-return) Looks like the least expensive way to me. Jan Engelhardt -- No TOFU for me, please. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/