On Thu, 7 Jun 2007, Eric Dumazet wrote:
Davide, are you sure we want FIFO for non sequential allocations ?
This tends to use all the fmap slots, and not very cache friendly
if an app does a lot of [open(),...,close()] things. We already got a perf drop because of RCUification of file freeing (FIFO mode instead of LIFO given by kmalloc()/kfree())
If the idea behind this FIFO was security (ie not easy for an app to predict next glibc file handle), we/glibc might use yet another FD_SECUREMODE flag, wich ORed with O_NONSEQFD would ask to fdmap_newfd() to take the tail of fmap->slist, not head.
Uli, would it be OK to rely only on base randomization and use a LIFO instead? We have base randomization, plus LIFO does not mean strictly sequential like legacy allocator, just more compatc and cache friendly.