From: Hans de Goede <hdegoede@redhat.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] Performance of USB2.0
Date: Mon, 31 Oct 2011 13:46:28 +0100 [thread overview]
Message-ID: <4EAE98A4.6000700@redhat.com> (raw)
In-Reply-To: <4EAE6A16.60303@obes.name>
Hi,
On 10/31/2011 10:27 AM, Til Obes wrote:
> Hello all,
>
> i want to use a virtual router which is connected to a cable box
> via an usb ethernet controller. The device itself runs properly
> at normal usage. But inside the virtual machine i get only about 7MBit.
> I configured the the usb device with the following xml syntax of
> libvirt:
> <controller type='usb' index='0' model='ehci'>
> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
> </controller>
> <hostdev mode='subsystem' type='usb' managed='no'>
> <source>
> <vendor id='0x9710'/>
> <product id='0x7830'/>
> </source>
> </hostdev>
>
> Inside the guest i get this output of lsusb:
> Bus 001 Device 002: ID 9710:7830 MosChip Semiconductor MCS7830 10/100 Mbps Ethernet adapter
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>
> lsusb -v shows this output for the root hub:
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Device Descriptor:
> bLength 18
> bDescriptorType 1
> bcdUSB 2.00
> bDeviceClass 9 Hub
> bDeviceSubClass 0 Unused
> bDeviceProtocol 0 Full speed (or root) hub
> bMaxPacketSize0 64
> idVendor 0x1d6b Linux Foundation
> idProduct 0x0002 2.0 root hub
> bcdDevice 2.06
> iManufacturer 3 Linux 2.6.32-5-amd64 ehci_hcd
> iProduct 2 EHCI Host Controller
> iSerial 1 0000:00:07.0
>
> Does this "Full speed" mean, that it is still running with 12MBit?
No, as lsusb says bDeviceProtocol 0 is standard for root hubs even
for usb2 (so high speed / 480mbit capable) root hubs.
> What is the status of High Speed USB (480Mbit) inside the guest?
It should work fine since qemu 0.15.
If you're using libvirt to start qemu, then it will also pass
-usb to qemu, so you will have both a usb-1 (uhci) and a usb-2
(ehci) controller inside your vm, since your hostdev xml code does
not specify a bus the hostdev will likely get connected to the first
usb bus which is the one attached to the uhci controller, although
your lsusb output suggests otherwise (to my surprise).
So assuming that I'm reading your lsusb output correct, the device
does seem to be connected to the virtual ehci controller rather then
to the virtual uhci controller, which more or less rules that out
as the cause.
This means that the likely cause is just that usb emulation / pass
through causes quite a bit of overhead, which is not unexpected since
both the usb protocol and the ehci controller interface are both quite
hard to emulate.
It is likely better to just use the usb nic directly from the host,
and then pass it through the virtio-net using bridging.
Regards,
Hans
next prev parent reply other threads:[~2011-10-31 12:46 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-10-31 9:27 [Qemu-devel] Performance of USB2.0 Til Obes
2011-10-31 12:46 ` Hans de Goede [this message]
2011-10-31 13:37 ` Til Obes
2011-10-31 15:22 ` Hans de Goede
2011-11-01 9:37 ` Gerd Hoffmann
2011-11-01 13:42 ` Til Obes
2012-01-05 16:29 ` Til Obes
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=4EAE98A4.6000700@redhat.com \
--to=hdegoede@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).