On Wed, Dec 23, 2020 at 01:46:51PM +0000, Stuart Henderson wrote:
> On 2020/12/22 06:24, Martin Pieuchot wrote:
> > CVSROOT:    /cvs
> > Module name:        src
> > Changes by: [email protected]    2020/12/22 06:24:45
> > 
> > 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().
> > 
> > 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.
> > 
> > Based on similar work done on DragonFlyBSD with inputs from from visa@,
> > millert@, anton@, cheloha@, thanks!
> > 
> > ok visa@
> > 
> 
> rxvt-unicode is crashing frequently;
> 
> (libev) select: Resource temporarily unavailable
> Abort trap (core dumped) 
> 
> libev's select backend doesn't handle EAGAIN here, only
> EBADF/ENOMEM/EINTR.
> 
> I am triggering it fairly easily, what can I get that would help
> debugging? Should I hack the kernel to permit ktrace on setgid
> proc's?

Please test again with the recent kern_event.c commits (r1.154 in
particular). I think select(2) should not return EAGAIN.

Reply via email to