2002-03-05 01:06:34

by Carl-Johan Kjellander

[permalink] [raw]
Subject: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

I have a computer with four USB ports, one UHCI-controller on the
motherboard and three OHCI PCI-cards from Lucent Technologies (can't
get the exact make and model until tomorrow, no physical access right now).

Attached to each one of these is an Philips ToUCam pro which uses the pwc
and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)

The camera attached to the UHCI-controller running usb-uhci works just fine,
but the three attached to the OHCI-controllers running usb-ohci don't. After
a random amount of frames being read from a camera the read()-call blocks
indefinitely until the device is closed. Next time the v4l-device is opened
the program can again read frames from the camera but read() always blocks
after some time.

The amount of frames that are successfully read can range from 50 to a
couple of thousand, the amount seems to be totally random. There are no
messages in the logs of any kind when the blocking occurs. It happens with
both read() and mmap(), always on the usb-ohci cards and never on the
usb-uhci onboard controller.

Since we have never seen this problem with these cameras, and we've been
using them for well over a year, so I don't think it is a bug in pwc.o. It
could be flaky hardware, in which case usb-ohci should have a workaround.
It could be that some of the cards are sharing IRQ's but one of the cards
has a differant one, and the UHCI is on the same IRQ as two of the OHCI
cards.

The most probable is that there is a bug somewhere in usb-ohci since we
only see the behaviour with this card/driver combination, or that the
cards are crap.

I've tried both 2.4.17 and 18 with the same result.

The only thing in dmesg is:
pwc Iso frame 1 of USB has error -18

But these messages occur without read() blocking most of the times.

Is there any way to get more info on what is going on in usb-ohci?

/Carl-Johan Kjellander
please Cc me as I'm not subscribing to the list.
--
begin 644 carljohan_at_kjellander_dot_com.gif
Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I
Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV
R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`


2002-03-05 05:19:38

by Greg KH

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

On Tue, Mar 05, 2002 at 02:06:07AM +0100, Carl-Johan Kjellander wrote:
>
> Attached to each one of these is an Philips ToUCam pro which uses the pwc
> and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)

As you are using this closed source module, I suggest you take this up
with that module's author.

Good luck,

greg k-h

2002-03-05 10:57:20

by Carl-Johan Kjellander

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

Greg KH wrote:
> On Tue, Mar 05, 2002 at 02:06:07AM +0100, Carl-Johan Kjellander wrote:
>
>>Attached to each one of these is an Philips ToUCam pro which uses the pwc
>>and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)
>>
>
> As you are using this closed source module, I suggest you take this up
> with that module's author.

The problem exists even when pwcx.o isn't loaded so the bug is not in there.

# lsmod --version
lsmod version 2.4.13
# lsmod
Module Size Used by Tainted: P
eepro100 17520 1
appletalk 19596 0 (autoclean)
ipchains 30884 12
md 43712 0 (unused)
audio 38080 0 (unused)
soundcore 3428 8 [audio]
pwc 38592 1
usb-uhci 21348 0 (unused)
usb-ohci 17920 0 (unused)
usbcore 49440 1 [audio pwc usb-uhci usb-ohci]

The test machine has not had pxwc.o loaded after bootup and the problem
is still there.

/Carl-Johan Kjellander
please CC me.
--
begin 644 carljohan_at_kjellander_dot_com.gif
Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I
Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV
R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`

2002-03-05 16:18:10

by Oliver Neukum

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

Am Dienstag, 5. M?rz 2002 06:11 schrieb Greg KH:
> On Tue, Mar 05, 2002 at 02:06:07AM +0100, Carl-Johan Kjellander wrote:
> > Attached to each one of these is an Philips ToUCam pro which uses the pwc
> > and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)
>
> As you are using this closed source module, I suggest you take this up
> with that module's author.

Perhaps you could first ask whether the hang can be reproduced
without that module loaded ?
Secondly, that module is unlikely to cause that kind of trouble.

Regards
Oliver

2002-03-05 16:28:50

by Dr. Michael Weller

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

On Tue, 5 Mar 2002, Oliver Neukum wrote:

