Am 14.12.2010 um 11:02 schrieb Avi Kivity <[email protected]>:

> On 12/13/2010 10:25 AM, Alexander Graf wrote:
>> >>
>> >  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.
>> 
>> IIRC the reason that PCI passthrough with EHCI performs as badly as it does 
>> is that BARs<  4k get passed through using the slow path (trap to qemu, 
>> issue MMIO in user space). Unfortunately, EHCI seems to have a 256 byte BAR 
>> region usually that is used for some handshaking:
>> 
>> 00:12.2 USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller 
>> (prog-if 20 [EHCI])
>>         Subsystem: ATI Technologies Inc SB700/SB800 USB EHCI Controller
>>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr- 
>> Stepping- SERR- FastB2B- DisINTx-
>>         Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- 
>> DEVSEL=medium>TAbort-<TAbort-<MAbort->SERR-<PERR- INTx-
>>         Latency: 64, Cache Line Size: 64 bytes
>>         Interrupt: pin B routed to IRQ 17
>>         Region 0: Memory at c8014400 (32-bit, non-prefetchable) [size=256]
>> 
> 
> That could certainly be optimized.  If the BAR is all along in its page, both 
> on guest and host (if not, we can migrate it, at least on the host), we can 
> use the same offset within the page on the host as it appears on the guest, 
> and assign the entire page.
> 
> We should make sure SeaBIOS uses a minimum alignment of 4k for mmio BARs.

Yep, I agree :). Back when I tried that, it seemed rather hard to change BAR 
mappings after init from user space. But it's certainly a thing the vfio stuff 
could easily tackle!

Alex

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to