From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35013) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ScYSY-0005Jh-Ql for qemu-devel@nongnu.org; Thu, 07 Jun 2012 04:52:55 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ScYSR-0003MG-PE for qemu-devel@nongnu.org; Thu, 07 Jun 2012 04:52:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:29069) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ScYSR-0003LY-Eo for qemu-devel@nongnu.org; Thu, 07 Jun 2012 04:52:43 -0400 Message-ID: <4FD06BE3.3070506@redhat.com> Date: Thu, 07 Jun 2012 10:52:51 +0200 From: Hans de Goede MIME-Version: 1.0 References: <1338953515.7150.150.camel@pasglop> <4FCEEDC5.7090807@us.ibm.com> <1339017219.7150.170.camel@pasglop> <4FD06725.70905@redhat.com> <1339058438.24838.15.camel@pasglop> In-Reply-To: <1339058438.24838.15.camel@pasglop> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [qemu-devel][RFC] Enable usb with default options List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Benjamin Herrenschmidt Cc: Anthony Liguori , li zhang , qemu-devel@nongnu.org, zhlcindy@linux.vnet.ibm.com Hi, On 06/07/2012 10:40 AM, Benjamin Herrenschmidt wrote: > On Thu, 2012-06-07 at 10:32 +0200, Hans de Goede wrote: >> Hi, >> >> Sorry for jumping in the middle of the thread, I missed the beginning >> of this. Enabling USB by default, esp. emulating a USB mouse by default >> is a *bad* idea. They way the periodic schedule of the various USB >> controllers works means that emulating a USB device means a 1000 vm exits >> per second extra, even when the vm is completely idle! USB powermanagement >> can be used to negate this, but this is off in both Linux and Windows for >> HID devices by default because there are too many broken HID devices. > > On the other hand it is the only choice of input device on some > platforms such as pseries (and MacG5 when I get to make it work :-) Ok, then we can make it default on those platforms, but not everywhere? > Would it be possible to "whitelist" the QEMU emulated HID devices > in the kernel to enable dynamic PM for them (at least when they sit > alone on the bus) ? Yes, Linux already does this for the qemu usb tablet (not in the kernel but with udev rules, but the result is the same), but this won't help windows vms. IOW lets not have usb on by default on x86 please :) > Or is our emulation busted too ? No. > At least that would improve the situation in the long run... > > Side note: It might be able to add an option at least to OHCI and EHCI > to relax a bit the correctness of the emulation and dramatically reduce > the number of exits. > > One way to do that is to simply reduce the timer by a factor of 10 or > 100 (and increment frame numbers in bulk). This could be reasonably > safely done when SOF interrupts aren't enabled, especially when only HID > devices are on the bus. We could alternatively schedule additional > arbitrary frames in between whenever a HID event is actually present. > We (me and Gerd Hoffmann) have investigated that, and experimented with it. It will work for simply devices, but isochronous devices break. The real solution at least for x86 vms is to get the XHCI emulation finished, as the XHCI controller has a much nicer hw interface from an emulation pov, and it can handle usb 1-3 devices. Regards, Hans