> Am Dienstag, 5. M?rz 2002 06:11 schrieb Greg KH:
> > On Tue, Mar 05, 2002 at 02:06:07AM +0100, Carl-Johan Kjellander wrote:
> > > Attached to each one of these is an Philips ToUCam pro which uses the pwc
> > > and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)
> >
> > As you are using this closed source module, I suggest you take this up
> > with that module's author.
>
> Perhaps you could first ask whether the hang can be reproduced
> without that module loaded ?
> Secondly, that module is unlikely to cause that kind of trouble.

I might completely misunderstand the thread, but I would suspect the
pwc and pwcx modules to be the drivers for the pwc-webcam which blocks
forever on read syscalls.

How would you perform the read on the pwc-webcam w/o that driver module?

Michael.

--

Michael Weller: [email protected], [email protected],
or even [email protected]. If you encounter an eowmob account on
any machine in the net, it's very likely it's me.

2002-03-05 17:05:53

by Carl-Johan Kjellander

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

Oliver Neukum wrote:
> Am Dienstag, 5. M?rz 2002 06:11 schrieb Greg KH:
>
>>On Tue, Mar 05, 2002 at 02:06:07AM +0100, Carl-Johan Kjellander wrote:
>>
>>>Attached to each one of these is an Philips ToUCam pro which uses the pwc
>>>and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)
>>>
>>As you are using this closed source module, I suggest you take this up
>>with that module's author.
>>
>
> Perhaps you could first ask whether the hang can be reproduced
> without that module loaded ?
> Secondly, that module is unlikely to cause that kind of trouble.

The problem can be reproduced on a computer that has not loaded pwcx.o
after boot. The problem is not caused by pwcx.o at all.


/Carl-Johan Kjellander
--
begin 644 carljohan_at_kjellander_dot_com.gif
Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I
Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV
R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`

2002-03-05 17:08:51

by Greg KH

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

On Tue, Mar 05, 2002 at 06:04:52PM +0100, Carl-Johan Kjellander wrote:
> Oliver Neukum wrote:
> >Am Dienstag, 5. M?rz 2002 06:11 schrieb Greg KH:
> >
> >>On Tue, Mar 05, 2002 at 02:06:07AM +0100, Carl-Johan Kjellander wrote:
> >>
> >>>Attached to each one of these is an Philips ToUCam pro which uses the pwc
> >>>and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)
> >>>
> >>As you are using this closed source module, I suggest you take this up
> >>with that module's author.
> >>
> >
> >Perhaps you could first ask whether the hang can be reproduced
> >without that module loaded ?
> >Secondly, that module is unlikely to cause that kind of trouble.
>
> The problem can be reproduced on a computer that has not loaded pwcx.o
> after boot. The problem is not caused by pwcx.o at all.

But you are reading from the pwc driver, right?
Have you asked the author of that driver about this?

thanks,

greg k-h

2002-03-05 17:12:01

by Carl-Johan Kjellander

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

Dr. Michael Weller wrote:
> On Tue, 5 Mar 2002, Oliver Neukum wrote:
>
>
>>Am Dienstag, 5. M?rz 2002 06:11 schrieb Greg KH:
>>
>>>On Tue, Mar 05, 2002 at 02:06:07AM +0100, Carl-Johan Kjellander wrote:
>>>
>>>>Attached to each one of these is an Philips ToUCam pro which uses the pwc
>>>>and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)
>>>>
>>>As you are using this closed source module, I suggest you take this up
>>>with that module's author.
>>>
>>Perhaps you could first ask whether the hang can be reproduced
>>without that module loaded ?
>>Secondly, that module is unlikely to cause that kind of trouble.
>>
>
> I might completely misunderstand the thread, but I would suspect the
> pwc and pwcx modules to be the drivers for the pwc-webcam which blocks
> forever on read syscalls.
>
> How would you perform the read on the pwc-webcam w/o that driver module?

The pwcx.o module (binary only) is not necessary for operation of
a Philips webcam. The pwc.o module (GPL) is sufficient if you don't need
640x480 resolution, and high fps rates. Pwcx is a module to decompress
the videostream from the camera for higher framerates since the USB
bandwidth is not enough for 640x480x30fps of raw videodata.

The pwc module is included in the standard linux kernel, pwcx is not, but
the problem is still not in pwcx. The problem is reproducible without
pwcx being loaded.

/Carl-Johan Kjellander
please CC me.
--
begin 644 carljohan_at_kjellander_dot_com.gif
Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I
Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV
R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`

2002-03-05 17:22:53

by Carl-Johan Kjellander

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

