Messages in this thread | | | Date | Sat, 24 Jun 2006 08:33:54 -0400 (EDT) | From | Steven Rostedt <> | Subject | Re: [PATCH] ext3_clear_inode(): avoid kfree(NULL) |
| |
On Sat, 24 Jun 2006, Arjan van de Ven wrote:
> 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...
But doesn't the unlikely help the prediction? Like I stated, the if may never succeed.
-- Steve
> > > 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/
| |