Re: [RFC 7/11] virtio_pci: new, capability-aware driver.
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2012-01-11 20:46:04
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2012-01-11 20:46:04
On Wed, 2012-01-11 at 14:28 +0000, Stefan Hajnoczi wrote:
On Wed, Jan 11, 2012 at 9:10 AM, Benjamin Herrenschmidt [off-list ref] wrote:quoted
On Wed, 2012-01-11 at 08:47 +0000, Stefan Hajnoczi wrote:quoted
This is also an opportunity to stop using CPU physical addresses in the ring and instead perform DMA like a normal PCI device (use bus addresses).Euh why ?Because it's a paravirt hack that ends up hitting corner cases. It's not possible to do virtio-pci passthrough under nested virtualization unless we use an IOMMU. Imagine passing virtio-net from L0 into the L2 guest (i.e. PCI-passthrough). If virtio-pci is really "PCI" this should be possible but it's not when we use physical addresses instead of bus addresses.
Is this just an academic exercise or is there any actual value in doing this ? Using an iommu is going to slaugher your performance, so at the very least it should be kept an option. Yes, it's a paravirt "hack" as you call it but that's what virtio is all about.... paravirt. If you prefer you can emulate a real HW device :-) Ben.