qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] New assertion failed for USB
@ 2012-03-07  9:46 Erik Rull
  2012-03-07 11:30 ` Gerd Hoffmann
  0 siblings, 1 reply; 3+ messages in thread
From: Erik Rull @ 2012-03-07  9:46 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel@nongnu.org

 Hi Gerd,

there are new assertion failed when plugging in a USB security dongle at
guest runtime.
They occur on the current GIT master  + your async patch.

/home/erik/qemu/hw/usb.c:352 usb_packet_complete: Assertion
'((&ep->queue)->tqh_first) == p' failed.
I got this only once and I'm currently not able to reproduce that.

Next one is:
Same security dongle (I tested two different hardware versions, both show
the same behaviour):
- They get detected at runtime (beside this one crash above) but it takes
quite long
- When being plugged in before guest startup I get the following assertion
- this seems to happen in BIOS before the guest OS actually boots:
/home/erik/qemu/hw/usb-uhci.c:967: uhci_fill_queue: Assertion 'ret == 2'
failed.

If you need further information, just let me know how to produce it.

Best regards,

Erik

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] New assertion failed for USB
  2012-03-07  9:46 [Qemu-devel] New assertion failed for USB Erik Rull
@ 2012-03-07 11:30 ` Gerd Hoffmann
  2012-03-07 12:06   ` Erik Rull
  0 siblings, 1 reply; 3+ messages in thread
From: Gerd Hoffmann @ 2012-03-07 11:30 UTC (permalink / raw)
  To: Erik Rull; +Cc: qemu-devel@nongnu.org

On 03/07/12 10:46, Erik Rull wrote:
>  Hi Gerd,
> 
> there are new assertion failed when plugging in a USB security dongle at
> guest runtime.
> They occur on the current GIT master  + your async patch.
> 
> /home/erik/qemu/hw/usb.c:352 usb_packet_complete: Assertion
> '((&ep->queue)->tqh_first) == p' failed.
> I got this only once and I'm currently not able to reproduce that.

Strange.

> Next one is:
> Same security dongle (I tested two different hardware versions, both show
> the same behaviour):
> - They get detected at runtime (beside this one crash above) but it takes
> quite long
> - When being plugged in before guest startup I get the following assertion
> - this seems to happen in BIOS before the guest OS actually boots:
> /home/erik/qemu/hw/usb-uhci.c:967: uhci_fill_queue: Assertion 'ret == 2'
> failed.

Might be related.  In both cases the packet queue somehow isn't in the
state we expecting it to be.

> If you need further information, just let me know how to produce it.

Enable tracing for these events ...

usb_packet_state_change
usb_host_req_*
usb_host_urb_*

... and try to reproduce.  Hopefully that gives a clue.

cheers,
  Gerd

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] New assertion failed for USB
  2012-03-07 11:30 ` Gerd Hoffmann
