All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] USB PCI host bus adapter hot plug
@ 2014-08-11  4:02 Alexey Kardashevskiy
  2014-08-11  5:59 ` Gonglei (Arei)
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey Kardashevskiy @ 2014-08-11  4:02 UTC (permalink / raw)
  To: qemu-devel

Hi!

I noticed that QMP's "device_add usb-ehci,id=i2,bus=pci.0" fails on PCI
hotplug. The same for pci-ohci and this is because their initfn() do
"dc->hotpluggable   = false". So I removed those and now I can hotplug USB
hosts but none of them is able to actually work:

root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
[   41.143062] ohci-pci 0000:00:01.0: init err (c8700000 0000)
[   41.143133] ohci-pci 0000:00:01.0: can't start
[   41.143227] ohci-pci 0000:00:01.0: startup error -75
[   41.144202] ohci-pci 0000:00:01.0: init 0000:00:01.0 fail, -75


root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
[   43.691067] ehci-pci 0000:00:01.0: can't setup: -110
[   43.692424] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110


Why is that? Is QEMU just missing some bits or there is some fundamental
issue which I just do not see? Thanks!


-- 
Alexey

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-11  4:02 [Qemu-devel] USB PCI host bus adapter hot plug Alexey Kardashevskiy
@ 2014-08-11  5:59 ` Gonglei (Arei)
  2014-08-12  6:05   ` Alexey Kardashevskiy
  2014-08-28  8:24   ` Gerd Hoffmann
  0 siblings, 2 replies; 10+ messages in thread
From: Gonglei (Arei) @ 2014-08-11  5:59 UTC (permalink / raw)
  To: Alexey Kardashevskiy, qemu-devel; +Cc: kraxel

Hi,

> Subject: [Qemu-devel] USB PCI host bus adapter hot plug
> 
> Hi!
> 
> I noticed that QMP's "device_add usb-ehci,id=i2,bus=pci.0" fails on PCI
> hotplug. The same for pci-ohci and this is because their initfn() do
> "dc->hotpluggable   = false". So I removed those and now I can hotplug USB
> hosts but none of them is able to actually work:
> 
> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
> [   41.143062] ohci-pci 0000:00:01.0: init err (c8700000 0000)
> [   41.143133] ohci-pci 0000:00:01.0: can't start
> [   41.143227] ohci-pci 0000:00:01.0: startup error -75
> [   41.144202] ohci-pci 0000:00:01.0: init 0000:00:01.0 fail, -75
> 
> 
> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
> [   43.691067] ehci-pci 0000:00:01.0: can't setup: -110
> [   43.692424] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110
> 
> 
> Why is that? Is QEMU just missing some bits or there is some fundamental
> issue which I just do not see? Thanks!
> 
Cc'ing Gerd.

Actually I have post a patch serials for supporting usb host adapter hotplugging,
Which has been involved in Gerd's (the USB mantainer) usb-next tree. Please see:
https://www.kraxel.org/cgit/qemu/log/?h=rebase/usb-next

The function of usb host adapter hotplugging is ok. You are welcome to test it.

BTW, What's your guest os type?

Best regards,
-Gonglei

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-11  5:59 ` Gonglei (Arei)
@ 2014-08-12  6:05   ` Alexey Kardashevskiy
  2014-08-13  4:52     ` Alexey Kardashevskiy
  2014-08-28  8:24   ` Gerd Hoffmann
  1 sibling, 1 reply; 10+ messages in thread
From: Alexey Kardashevskiy @ 2014-08-12  6:05 UTC (permalink / raw)
  To: Gonglei (Arei), qemu-devel; +Cc: Tyrel Datwyler, kraxel, Michael Roth

On 08/11/2014 03:59 PM, Gonglei (Arei) wrote:
> Hi,
> 
>> Subject: [Qemu-devel] USB PCI host bus adapter hot plug
>>
>> Hi!
>>
>> I noticed that QMP's "device_add usb-ehci,id=i2,bus=pci.0" fails on PCI
>> hotplug. The same for pci-ohci and this is because their initfn() do
>> "dc->hotpluggable   = false". So I removed those and now I can hotplug USB
>> hosts but none of them is able to actually work:
>>
>> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
>> [   41.143062] ohci-pci 0000:00:01.0: init err (c8700000 0000)
>> [   41.143133] ohci-pci 0000:00:01.0: can't start
>> [   41.143227] ohci-pci 0000:00:01.0: startup error -75
>> [   41.144202] ohci-pci 0000:00:01.0: init 0000:00:01.0 fail, -75
>>
>>
>> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
>> [   43.691067] ehci-pci 0000:00:01.0: can't setup: -110
>> [   43.692424] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110
>>
>>
>> Why is that? Is QEMU just missing some bits or there is some fundamental
>> issue which I just do not see? Thanks!
>>
> Cc'ing Gerd.
> 
> Actually I have post a patch serials for supporting usb host adapter hotplugging,
> Which has been involved in Gerd's (the USB mantainer) usb-next tree. Please see:
> https://www.kraxel.org/cgit/qemu/log/?h=rebase/usb-next
> 
> The function of usb host adapter hotplugging is ok. You are welcome to test it.

It does not work for me though. The device appears in the system but the
driver fails to bring it up:

[root@localhost ~]# echo 1 >/sys/bus/pci/rescan

[   43.482378] pci 0000:00:01.0: BAR 0: assigned [mem
0x100a0000000-0x100a0000fff]
[   43.488851] ehci-pci 0000:00:01.0: EHCI Host Controller

[   43.490153] ehci-pci 0000:00:01.0: new USB bus registered, assigned bus
number 1
[   43.504957] ehci-pci 0000:00:01.0: can't setup: -110

[   43.505028] ehci-pci 0000:00:01.0: USB bus 1 deregistered

[   43.507660] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110

[   43.507808] ehci-pci: probe of 0000:00:01.0 failed with error -110



> BTW, What's your guest os type?

Fedora20/ppc64 or Ubuntu14/ppc64le.

I tried your tree merged with
https://github.com/mdroth/qemu/tree/spapr-pci-hotplug-ppc-next-cleanup2

I am adding PCIhotplug-on-PPC experts to the thread, may be they have ideas...



-- 
Alexey

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-12  6:05   ` Alexey Kardashevskiy
@ 2014-08-13  4:52     ` Alexey Kardashevskiy
  2014-08-13  5:00       ` Gonglei (Arei)
  0 siblings, 1 reply; 10+ messages in thread
From: Alexey Kardashevskiy @ 2014-08-13  4:52 UTC (permalink / raw)
  To: Gonglei (Arei), qemu-devel; +Cc: Tyrel Datwyler, kraxel, Michael Roth

On 08/12/2014 04:05 PM, Alexey Kardashevskiy wrote:
> On 08/11/2014 03:59 PM, Gonglei (Arei) wrote:
>> Hi,
>>
>>> Subject: [Qemu-devel] USB PCI host bus adapter hot plug
>>>
>>> Hi!
>>>
>>> I noticed that QMP's "device_add usb-ehci,id=i2,bus=pci.0" fails on PCI
>>> hotplug. The same for pci-ohci and this is because their initfn() do
>>> "dc->hotpluggable   = false". So I removed those and now I can hotplug USB
>>> hosts but none of them is able to actually work:
>>>
>>> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
>>> [   41.143062] ohci-pci 0000:00:01.0: init err (c8700000 0000)
>>> [   41.143133] ohci-pci 0000:00:01.0: can't start
>>> [   41.143227] ohci-pci 0000:00:01.0: startup error -75
>>> [   41.144202] ohci-pci 0000:00:01.0: init 0000:00:01.0 fail, -75
>>>
>>>
>>> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
>>> [   43.691067] ehci-pci 0000:00:01.0: can't setup: -110
>>> [   43.692424] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110
>>>
>>>
>>> Why is that? Is QEMU just missing some bits or there is some fundamental
>>> issue which I just do not see? Thanks!
>>>
>> Cc'ing Gerd.
>>
>> Actually I have post a patch serials for supporting usb host adapter hotplugging,
>> Which has been involved in Gerd's (the USB mantainer) usb-next tree. Please see:
>> https://www.kraxel.org/cgit/qemu/log/?h=rebase/usb-next
>>
>> The function of usb host adapter hotplugging is ok. You are welcome to test it.
> 
> It does not work for me though. The device appears in the system but the
> driver fails to bring it up:
> 
> [root@localhost ~]# echo 1 >/sys/bus/pci/rescan
> 
> [   43.482378] pci 0000:00:01.0: BAR 0: assigned [mem
> 0x100a0000000-0x100a0000fff]
> [   43.488851] ehci-pci 0000:00:01.0: EHCI Host Controller
> 
> [   43.490153] ehci-pci 0000:00:01.0: new USB bus registered, assigned bus
> number 1
> [   43.504957] ehci-pci 0000:00:01.0: can't setup: -110
> 
> [   43.505028] ehci-pci 0000:00:01.0: USB bus 1 deregistered
> 
> [   43.507660] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110
> 
> [   43.507808] ehci-pci: probe of 0000:00:01.0 failed with error -110
> 
> 
> 
>> BTW, What's your guest os type?
> 
> Fedora20/ppc64 or Ubuntu14/ppc64le.
> 
> I tried your tree merged with
> https://github.com/mdroth/qemu/tree/spapr-pci-hotplug-ppc-next-cleanup2
> 
> I am adding PCIhotplug-on-PPC experts to the thread, may be they have ideas...


More precise - this fails:

drivers/usb/host/ehci-hcd.c:

int ehci_handshake(struct ehci_hcd *ehci, void __iomem *ptr,
                   u32 mask, u32 done, int usec)
{
        u32     result;

        do {
                result = ehci_readl(ehci, ptr);
                if (result == ~(u32)0)          /* card removed */
                        return -ENODEV;
                result &= mask;
                if (result == done)
                        return 0;
                udelay (1);
                usec--;
        } while (usec > 0);
        return -ETIMEDOUT; // <------------------
}




-- 
Alexey

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-13  4:52     ` Alexey Kardashevskiy
@ 2014-08-13  5:00       ` Gonglei (Arei)
  2014-08-13  6:02         ` Alexey Kardashevskiy
  0 siblings, 1 reply; 10+ messages in thread
