created | 2021-11-01T09:19:48Z |
---|---|
begin | 2021-10-24T10:58:43Z |
end | 2021-10-24T11:23:22Z |
path | src/sys |
commits | 1 |
date | 2021-10-24T11:23:22Z | |||
---|---|---|---|---|
author | mpi | |||
files | src/sys/kern/sys_generic.c | log | diff | annotate |
src/sys/miscfs/fifofs/fifo_vnops.c | log | diff | annotate | |
message |
Implement poll(2), select(2), ppoll(2) & pselect(2) on top of kqueue. The given set of fds are converted to equivalent kevents using EV_SET(2) and passed to the scanning internals of kevent(2): kqueue_scan(). ktrace(1) will now output the converted kevents on top of the usuals set bits to be able to find possible error in the convertion. This switch implies that poll(2) and select(2) will now query underlying kqfilters instead of the *_poll() routines. An increase in latency is visible, especially with UDP sockets and NET_LOCK()-contended subsystems and will be addressed in next steps. Based on similar work done on MacOS and DragonFlyBSD with inputs from visa@, millert@, anton@, cheloha@, thanks! Tested by many, thanks! ok claudio@, bluhm@ |