On Thu, Aug 29, 2019 at 08:42:29AM +0200, Greg KH wrote: > On Thu, Aug 29, 2019 at 01:49:53PM +0800, Peikan Tsai wrote: [snip] > > The allocated size for each binder_thread is 512 bytes by kzalloc. > > Because the size of binder_thread is fixed and it's only 304 bytes. > > It will save 208 bytes per binder_thread when use create a kmem_cache > > for the binder_thread. > > Are you _sure_ it really will save that much memory? You want to do > allocations based on a nice alignment for lots of good reasons, > especially for something that needs quick accesses. Alignment can be done for slab allocations, kmem_cache_create() takes an align argument. I am not sure what the default alignment of objects is though (probably no default alignment). What is an optimal alignment in your view? > Did you test your change on a system that relies on binder and find any > speed improvement or decrease, and any actual memory savings? > > If so, can you post your results? That's certainly worth it and I thought of asking for the same, but spoke too soon! Independent note: In general I find the internal fragmentation with large kmalloc()s troubling in the kernel :-(. Say you have a 5000 objects of 512 allocation, each 300 bytes. 212 * 5000 is around 1MB. Which is arguably not neglible on a small memory system, right? thanks, - Joel _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel