Messages in this thread | | | Date | Thu, 26 Mar 2015 08:28:00 +0100 | From | Christoph Hellwig <> | Subject | Re: [patch 1/4] fs, jfs: remove slab object constructor |
| |
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.
| |