@ 2012-03-07 12:06   ` Erik Rull
  0 siblings, 0 replies; 3+ messages in thread
From: Erik Rull @ 2012-03-07 12:06 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: qemu-devel@nongnu.org

[-- Attachment #1: Type: text/plain, Size: 1381 bytes --]


On March 7, 2012 at 12:30 PM Gerd Hoffmann <kraxel@redhat.com> wrote:

> On 03/07/12 10:46, Erik Rull wrote:
> >  Hi Gerd,
> >
> > there are new assertion failed when plugging in a USB security dongle
at
> > guest runtime.
> > They occur on the current GIT master  + your async patch.
> >
> > /home/erik/qemu/hw/usb.c:352 usb_packet_complete: Assertion
> > '((&ep->queue)->tqh_first) == p' failed.
> > I got this only once and I'm currently not able to reproduce that.
>
> Strange.
>
> > Next one is:
> > Same security dongle (I tested two different hardware versions, both
show
> > the same behaviour):
> > - They get detected at runtime (beside this one crash above) but it
takes
> > quite long
> > - When being plugged in before guest startup I get the following
assertion
> > - this seems to happen in BIOS before the guest OS actually boots:
> > /home/erik/qemu/hw/usb-uhci.c:967: uhci_fill_queue: Assertion 'ret ==
2'
> > failed.
>
> Might be related.  In both cases the packet queue somehow isn't in the
> state we expecting it to be.
>
> > If you need further information, just let me know how to produce it.
>
> Enable tracing for these events ...
>
> usb_packet_state_change
> usb_host_req_*
> usb_host_urb_*
>
> ... and try to reproduce.  Hopefully that gives a clue.
>
> cheers,
>   Gerd


Hi Gerd,

thanks for the quick reply.

File is attached.

Best regards,

Erik

[-- Attachment #2: usb-trace-assert.txt --]
[-- Type: text/plain, Size: 11069 bytes --]

usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d50, state undef -> setup
usb_host_req_control dev 2:22, req 0x5, value 1, index 0
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d50, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d70, state undef -> setup
usb_host_req_control dev 2:22, req 0x8006, value 256, index 0
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 16, more 0
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d70, state setup -> async
uhci_fill_queue: -- 12d
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 8, more 0
usb_host_req_complete dev 2:22, status 16
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7ea0d70, state async -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_host_req_control dev 2:22, req 0x8006, value 512, index 0
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 17, more 0
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> async
uhci_fill_queue: -- 12d
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 9, more 0
usb_host_req_complete dev 2:22, status 17
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state async -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_host_req_control dev 2:22, req 0x8006, value 512, index 0
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 40, more 0
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> async
uhci_fill_queue: -- 12d
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 32, more 0
usb_host_req_complete dev 2:22, status 40
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state async -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state undef -> setup
usb_host_req_control dev 2:22, req 0x9, value 1, index 0
usb_packet_state_change bus 0, port 1, ep 0, packet 0xb7e134f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e13510, state undef -> setup
usb_host_req_data dev 2:22, in 0, ep 2, size 31
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 31, more 0
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e13510, state setup -> async
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 31, more 0
usb_host_req_complete dev 2:22, status 31
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e13510, state async -> complete
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state undef -> setup
usb_host_req_data dev 2:22, in 1, ep 1, size 36
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 36, more 0
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state setup -> async
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 36, more 0
usb_host_req_complete dev 2:22, status 36
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state async -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state undef -> setup
usb_host_req_data dev 2:22, in 1, ep 1, size 13
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 13, more 0
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state setup -> async
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 13, more 0
usb_host_req_complete dev 2:22, status 13
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e13530, state async -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e13550, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e13550, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e742f0, state undef -> setup
usb_host_req_data dev 2:22, in 0, ep 2, size 31
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 31, more 0
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e742f0, state setup -> async
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 31, more 0
usb_host_req_complete dev 2:22, status 31
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e742f0, state async -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e742f0, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state undef -> setup
usb_host_req_data dev 2:22, in 1, ep 1, size 8
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 8, more 0
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state setup -> async
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 8, more 0
usb_host_req_complete dev 2:22, status 8
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state async -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state undef -> setup
usb_packet_state_change bus 0, port 2, ep 0, packet 0xb7e74290, state setup -> complete
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state undef -> setup
usb_host_req_data dev 2:22, in 1, ep 1, size 13
usb_host_urb_submit dev 2:22, aurb 0xb7e740c8, length 13, more 0
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state setup -> async
usb_host_urb_complete dev 2:22, aurb 0xb7e740c8, status 0, length 13, more 0
usb_host_req_complete dev 2:22, status 13
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e742f0, state async -> complete
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e74188, state undef -> setup
usb_host_req_data dev 2:22, in 0, ep 2, size 31
usb_host_urb_submit dev 2:22, aurb 0xb7e741e8, length 31, more 0
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e74188, state setup -> async
usb_host_urb_complete dev 2:22, aurb 0xb7e741e8, status 0, length 31, more 0
usb_host_req_complete dev 2:22, status 31
usb_packet_state_change bus 0, port 1, ep 2, packet 0xb7e74188, state async -> complete
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e74188, state undef -> setup
usb_host_req_data dev 2:22, in 1, ep 1, size 64
usb_host_urb_submit dev 2:22, aurb 0xb7e741e8, length 64, more 0
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e74188, state setup -> async
uhci_fill_queue: -- 8169
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e743b0, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7e743b0, state setup -> queued
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7ea3588, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7ea3588, state setup -> queued
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7ea3600, state undef -> setup
usb_packet_state_change bus 0, port 1, ep 1, packet 0xb7ea3600, state setup -> queued
qemu-system-x86_64: /home/erik/qemu/hw/usb-uhci.c:967: uhci_fill_queue: Assertion `ret == 2' failed.
Aborted

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-03-07 12:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-07  9:46 [Qemu-devel] New assertion failed for USB Erik Rull
2012-03-07 11:30 ` Gerd Hoffmann
2012-03-07 12:06   ` Erik Rull

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).