Re: [patch 1/4] fs, jfs: remove slab object constructor

From: Christoph Hellwig
Date: Thu Mar 26 2015 - 03:28:07 EST


On Wed, Mar 25, 2015 at 07:37:40PM -0700, David Rientjes wrote:
> That would be true only for
>
> ptr = mempool_alloc(gfp, pool);
> mempool_free(ptr, pool);
>
> and nothing in between, and that's pretty pointless. Typically, callers
> allocate memory, modify it, and then free it. When that happens with
> mempools, and we can't allocate slab because of the gfp context, mempools
> will return elements in the state in which they were freed (modified, not
> as constructed).

The historic slab allocator (Solaris and early Linux) expects objects
to be returned in the same / similar enough form as the constructor
returned it, and the constructor is only called when allocating pages
from the page pool.

I have to admit that I haven't used this feature forever, and I have no idea if
people changed how the allocator works in the meantime.
--
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/