From: Gonglei (Arei) @ 2014-08-13  5:00 UTC (permalink / raw)
  To: Alexey Kardashevskiy, qemu-devel; +Cc: Tyrel Datwyler, kraxel, Michael Roth

> >>> I noticed that QMP's "device_add usb-ehci,id=i2,bus=pci.0" fails on PCI
> >>> hotplug. The same for pci-ohci and this is because their initfn() do
> >>> "dc->hotpluggable   = false". So I removed those and now I can hotplug
> USB
> >>> hosts but none of them is able to actually work:
> >>>
> >>> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
> >>> [   41.143062] ohci-pci 0000:00:01.0: init err (c8700000 0000)
> >>> [   41.143133] ohci-pci 0000:00:01.0: can't start
> >>> [   41.143227] ohci-pci 0000:00:01.0: startup error -75
> >>> [   41.144202] ohci-pci 0000:00:01.0: init 0000:00:01.0 fail, -75
> >>>
> >>>
> >>> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
> >>> [   43.691067] ehci-pci 0000:00:01.0: can't setup: -110
> >>> [   43.692424] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110
> >>>
> >>>
> >>> Why is that? Is QEMU just missing some bits or there is some fundamental
> >>> issue which I just do not see? Thanks!
> >>>
> >> Cc'ing Gerd.
> >>
> >> Actually I have post a patch serials for supporting usb host adapter
> hotplugging,
> >> Which has been involved in Gerd's (the USB mantainer) usb-next tree. Please
> see:
> >> https://www.kraxel.org/cgit/qemu/log/?h=rebase/usb-next
> >>
> >> The function of usb host adapter hotplugging is ok. You are welcome to test
> it.
> >
> > It does not work for me though. The device appears in the system but the
> > driver fails to bring it up:
> >
> > [root@localhost ~]# echo 1 >/sys/bus/pci/rescan
> >
> > [   43.482378] pci 0000:00:01.0: BAR 0: assigned [mem
> > 0x100a0000000-0x100a0000fff]
> > [   43.488851] ehci-pci 0000:00:01.0: EHCI Host Controller
> >
> > [   43.490153] ehci-pci 0000:00:01.0: new USB bus registered, assigned bus
> > number 1
> > [   43.504957] ehci-pci 0000:00:01.0: can't setup: -110
> >
> > [   43.505028] ehci-pci 0000:00:01.0: USB bus 1 deregistered
> >
> > [   43.507660] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110
> >
> > [   43.507808] ehci-pci: probe of 0000:00:01.0 failed with error -110
> >
> >
> >
> >> BTW, What's your guest os type?
> >
> > Fedora20/ppc64 or Ubuntu14/ppc64le.
> >
> > I tried your tree merged with
> > https://github.com/mdroth/qemu/tree/spapr-pci-hotplug-ppc-next-cleanup2
> >
> > I am adding PCIhotplug-on-PPC experts to the thread, may be they have
> ideas...
> 
> 
> More precise - this fails:
> 
> drivers/usb/host/ehci-hcd.c:
> 
> int ehci_handshake(struct ehci_hcd *ehci, void __iomem *ptr,
>                    u32 mask, u32 done, int usec)
> {
>         u32     result;
> 
>         do {
>                 result = ehci_readl(ehci, ptr);
>                 if (result == ~(u32)0)          /* card removed */
>                         return -ENODEV;
>                 result &= mask;
>                 if (result == done)
>                         return 0;
>                 udelay (1);
>                 usec--;
>         } while (usec > 0);
>         return -ETIMEDOUT; // <------------------
> }
> 
> --
> Alexey

