From mboxrd@z Thu Jan 1 00:00:00 1970 From: Erik Brakkee Subject: Re: USB Passthrough 1.1 performance problem... Date: Sun, 12 Dec 2010 23:31:19 +0100 Message-ID: <4D054D37.7040107@brakkee.org> References: <4D04B645.3010100@brakkee.org> <4D0537A8.8000607@brakkee.org> <4D0549AA.2020007@web.de> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit To: Jan Kiszka , kvm@vger.kernel.org Return-path: Received: from cpsmtp-fia03.kpnxchange.com ([195.121.247.6]:4167 "EHLO cpsmtp-fia03.kpnxchange.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751111Ab0LLWbV (ORCPT ); Sun, 12 Dec 2010 17:31:21 -0500 In-Reply-To: <4D0549AA.2020007@web.de> Sender: kvm-owner@vger.kernel.org List-ID: Jan Kiszka wrote: > >>> Are there some tuning parameters I can use or perhaps even kernel >>> configuration paramters on the host to solve this? >>> >>> Cheers >>> Erik >>> >>> Host: Motherboard Supermicro X8DTi-F, Intel Xeon L5630, 12MB >>> OS: Opensuse 11.3 64 bit >>> >>> Guest: OS: Opensuse 11.3 64 bit >>> >> I can say now that I am giving up on getting this to work. One >> alternative was to use PCI passthrough the USB hardware, but that >> didn't work for the USB that was on the motherboard. So I bought a USB >> PCI card and tried to use PCI passthrough for that. Unfortunately other >> problems occured there. >> >> For one, the problem with 4K alignment. But I could fix that by using >> the pci=resource_alignment=... kernel parameter. In my grub/menu.lst it >> says: >> >> kernel /vmlinuz-2.6.34.7-0.5-default root=/dev/hsystem/root quiet >> showopts intel_iommu=on >> pci=resource_alignment=01:04.0;01:04.1;01:04.2 noirqdebug vga=0x31a >> >> >> The noirqdebug flas was needed to avoid the host from disabling the IRQ >> (it was a shared IRQ). >> >> Using this, I could configure PCI passthrough and start the VM. Also the >> USB device showed up there. Only it did not work at all. >> >> Here is a summary of my journey up until know: >> >> The original approach I wanted to use was to pass my old PCI card (WinTV >> PVR-500) to a VM. This card is a well supported card and has been doing >> fine for me. Because of the PCI passthrough problems with the wintv >> card, I decided to try a USB card instead. This gave me a 'ctrl buffer >> too small' issue that I could solve by taking the source RPM for kvm and >> applying a known patch from red hat (increasing buffer size from 2048 to >> 8192). But then I got jerky video, probably due to USB 1.1 issues. To >> bypass these I could use PCI passthrough for USB. But with the PCI >> passthrough of this card I am again running into issues probably related >> to Shared IRQs. So, after all this I am back to square one. >> >> I have now modified my approach so instead of running a separate minimal >> host with my old server as a guest, I am now running the old server >> (same install) on the new hardware, using it as a host. I would >> definitely be interested in trying this out further in the future. I >> even tried Xen for a brief moment, only to realize that my host and >> guest felt slower (slower startup and execution) and much more difficult >> to handle. >> >> From the experience of the last two days fulltime trying to get things >> working I can only conclude that the following two features would be >> really important to have: >> >> * Extended PCI passthrough support >> o shared IRQ support >> > Addressed by the series I sent out today. > Does this mean I have a chance now that PCI passthrough of my WinTV PVR-500 might work now? What version is this and where can I get this for opensuse? I still have the setup I used for testing with the host OS still installed but not running so it would be really easy to try out new releases of KVM (it is not a serious production server after all but mainly used to run some websites and mailing lists). > >> o supporting cases where memory is not aligned on a 4K boundary >> > Hmm, I'm seeing warnings here when passing through one of my EHCIs, but > no fatal errors. > In my case, the domain just didn't start. Btw. I was using 0.12.5 on opensuse 11.3 but could only find the sources for 0.12.3 on download.opensuse.org (perhaps I looked wrong) and I patched those for th 4K issue. PCI passthrough also did not work with my wintv pci card with KVM 0.12.5. > >> * USB passthrough >> o support USB 2.0 >> o support USB 3.0 (but taking one step at a time, 2.0 would >> also be great). >> > Note that this will not solve any real-time issue (if that is part of > your problem). E.g.: While my EHCIs work nicely in PCI-passthrough > scenarios, I'm unable to use certain webcams that sooner or later run > out of sync. > > Jan > > Is your point in this case that USB in a VM based on PCI passthrough will always have problems when it comes to more real-time issues or does this only apply to USB passthrough? I can imagine that PCI passthrough is better since it uses hardware support. By the way, I have seen issues in the past whereby the tv card stopped working because of high load on the server running natively so real-time issues also exist apart from virtualization. Apart from this, I am definitely interested in getting updates for KVM on opensuse. Is there a channel for that?