Messages in this thread |  | | Date | Mon, 19 Mar 2007 14:41:00 -0700 | | From | Andrew Morton <> | | Subject | Re: [PATCH] slab: deal with NULL pointers passed to kmem_cache_free |
| |
On Mon, 19 Mar 2007 23:25:36 +0200 (EET) "Pekka Enberg" <penberg@cs.helsinki.fi> wrote:
> > On 3/19/2007, "Andrew Morton" <akpm@linux-foundation.org> wrote: > > Would prefer to do: > > > > static inline void kmem_cache_free_if_not_null(struct kmem_cache *cachep, > > void *objp) > > { > > if (objp) > > kmem_cache_free(cachep, objp); > > } > > > > so that we don't add extra overhead to all the thousands of existing, > > well-behaved callsites. > > That bloats kernel text all the same
But only for those callsites which choose to use it! We avoid adding a test-and-branch to those thousands of callsite which don't need it.
This is a super-hot path.
> so it's much cleaner to just make > the callers explicitly check for NULL then. That said, I'm sorry but I > just don't buy the "overhead" part of your argument since it's one > branch and no extra data cache pressure especially as we're already > doing the BUG_ON and page flag checking.
The BUG_ON (at least) should probably be moved into CONFIG_DEBUG_SLAB.
> But, since you're NAKing my patch, we need to get the mempool for from > the original thread in to fix the oops.
We need to fix scsi rather than working around it in slab or in mempool - it appears that it's getting its sg lists tangled up, and the problem has been known since November (at least). - 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/
|  |