Hi, Alexey. 

Does this work when you configure 
EHCI at the command line, not hotplugging?

BTW, I'm not familiar with PCIhotplug-on-PPC. Sorry for this.

Best regards,
-Gonglei

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-13  5:00       ` Gonglei (Arei)
@ 2014-08-13  6:02         ` Alexey Kardashevskiy
  0 siblings, 0 replies; 10+ messages in thread
From: Alexey Kardashevskiy @ 2014-08-13  6:02 UTC (permalink / raw)
  To: Gonglei (Arei), qemu-devel; +Cc: Michael Roth, Tyrel Datwyler, kraxel

On 08/13/2014 03:00 PM, Gonglei (Arei) wrote:
>>>>> I noticed that QMP's "device_add usb-ehci,id=i2,bus=pci.0" fails on PCI
>>>>> hotplug. The same for pci-ohci and this is because their initfn() do
>>>>> "dc->hotpluggable   = false". So I removed those and now I can hotplug
>> USB
>>>>> hosts but none of them is able to actually work:
>>>>>
>>>>> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
>>>>> [   41.143062] ohci-pci 0000:00:01.0: init err (c8700000 0000)
>>>>> [   41.143133] ohci-pci 0000:00:01.0: can't start
>>>>> [   41.143227] ohci-pci 0000:00:01.0: startup error -75
>>>>> [   41.144202] ohci-pci 0000:00:01.0: init 0000:00:01.0 fail, -75
>>>>>
>>>>>
>>>>> root@aiktest-le:~# echo 1 >/sys/bus/pci/rescan
>>>>> [   43.691067] ehci-pci 0000:00:01.0: can't setup: -110
>>>>> [   43.692424] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110
>>>>>
>>>>>
>>>>> Why is that? Is QEMU just missing some bits or there is some fundamental
>>>>> issue which I just do not see? Thanks!
>>>>>
>>>> Cc'ing Gerd.
>>>>
>>>> Actually I have post a patch serials for supporting usb host adapter
>> hotplugging,
>>>> Which has been involved in Gerd's (the USB mantainer) usb-next tree. Please
>> see:
>>>> https://www.kraxel.org/cgit/qemu/log/?h=rebase/usb-next
>>>>
>>>> The function of usb host adapter hotplugging is ok. You are welcome to test
>> it.
>>>
>>> It does not work for me though. The device appears in the system but the
>>> driver fails to bring it up:
>>>
>>> [root@localhost ~]# echo 1 >/sys/bus/pci/rescan
>>>
>>> [   43.482378] pci 0000:00:01.0: BAR 0: assigned [mem
>>> 0x100a0000000-0x100a0000fff]
>>> [   43.488851] ehci-pci 0000:00:01.0: EHCI Host Controller
>>>
>>> [   43.490153] ehci-pci 0000:00:01.0: new USB bus registered, assigned bus
>>> number 1
>>> [   43.504957] ehci-pci 0000:00:01.0: can't setup: -110
>>>
>>> [   43.505028] ehci-pci 0000:00:01.0: USB bus 1 deregistered
>>>
>>> [   43.507660] ehci-pci 0000:00:01.0: init 0000:00:01.0 fail, -110
>>>
>>> [   43.507808] ehci-pci: probe of 0000:00:01.0 failed with error -110
>>>
>>>
>>>
>>>> BTW, What's your guest os type?
>>>
>>> Fedora20/ppc64 or Ubuntu14/ppc64le.
>>>
>>> I tried your tree merged with
>>> https://github.com/mdroth/qemu/tree/spapr-pci-hotplug-ppc-next-cleanup2
>>>
>>> I am adding PCIhotplug-on-PPC experts to the thread, may be they have
>> ideas...
>>
>>
>> More precise - this fails:
>>
>> drivers/usb/host/ehci-hcd.c:
>>
>> int ehci_handshake(struct ehci_hcd *ehci, void __iomem *ptr,
>>                    u32 mask, u32 done, int usec)
>> {
>>         u32     result;
>>
>>         do {
>>                 result = ehci_readl(ehci, ptr);
>>                 if (result == ~(u32)0)          /* card removed */
>>                         return -ENODEV;
>>                 result &= mask;
>>                 if (result == done)
>>                         return 0;
>>                 udelay (1);
>>                 usec--;
>>         } while (usec > 0);
>>         return -ETIMEDOUT; // <------------------
>> }
>>
>> --
>> Alexey
> 
> Hi, Alexey. 
> 
> Does this work when you configure 
> EHCI at the command line, not hotplugging?

