On Thu, Oct 14, 2021 at 02:46:01AM -0600, Martin Pieuchot wrote:
> CVSROOT:      /cvs
> Module name:  src
> Changes by:   m...@cvs.openbsd.org    2021/10/14 02:46:01
> 
> Modified files:
>       sys/kern       : sys_generic.c 
> 
> Log message:
> Implement select(2) and 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().  Those
> events are lazily deleted to reduce the overhard of freeing/allocating
> them when select(2) is called in a loop.
> 
> 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 select(2) and pselect(2) will now query the
> 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 a next step.
> 
> The various *_poll() routines could be removed as soon as poll(2) and
> ppoll(2) are also converted.
> 
> Based on similar work done on DragonFlyBSD with inputs from from visa@,
> millert@, anton@, cheloha@, thanks!
> 
> ok claudio@, bluhm@
> 

regress/usr.bin/ssh got stuck in an odd state where the sshd.log keeps
growing. This line is repeated over and over:

        pselect: Broken pipe

Did the select semantics change?

Reply via email to