qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Gerd Hoffmann <kraxel@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] 2 issues with qemu-master / 1.2 ehci code
Date: Wed, 15 Aug 2012 13:22:42 +0200	[thread overview]
Message-ID: <502B8682.2050109@redhat.com> (raw)
In-Reply-To: <502A78D9.6050003@redhat.com>

Hi,

On 08/14/2012 06:12 PM, Hans de Goede wrote:
> Hi,
>
> While testing qemu-master I've encountered 2 problems caused by the ehci changes
> made since 1.1:
>
> 1) Newly plugged in devices don't get recognized by the guest
> This seems to be a case of no interrupt getting generated while it should, doing lsusb in a linux
> guest makes the device show up (after the lsusb, so its there in a second lsusb run)

I've been looking into this one and I think I know what is going on, the problem is caused by
the "ehci: implement Interrupt Threshold Control support" patch:
http://www.kraxel.org/cgit/qemu/commit/?h=usb.57&id=7efc17af9a08839a05771541959696875e06cf99

What happens is that since neither the async, nor the periodic schedule are enabled the
frame-timer is not running, and during the attaching of the device the Port Change Events
(PCD) status bit should get raised multiple times due to port resets, etc. But after the
first call to commit_irq, usbsts_frindex contains frindex + 1 (in case of a linux guest),
so commit_irq turns into a nop and the guest never sees any of the PCD interrupts other then
the first.

Part of the problem is that the Interrupt Threshold Control support patch delays all
interrupts, which it should not, according to the EHCI spec section 4.15 (ehci-r10.pdf
page 115), the following irqs should not be delayed: Port Change Events (PCD),
Frame List Rollover (FLR), and Host System Error (HSE). So we need to change the code
to not delay these. Once that is done I expect the attach problem I've been seeing
to magically go away.

I'll go work on a patch for this after lunch.

> 2) I'm hitting:
> qemu-system-x86_64: /home/hans/projects/qemu/hw/usb/hcd-ehci.c:2075: ehci_state_executing: Assertion `p->qtdaddr == q->qtdaddr' failed.
> When trying to redirect a microsoft lifecam, since this is a device with multiple interfaces
> (both uvc and usb-audio) I think it may be a case of multiple control requests getting submitted at the same time,
> but that is just a wild guess.
>

I've not made any progress with this one yet. kraxel, any chance you could join #spice
on gimpnet so we can discuss this one interactively ?

(note I'm of to lunch for an hour first)

Regards,

Hans

  reply	other threads:[~2012-08-15 11:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-14 16:12 [Qemu-devel] 2 issues with qemu-master / 1.2 ehci code Hans de Goede
2012-08-15 11:22 ` Hans de Goede [this message]
2012-08-15 11:37   ` Gerd Hoffmann
2012-08-16 13:46 ` Hans de Goede
2012-08-16 19:26   ` Gerd Hoffmann
2012-08-17  6:31     ` Hans de Goede
2012-08-17  7:07       ` Gerd Hoffmann
2012-08-17  7:16         ` Hans de Goede

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=502B8682.2050109@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 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).