Yes, all possible USB hosts work just fine when added in the command line.


> BTW, I'm not familiar with PCIhotplug-on-PPC. Sorry for this.

I doubt this is because of PPC but there is always a chance :)


-- 
Alexey

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-11  5:59 ` Gonglei (Arei)
  2014-08-12  6:05   ` Alexey Kardashevskiy
@ 2014-08-28  8:24   ` Gerd Hoffmann
  2014-08-28  8:31     ` Gonglei (Arei)
  1 sibling, 1 reply; 10+ messages in thread
From: Gerd Hoffmann @ 2014-08-28  8:24 UTC (permalink / raw)
  To: Gonglei (Arei); +Cc: Alexey Kardashevskiy, qemu-devel

  Hi,

> Actually I have post a patch serials for supporting usb host adapter hotplugging,
> Which has been involved in Gerd's (the USB mantainer) usb-next tree. Please see:
> https://www.kraxel.org/cgit/qemu/log/?h=rebase/usb-next

While being at it:  I've rebased to latest master, solved some
conflicts / build failures.  Now I get "make check" failures.  Not fully
sure they are new, there have been "make check" failures before and I
don't remember whenever we had fixed them already.  Can you have a look?

The last missing bit (beside the make check failures) needed to finally
merge this is turning off hotplug in case we have a companion setup.

cheers,
  Gerd

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-28  8:24   ` Gerd Hoffmann
@ 2014-08-28  8:31     ` Gonglei (Arei)
  2014-08-28  8:35       ` Gerd Hoffmann
  0 siblings, 1 reply; 10+ messages in thread
From: Gonglei (Arei) @ 2014-08-28  8:31 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Alexey Kardashevskiy, qemu-devel

> -----Original Message-----
> From: Gerd Hoffmann [mailto:kraxel@redhat.com]
> Sent: Thursday, August 28, 2014 4:25 PM
> To: Gonglei (Arei)
> Cc: Alexey Kardashevskiy; qemu-devel@nongnu.org
> Subject: Re: [Qemu-devel] USB PCI host bus adapter hot plug
> 
>   Hi,
> 
> > Actually I have post a patch serials for supporting usb host adapter
> hotplugging,
> > Which has been involved in Gerd's (the USB mantainer) usb-next tree. Please
> see:
> > https://www.kraxel.org/cgit/qemu/log/?h=rebase/usb-next
> 
> While being at it:  I've rebased to latest master, solved some
> conflicts / build failures.  Now I get "make check" failures.  Not fully
> sure they are new, there have been "make check" failures before and I
> don't remember whenever we had fixed them already.  Can you have a look?
> 
OK. I will do.

> The last missing bit (beside the make check failures) needed to finally
> merge this is turning off hotplug in case we have a companion setup.
> 
Have a patch work for this yet? Thanks.

Best regards,
-Gonglei

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-28  8:31     ` Gonglei (Arei)
@ 2014-08-28  8:35       ` Gerd Hoffmann
  2014-08-29  3:23         ` Gonglei (Arei)
  0 siblings, 1 reply; 10+ messages in thread
