From: "Németh Márton" <nm127@freemail.hu>
To: Max Vozeler <max@vozeler.com>
Cc: gregkh <gregkh@suse.de>,
devel@driverdev.osuosl.org, LKML <linux-kernel@vger.kernel.org>,
usbip-devel@lists.sourceforge.net
Subject: Re: usbip: sometimes stalls at kernel_recvmsg()
Date: Tue, 21 Dec 2010 09:03:11 +0100 [thread overview]
Message-ID: <4D105F3F.5070702@freemail.hu> (raw)
In-Reply-To: <4D0FD725.5000609@vozeler.com>
Hello Max,
Max Vozeler wrote:
> Hi Németh,
>
> On 17.12.2010 06:45, Németh Márton wrote:
>>>> Németh Márton wrote:
>>>>> I'm working with usbip and I sometimes see a stall when I run
>>>>> the "lsusb" command from the userspace.
>>> Does it eventually recover?
>> No, it doesn't. After 120 seconds messages are printed in dmesg
>> that the "lsusb" process is blocked more than 120 seconds.
>
> Can you describe the sequence of events which
> happened before the hang?
Boot EeePC 901. Attach hama AC-150 webcam. Execute the following
commands as root:
echo 0 >/sys/devices/platform/eeepc/camera
insmod /usr/src/linux/drivers/staging/usbip/usbip_common_mod.ko
insmod /usr/src/linux/drivers/staging/usbip/usbip.ko
usbip_bind_driver --list
usbip_bind_driver --usbip 3-2
usbipd
On a second xterm window execute the following commands:
insmod /usr/src/linux/drivers/staging/usbip/vhci-hcd.ko
lsusb
usbip --list localhost
usbip -a localhost 3-2
usbip -p
strace lsusb
Note that the hama AC-150 webcam has a snapshot button on it which
uses the interrupt endpoint. The interrupt URB is sent in when the
gspca_sonixj driver activates in order to catch the button events.
The hang maybe related, I don't know.
>
> Was the device detached before or during lsusb?
>
> Perhaps try echo t > /proc/sysrq-trigger to see
> where exactly lsusb gets stuck.
>
> I found processes can get stuck in usb_kill_urb
> if they tried to unlink an URB, but the unlink
> request was not answered before detach.
>
> Perhaps this is related. I am attaching a patch
> which fixes that bug for me, perhaps you could
> try if it makes a difference?
I'll try your patch later, thanks.
>
>>>>> I added some debug messages
>>>>> and it seems that the kernel_recvmsg() in
>>>>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=drivers/staging/usbip/usbip_common.c;h=210ef16bab8d271a52e5d36cd1994aad57ad99e1;hb=HEAD
>>>>>
>>>>> This is the only place I could find where the TCP messages are arriving in
>>>>> the usbip code.
>>>>>
>>>>> What happens if a message does not arrive? Does it stall forever?
>>> Yes, it will block until detached or until a TCP
>>> timeout or error closes the connection.
>>>
>>> The TCP timeout can take several minutes.
>> What I don't really understand is that how is it possible that
>> a packet from TCP communication is lost? TCP resends the lost
>> packets automatically. In my case I run both the usbip server
>> and client on the same machine using the host name "localhost".
>> So I assume that there might be a protocol handshake problem
>> here.
>
> Agreed, it doesn't seem like a TCP error is
> causing the hang in this case.
>
> Max
>
>
next prev parent reply other threads:[~2010-12-21 8:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-13 22:36 usbip: somtimes stalls at kernel_recvmsg() Németh Márton
2010-12-16 7:31 ` Németh Márton
2010-12-16 22:50 ` Max Vozeler
2010-12-17 5:45 ` usbip: sometimes " Németh Márton
2010-12-20 22:22 ` Max Vozeler
2010-12-21 8:03 ` Németh Márton [this message]
2010-12-22 19:49 ` Németh Márton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D105F3F.5070702@freemail.hu \
--to=nm127@freemail.hu \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=max@vozeler.com \
--cc=usbip-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.