Greg KH wrote:
> On Tue, Mar 05, 2002 at 06:04:52PM +0100, Carl-Johan Kjellander wrote:
>
>>Oliver Neukum wrote:
>>
>>>Am Dienstag, 5. M?rz 2002 06:11 schrieb Greg KH:
>>>
>>>
>>>>On Tue, Mar 05, 2002 at 02:06:07AM +0100, Carl-Johan Kjellander wrote:
>>>>
>>>>
>>>>>Attached to each one of these is an Philips ToUCam pro which uses the pwc
>>>>>and pwcx modules. (yes, the kernel becomes tainted by the pwcx module)
>>>>>
>>>>>
>>>>As you are using this closed source module, I suggest you take this up
>>>>with that module's author.
>>>>
>>>>
>>>Perhaps you could first ask whether the hang can be reproduced
>>>without that module loaded ?
>>>Secondly, that module is unlikely to cause that kind of trouble.
>>>
>>The problem can be reproduced on a computer that has not loaded pwcx.o
>>after boot. The problem is not caused by pwcx.o at all.
>>
>
> But you are reading from the pwc driver, right?
> Have you asked the author of that driver about this?

Since the problem isn't reproducible on the pwc-camera on the onboard
UHCI controller, I tend to think it isn't a problem with the PWC driver
but with either the hardware or the usb-ohci driver. If 3 out of four
cameras has the same problem, and the fourth doesn't the problem is
easiest to find if you look at the difference between them, the UHCI
vs OHCI controller/drivers.

And I think he is subscribed to this list. I don't want to bother him to
much since he has gotten tons of bugreports that has turned out to be
bugs in uhci.o, usb-uhci.o and usb-ohci.o over the last year.
/Carl-Johan Kjellander
--
begin 644 carljohan_at_kjellander_dot_com.gif
Y1TE&.#=A(0`F`(```````/___RP`````(0`F```"@XR/!\N<#U.;+MI`<[U(>\!UGQ9BGT%>'D2I
Y*=NX,2@OUF2&<827ILW;^822C>\7!!Z1,!K'B5(6H<SH-"E*TJ3%*/>QI6:7"A>Y?):D2^*U@NCV
R<MOQ=]V(B6>LZYD-_T1U<@3W]A4(^$-W4]A#V")W6#.R"$;IR'@).46BN7$9>5D``#L`

2002-03-08 21:27:06

by Thomas Winischhofer

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.


> The camera attached to the UHCI-controller running usb-uhci works just
> fine,out the three attached to the OHCI-controllers running usb-ohci don't.
> After a random amount of frames being read from a camera the read()-call
> blocks indefinitely until the device is closed. Next time the v4l-device is
> opened the program can again read frames from the camera but read() always
> blocks after some time.

I can't help, but I have the exact same problem here. Closing the
application (eg. camstream) and re-opening it makes it work again for a
while.

As Carl-Johan said, this happens with or without the pwcx module, so
that's not the problem.

I think it's an ohci problem.

Furthermore, the usb driver(s) behave strangely on
connecting/disconnecting the camera. Sometimes this works flawlessly,
sometimes I get a lot of USB timeout ("usb_control/bulk_msg: timeout")
and/or "USBDEVFS_CONTROL failed dev x rqt 128 rq 6 len 490 ret -110"
messages in the syslog. (Kernel is 2.4.16 and 2.4.18 - no difference)
After a couple of times disconnecting and reconnecting the camera it's
being detected. Since 2.4.18, the camera's LED sometimes is on,
sometimes off - seems quite random.

Even closing the cam application (xawtv, camstream) after the camera
stopped working never results in any error messages in the log, I only
read "pwc: Closing video device: xxx frames received, dumped 0 frames, 0
frames with errors"

Thomas

--
Thomas Winischhofer
Vienna/Austria
mailto:[email protected] *** http://www.webit.com/tw

2002-03-08 22:43:46

by Greg KH

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

On Fri, Mar 08, 2002 at 10:03:57PM +0100, Thomas Winischhofer wrote:
> Furthermore, the usb driver(s) behave strangely on
> connecting/disconnecting the camera. Sometimes this works flawlessly,
> sometimes I get a lot of USB timeout ("usb_control/bulk_msg: timeout")
> and/or "USBDEVFS_CONTROL failed dev x rqt 128 rq 6 len 490 ret -110"
> messages in the syslog. (Kernel is 2.4.16 and 2.4.18 - no difference)

