From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx1.redhat.com ([209.132.183.28]:1997 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752685Ab1FJHBN (ORCPT ); Fri, 10 Jun 2011 03:01:13 -0400 Message-ID: <4DF1C0DA.2090108@redhat.com> Date: Fri, 10 Jun 2011 08:59:38 +0200 From: Gerd Hoffmann MIME-Version: 1.0 To: Greg KH CC: Sarah Sharp , linux-usb@vger.kernel.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, libusb-devel@lists.sourceforge.net, Alexander Graf , hector@marcansoft.com, Jan Kiszka , Stefan Hajnoczi , pbonzini@redhat.com, Anthony Liguori , Jes Sorensen , Alan Stern , Oliver Neukum , Felipe Balbi , Mauro Carvalho Chehab , Clemens Ladisch , Jaroslav Kysela , Takashi Iwai , Laurent Pinchart , Hans de Goede Subject: Re: USB mini-summit at LinuxCon Vancouver References: <20110610002103.GA7169@xanatos> <20110610031805.GA15774@kroah.com> In-Reply-To: <20110610031805.GA15774@kroah.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-ID: Sender: Hi, >> The KVM folks suggested that it would be good to get USB and >> virtualization developers together to talk about how to virtualize the >> xHCI host controller. The xHCI spec architect worked closely with >> VMWare to get some extra goodies in the spec to help virtualization, and >> I'd like to see the other virtualization developers take advantage of >> that. I'd also like us to hash out any issues they have been finding in >> the USB core or xHCI driver during the virtualization effort. > > Do people really want to virtualize the whole xHCI controller, or just > specific ports or devices to the guest operating system? SR/IOV support is an optional xHCI feature. As I understand it you can create a VF which looks like a real xHCI controller. This is partly done in hardware and partly by software. Then you can assign it some ressources (specific ports) and pass it to the guest. > If just specific ports, would something like usbip be better for virtual > machines, with the USB traffic going over the network connection between > the guest/host? There are several ways depending on the use case. Usually the guest sees a (fully software emulated) host adapter with usb devices connected, where the usb devices can be (a) emulated too or (b) real usb devices passed through to the guest. The later is done by passing the guests requests to the real device via usbfs. One problem with emulating usb fully in software is the polling design of the hardware which makes the emulation quite cpu intensive. Using a xHCI VF should help here alot, but works for the pass through use case only of course. cheers, Gerd