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 [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