From: Gerd Hoffmann @ 2014-08-28  8:35 UTC (permalink / raw)
  To: Gonglei (Arei); +Cc: Alexey Kardashevskiy, qemu-devel

  Hi,

> > The last missing bit (beside the make check failures) needed to finally
> > merge this is turning off hotplug in case we have a companion setup.
> > 
> Have a patch work for this yet? Thanks.

Havn't found time to do it yet.  Patches are welcome.

cheers,
  Gerd

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

* Re: [Qemu-devel] USB PCI host bus adapter hot plug
  2014-08-28  8:35       ` Gerd Hoffmann
@ 2014-08-29  3:23         ` Gonglei (Arei)
  0 siblings, 0 replies; 10+ messages in thread
From: Gonglei (Arei) @ 2014-08-29  3:23 UTC (permalink / raw)
  To: Gerd Hoffmann; +Cc: Alexey Kardashevskiy, qemu-devel

Hi, Gerd

> From: Gerd Hoffmann [mailto:kraxel@redhat.com]
> Sent: Thursday, August 28, 2014 4:36 PM
> Subject: Re: [Qemu-devel] USB PCI host bus adapter hot plug
> 
>   Hi,
> 
> > > The last missing bit (beside the make check failures) needed to finally
> > > merge this is turning off hotplug in case we have a companion setup.
> > >
> > Have a patch work for this yet? Thanks.
> 
> Havn't found time to do it yet.  Patches are welcome.
> 

Signed-off-by: Gonglei <arei.gonglei@huawei.com>
----

diff --git a/hw/usb/hcd-uhci.c b/hw/usb/hcd-uhci.c
index 6248c19..627d2fd 100644
--- a/hw/usb/hcd-uhci.c
+++ b/hw/usb/hcd-uhci.c
@@ -1302,6 +1302,7 @@ static void uhci_class_init(ObjectClass *klass, void *data)
     k->class_id  = PCI_CLASS_SERIAL_USB;
     dc->vmsd = &vmstate_uhci;
     dc->props = uhci_properties;
+    dc->hotpluggable = info->unplug ? true : false;
     set_bit(DEVICE_CATEGORY_USB, dc->categories);
     u->info = *info;
 }

Using above patch, the hotplugging for companion controller will be forbidden.

My testcase:

# ./qemu-system-x86_64 -enable-kvm -m 4096 -smp 4 -name sles-ethernet -boot c -drive \ 
file=/mnt/sdb/gonglei/image/win7_32_2U -vnc 0.0.0.0:10 -monitor stdio -readconfig ../docs/ich9-ehci-uhci.cfg 
QEMU 2.1.50 monitor - type 'help' for more information
(qemu) info pci
  Bus  0, device   0, function 0:
    Host bridge: PCI device 8086:1237
      id ""
  Bus  0, device   1, function 0:
    ISA bridge: PCI device 8086:7000
      id ""
  Bus  0, device   1, function 1:
    IDE controller: PCI device 8086:7010
      BAR4: I/O at 0xc0a0 [0xc0af].
      id ""
  Bus  0, device   1, function 3:
    Bridge: PCI device 8086:7113
      IRQ 9.
      id ""
  Bus  0, device   2, function 0:
    VGA controller: PCI device 1013:00b8
      BAR0: 32 bit prefetchable memory at 0xfc000000 [0xfdffffff].
      BAR1: 32 bit memory at 0xfebf0000 [0xfebf0fff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id ""
  Bus  0, device   3, function 0:
    Ethernet controller: PCI device 8086:100e
      IRQ 11.
      BAR0: 32 bit memory at 0xfebc0000 [0xfebdffff].
      BAR1: I/O at 0xc000 [0xc03f].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0003fffe].
      id ""
  Bus  0, device  29, function 0:
    USB controller: PCI device 8086:2934
      IRQ 10.
      BAR4: I/O at 0xc040 [0xc05f].
      id "uhci-1"
  Bus  0, device  29, function 1:
    USB controller: PCI device 8086:2935
      IRQ 10.
      BAR4: I/O at 0xc060 [0xc07f].
      id "uhci-2"
  Bus  0, device  29, function 2:
    USB controller: PCI device 8086:2936
      IRQ 11.
      BAR4: I/O at 0xc080 [0xc09f].
      id "uhci-3"
  Bus  0, device  29, function 7:
    USB controller: PCI device 8086:293a
      IRQ 11.
      BAR0: 32 bit memory at 0xfebf1000 [0xfebf1fff].
      id "ehci"
