The kernel slab cache allocator is doing something called colouring. It works like this: When a slab is allocated and split up to the structures, some space is left over. Thus the first structure can start at offset from 0 to the amount of space left. The allocator thus chooses all suitable offsets in turn (where suitable means aligned to specified order with reasonable (for given platform) default). Note, that this happens even for generic caches (kmalloc), where the size is power of two. This is because for all caches with slab size equal the page size the slab management data is at the end of the page, so the space available is really PAGE_SIZE - 96. I however don't know, if you are not talking about something more sofisticated. (See comment in slab.c for reference to whitepaper about the mechanizm implemented). Thanks for the information, basically i am interested in knowing how linux kernel manages data allocation so that conflict misses in the data cache is minimized, the one you pointed out might also do the same, i am looking in there now. when i google for "cache coloring linux SGI ", i am getting this oss.sgi.com/projects/sgilinux-combined/ download/1.0-patches but it seems this link is no more there, is it being integrated into the kernel, can i getit from some other place Thanhs Kugan wiy!^Wvmdzޗ+r{mfXzޖwn'PmzY+