On Tue, May 3, 2016 at 9:53 AM, Luruo, Kuthonuzo <kuthonuzo.luruo@xxxxxxx> wrote: >> I missed that Alexander already landed patches that reduce header size >> to 16 bytes. >> It is not OK to increase them again. Please leave state as bitfield >> and update it with CAS (if we introduce helper functions for state >> manipulation, they will hide the CAS loop, which is nice). >> > > Available CAS primitives/compiler do not support CAS with bitfield. I propose > to change kasan_alloc_meta to: > > struct kasan_alloc_meta { > struct kasan_track track; > u16 size_delta; /* object_size - alloc size */ > u8 state; /* enum kasan_state */ > u8 reserved1; > u32 reserved2; > } > > This shrinks _used_ meta object by 1 byte wrt the original. (btw, patch v1 does > not increase overall alloc meta object size). "Alloc size", where needed, is > easily calculated as a delta from cache->object_size. What is the maximum size that slab can allocate? I remember seeing slabs as large as 4MB some time ago (or did I confuse it with something else?). If there are such large objects, that 2 bytes won't be able to hold even delta. However, now on my desktop I don't see slabs larger than 16KB in /proc/slabinfo. -- 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>