Re: "Read my lips: no more merges" - aka Linux 2.6.14-rc1

Benjamin LaHaise
2005-09-15T20:14:43Z

On Tue, Sep 13, 2005 at 09:04:32AM +0200, Eric Dumazet wrote:
> I wish a process param could allow open() to take any free fd available,
> not the lowest one. One can always use fcntl(fd, F_DUPFD, slot) to move a
> fd on a specific high slot and always keep the 64 first fd slots free to
> speedup the kernel part at open()/dup()/socket() time.

The overhead is easy to avoid by making use of dup2() and close() to keep
the lowest file descriptors in the table free, allowing open() and socket()
to always return 3 or 4.

Alternatively, the kernel could track available file descriptors using a
tree to efficiently insert freed slots into an ordered list of free
regions (something similar to the avl tree used in vmas). Is it worth
doing?

-ben
--
"Time is what keeps everything from happening all at once." -- John Wheeler