Re: add closefrom() call

看板FB_hackers作者時間18年前 (2007/07/24 10:54), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串11/26 (看更多)
On Fri, 6 Jul 2007, Julian Elischer wrote: > Ed Schouten wrote: >> * LI Xin <delphij@delphij.net> wrote: >>> Here is my implementation for FreeBSD. Some difference between my and >>> DragonFly's implementation: >>> >>> - closefrom(-1) would be no-op on DragonFly, my version would close all >>> open files (From my understanding of OpenSolaris's userland >>> implementation, this is Solaris's behavior). >>> - my version closefrom(very_big_fd) would result in EBADF. I am not very >>> sure whether this is correct, but it does not hurt for applications that >>> thinks closefrom() would return void. >> >> Wouldn't it be better to just implement it through fcntl() and implement >> closefrom() in libc? > > that's a possibility but I personally thing the huge difference in > efficiency makes it worth putting it in the kernel. Quite a few programs I > know of could really help their startup time with this as the first thing > they do is "close the first 2000 file descriptors. The Solaris implementation appears to implement two strategies: (1) If procfs is mounted, list the fd directory to get a list of open fds, then close those by number. (2) If procfs is not mounted, query the number of open fds using the resource limit interface, then sequentially close until the right number close. Hence my question as to whether there's actually a big benefit or not -- do we think closefrom() is a performance-critical function? Robert N M Watson Computer Laboratory University of Cambridge _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
文章代碼(AID): #16fMdh00 (FB_hackers)
討論串 (同標題文章)
文章代碼(AID): #16fMdh00 (FB_hackers)