From: Eric Dumazet
Sent: 20 April 2020 11:26
On 4/20/20 12:15 AM, Nate Karstens wrote:
quoted
The close-on-fork flag causes the file descriptor to be closed
atomically in the child process before the child process returns
from fork(). Implement this feature and provide a method to
get/set the close-on-fork flag using fcntl(2).
This functionality was approved by the Austin Common Standards
Revision Group for inclusion in the next revision of the POSIX
standard (see issue 1318 in the Austin Group Defect Tracker).
Oh well... yet another feature slowing down a critical path.
...
I suggest we group the two bits of a file (close_on_exec, close_on_fork) together,
so that we do not have to dirty two separate cache lines.
Otherwise we will add yet another cache line miss at every file opening/closing for processes
with big file tables.
How about only allocating the 'close on fork' bitmap the first time
a process sets a bit in it?
Off hand I can't imagine the use case.
I thought posix always shared fd tables across fork().
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)