Re: hald spins in a poll/read loop against /dev/usb with CURRENT

From: Joe Marcus Clarke <marcus_at_marcuscom.com>
Date: Fri, 25 Sep 2009 18:04:11 -0400
On Sat, 2009-09-26 at 05:59 +0800, Rohit Grover wrote:
> On Fri, Sep 25, 2009 at 9:32 PM, Gary Jennejohn
> <gary.jennejohn_at_freenet.de> wrote:
> > On Fri, 25 Sep 2009 21:23:12 +0800
> > Rohit Grover <rgrover1_at_gmail.com> wrote:
> >
> >> Hald spins endlessly on my CURRENT. I have the following from truss:
> >>
> >> open("/dev/usb",O_RDONLY,00)                     = 12 (0xc)
> >> ...
> >> ...
> >> poll({4/POLLIN 8/POLLIN 10/POLLIN|POLLPRI 15/POLLIN 89/POLLIN 6/POLLIN
> >> 9/POLLIN 88/POLLIN 7/POLLIN 12/POLLIN},10,161) = 1 (0x1)
> >> gettimeofday({1253883730.961100 },0x0)           = 0 (0x0)
> >> read(12,0xbfbfe56c,384)                          = 0 (0x0)
> >> gettimeofday({1253883730.961158 },0x0)           = 0 (0x0)
> >> poll({4/POLLIN 8/POLLIN 10/POLLIN|POLLPRI 15/POLLIN 89/POLLIN 6/POLLIN
> >> 9/POLLIN 88/POLLIN 7/POLLIN 12/POLLIN},10,161) = 1 (0x1)
> >> gettimeofday({1253883730.961228 },0x0)           = 0 (0x0)
> >> read(12,0xbfbfe56c,384)                          = 0 (0x0)
> >> gettimeofday({1253883730.961286 },0x0)           = 0 (0x0)
> >> poll({4/POLLIN 8/POLLIN 10/POLLIN|POLLPRI 15/POLLIN 89/POLLIN 6/POLLIN
> >> 9/POLLIN 88/POLLIN 7/POLLIN 12/POLLIN},10,161) = 1 (0x1)
> >> gettimeofday({1253883730.961357 },0x0)           = 0 (0x0)
> >> read(12,0xbfbfe56c,384)                          = 0 (0x0)
> >> gettimeofday({1253883730.961415 },0x0)           = 0 (0x0)
> >> ...
> >> ...
> >>
> >> Why is /dev/usb responding to poll() when there is no data to be read?
> >>
> >> thanks.
> >>
> >
> > /dev/usb is a directory on my 9-CURRENT machine, not a device file.
> >
> > Did you install hald recently, e.g. after updating you kernel?  I'm pretty sure that
> > hald depends on kernel sources and often requires a fresh installation.
> 
> I've rebuilt hald (hal-0.5.11_26) after checking out 8/stable under
> /usr/src/sys. Same problem. A spin loop of poll/read, with /dev/usb
> responding to poll() but not to read().

Insufficient.  You need to be running on a world/kernel which are in
sync with each other.  You also need to make sure the libusb port is no
longer installed, and that you have run "make delete-old" after the
upgrade.  Then rebuild hal.

Joe

> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
> 
-- 
PGP Key : http://www.marcuscom.com/pgp.asc

Received on Fri Sep 25 2009 - 20:04:13 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:56 UTC