Try removing /sbin/usbmodules (or renaming it) to see if this problem
goes away. I have the same problem with some devices too, and am
working on tracking it down.

thanks,

greg k-h

2002-03-09 07:19:08

by Thomas Winischhofer

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

Greg KH wrote:
>
> On Fri, Mar 08, 2002 at 10:03:57PM +0100, Thomas Winischhofer wrote:
> > Furthermore, the usb driver(s) behave strangely on
> > connecting/disconnecting the camera. Sometimes this works flawlessly,
> > sometimes I get a lot of USB timeout ("usb_control/bulk_msg: timeout")
> > and/or "USBDEVFS_CONTROL failed dev x rqt 128 rq 6 len 490 ret -110"
> > messages in the syslog. (Kernel is 2.4.16 and 2.4.18 - no difference)
>
> Try removing /sbin/usbmodules (or renaming it) to see if this problem
> goes away. I have the same problem with some devices too, and am
> working on tracking it down.

This actually made it, thanks so far! (usbmodules is located in
/usr/sbin/ on my machine)

Of course, the main problem still exists. Additionally, the USB audio
module is not loaded any more (for the built-in microphone of this
camera).

Sorry if I ask something stupid, I am a total USB rookie - what's that
/usr/sbin/usbmodules file for?

Thomas


--
Thomas Winischhofer
Vienna/Austria
mailto:[email protected] *** http://www.webit.com/tw

2002-03-09 07:35:54

by Greg KH

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

On Sat, Mar 09, 2002 at 04:47:01AM +0100, Thomas Winischhofer wrote:
>
> Sorry if I ask something stupid, I am a total USB rookie - what's that
> /usr/sbin/usbmodules file for?

The hotplug package uses it to try to determine some stuff about the
device. Why it does this, I'm not really sure, it shouldn't be running
for when a new device is plugged in, but only when the hotplug stuff is
started the first time.

thanks,

greg k-h

2002-03-09 07:18:58

by Mark Cooke

[permalink] [raw]
Subject: Re: pwc-webcam attached to usb-ohci card blocks on read() indefinitely.

Just as a FYI, I had similar trouble using usb-uhci (440BX chipset) to
a 680K using pwc/pwcx. I had to add a bunch of error recovery (close
/ open device, ignore open() failing and retry, etc).

I get a group of EMC messages logged , then the reset seems to take
quite a while.

(2.4.19-pre2-ac2, but have seem this will many recent 2.4.x kernels)

Mark

On Fri, 8 Mar 2002, Thomas Winischhofer wrote:

> > The camera attached to the UHCI-controller running usb-uhci works just
> > fine,out the three attached to the OHCI-controllers running usb-ohci don't.
> > After a random amount of frames being read from a camera the read()-call
> > blocks indefinitely until the device is closed. Next time the v4l-device is
> > opened the program can again read frames from the camera but read() always
> > blocks after some time.
>
> I can't help, but I have the exact same problem here. Closing the
> application (eg. camstream) and re-opening it makes it work again for a
> while.
>
> As Carl-Johan said, this happens with or without the pwcx module, so
> that's not the problem.
>
> I think it's an ohci problem.
>
> Furthermore, the usb driver(s) behave strangely on
> connecting/disconnecting the camera. Sometimes this works flawlessly,
> sometimes I get a lot of USB timeout ("usb_control/bulk_msg: timeout")
> and/or "USBDEVFS_CONTROL failed dev x rqt 128 rq 6 len 490 ret -110"
> messages in the syslog. (Kernel is 2.4.16 and 2.4.18 - no difference)
> After a couple of times disconnecting and reconnecting the camera it's
> being detected. Since 2.4.18, the camera's LED sometimes is on,
> sometimes off - seems quite random.
>
> Even closing the cam application (xawtv, camstream) after the camera
> stopped working never results in any error messages in the log, I only
> read "pwc: Closing video device: xxx frames received, dumped 0 frames, 0
> frames with errors"
>
> Thomas
>
>

--
+-------------------------------------------------------------------------+
Mark Cooke The views expressed above are mine and are not
Systems Programmer necessarily representative of university policy
University Of Birmingham URL: http://www.sr.bham.ac.uk/~mpc/
+-------------------------------------------------------------------------+