(qemu) device_del uhci-1
Device 'ich9-usb-uhci1' does not support hotplugging
(qemu) device_del uhci-2
Device 'ich9-usb-uhci2' does not support hotplugging
(qemu) device_del uhci-3
Device 'ich9-usb-uhci3' does not support hotplugging
(qemu) device_del ehci ----------------------->this process will not take effect...see below 'info pci' pls.
(qemu) info pci
  Bus  0, device   0, function 0:
    Host bridge: PCI device 8086:1237
      id ""
  Bus  0, device   1, function 0:
    ISA bridge: PCI device 8086:7000
      id ""
  Bus  0, device   1, function 1:
    IDE controller: PCI device 8086:7010
      BAR4: I/O at 0xc0a0 [0xc0af].
      id ""
  Bus  0, device   1, function 3:
    Bridge: PCI device 8086:7113
      IRQ 9.
      id ""
  Bus  0, device   2, function 0:
    VGA controller: PCI device 1013:00b8
      BAR0: 32 bit prefetchable memory at 0xfc000000 [0xfdffffff].
      BAR1: 32 bit memory at 0xfebf0000 [0xfebf0fff].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0000fffe].
      id ""
  Bus  0, device   3, function 0:
    Ethernet controller: PCI device 8086:100e
      IRQ 11.
      BAR0: 32 bit memory at 0xfebc0000 [0xfebdffff].
      BAR1: I/O at 0xc000 [0xc03f].
      BAR6: 32 bit memory at 0xffffffffffffffff [0x0003fffe].
      id ""
  Bus  0, device  29, function 0:
    USB controller: PCI device 8086:2934
      IRQ 10.
      BAR4: I/O at 0xc040 [0xc05f].
      id "uhci-1"
  Bus  0, device  29, function 1:
    USB controller: PCI device 8086:2935
      IRQ 5.
      BAR4: I/O at 0xc060 [0xc07f].
      id "uhci-2"
  Bus  0, device  29, function 2:
    USB controller: PCI device 8086:2936
      IRQ 11.
      BAR4: I/O at 0xc080 [0xc09f].
      id "uhci-3"
  Bus  0, device  29, function 7:
    USB controller: PCI device 8086:293a
      IRQ 10.
      BAR0: 32 bit memory at 0xfebf1000 [0xfebf1fff].
      id "ehci"
(qemu)

Best regards,
-Gonglei

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

end of thread, other threads:[~2014-08-29  3:24 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-11  4:02 [Qemu-devel] USB PCI host bus adapter hot plug Alexey Kardashevskiy
2014-08-11  5:59 ` Gonglei (Arei)
2014-08-12  6:05   ` Alexey Kardashevskiy
2014-08-13  4:52     ` Alexey Kardashevskiy
2014-08-13  5:00       ` Gonglei (Arei)
2014-08-13  6:02         ` Alexey Kardashevskiy
2014-08-28  8:24   ` Gerd Hoffmann
2014-08-28  8:31     ` Gonglei (Arei)
2014-08-28  8:35       ` Gerd Hoffmann
2014-08-29  3:23         ` Gonglei (Arei)

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.