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

From: Benjamin LaHaise
Date: Thu Sep 15 2005 - 15:15:04 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/