Messages in this thread | | | Subject | Re: [PATCH] ext3_clear_inode(): avoid kfree(NULL) | From | Arjan van de Ven <> | Date | Sat, 24 Jun 2006 14:27:39 +0200 |
| |
On Sat, 2006-06-24 at 08:20 -0400, Steven Rostedt wrote: > On Sat, 24 Jun 2006, Arjan van de Ven wrote: > > > > > > > > > Because at that callsite, NULL is the common case. We avoid a do-nothing > > > function call most of the time. It's a nano-optimisation. > > > > but a function call is basically free, while an if () is not... even > > with unlikely()... > > > > sounds like a misoptimization to me. > > > > How is a function call free when an if is not?
in general, a function call is 100% predictable without any real control flow dependencies for the processor, and thus there is no real issue in the execution pipeline. An if is a conditional branch, which breaks up the execution pipeline if mispredicted...
> Especially if that > function does the exact same if?
sure;
but to call this code an optimization ... it's just extra code.
- 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/
| |