Messages in this thread | | | Date | Sun, 27 Mar 2005 17:12:58 +0200 (MEST) | From | Jan Engelhardt <> | Subject | Re: [PATCH] no need to check for NULL before calling kfree() -fs/ext2/ |
| |
>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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |