On Thu, 5 Jul 2012, Jiang Liu wrote: > I think here PageSlab() is used to check whether a page hosting a memory > object is managed/allocated by the slab allocator. If it's allocated by slab > allocator, we could use kfree() to free the object. This is BS (here? what does that refer to). Could you please respond to my email? > We encountered this issue when trying to implement physical memory hot-removal. > After removing a memory device, we need to tear down memory management structures > of the removed memory device. Those memory management structures may be allocated > by bootmem allocator at boot time, or allocated by slab allocator at runtime when > hot-adding memory device. So in our case, PageSlab() is used to distinguish between > bootmem allocator and slab allocator. With SLUB, some pages will never be released > due to the issue described above. Trying to be more detailed that in my last email: These compound pages could also be allocated by any other kernel subsystem for metadata purposes and they will never be marked as slab pages. These generic structures generally cannot be removed. For the slab allocators: Only kmalloc memory uses the unmarked compound pages and those kmalloc objects are never recoverable. You can only recover objects that are in slabs marked reclaimable and those are properly marked as slab pages. AFAICT the patchset is pointless. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>