Re: kfree(NULL)

From: Daniel Walker
Date: Fri Apr 21 2006 - 12:03:29 EST


On Fri, 2006-04-21 at 17:25 +0200, Tilman Schmidt wrote:
> On 21.04.2006 11:00, Andrew Morton wrote:
>
> > James Morris <jmorris@xxxxxxxxx> wrote:
> >
> >>On Fri, 21 Apr 2006, Daniel Walker wrote:
> >>
> >>> I included a patch , not like it's needed . Recently I've been
> >>>evaluating likely/unlikely branch prediction .. One thing that I found
> >>>is that the kfree function is often called with a NULL "objp" . In fact
> >>>it's so frequent that the "unlikely" branch predictor should be inverted!
> >>>Or at least on my configuration.
> >>
> >>It would be helpful to collect some stats on this so we can look at the
> >>ratio.
> >
> > Yes, kfree(NULL) is supposed to be uncommon.
>
> Not anymore, after the recent campaign to elliminate explicit NULL
> checks before calls to kfree().
>
> > If someone's doing it a lot then we should fix up the callers.
>
> If that fixup amounts to re-adding the NULL check just elliminated
> then that's no improvement. It would be better to drop the assumption
> that kfree() calls with a NULL argument are uncommon, and consequently
> remove the unlikely() predictor. Adding likely() instead may or may
> not be a good idea.


After reviewing some of the callers of kfree(NULL) they appear to be
errors by the caller .. Where there's some false assumptions going on
during looping or repeated calls to the same function.

I agree with Andrew , I think the calls should be investigated while
retaining the unlikley() predictor .

Daniel

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/