"Michael S. Tsirkin" <mst@xxxxxxxxxx> writes: > On Wed, Jun 05, 2013 at 10:43:17PM +0300, Michael S. Tsirkin wrote: >> On Wed, Jun 05, 2013 at 01:57:16PM -0500, Anthony Liguori wrote: >> > "Michael S. Tsirkin" <mst@xxxxxxxxxx> writes: >> > >> > > On Wed, Jun 05, 2013 at 10:46:15AM -0500, Anthony Liguori wrote: >> > >> Look, it's very simple. >> > > We only need to do it if we do a change that breaks guests. >> > > >> > > Please find a guest that is broken by the patches. You won't find any. >> > >> > I think the problem in this whole discussion is that we're talking past >> > each other. >> > >> > Here is my understanding: >> > >> > 1) PCI-e says that you must be able to disable IO bars and still have a >> > functioning device. >> > >> > 2) It says (1) because you must size IO bars to 4096 which means that >> > practically speaking, once you enable a dozen or so PIO bars, you run >> > out of PIO space (16 * 4k == 64k and not all that space can be used). >> >> >> Let me add 3 other issues which I mentioned and you seem to miss: >> >> 3) architectures which don't have fast access to IO ports, exist >> virtio does not work there ATM >> >> 4) setups with many PCI bridges exist and have the same issue >> as PCI express. virtio does not work there ATM >> >> 5) On x86, even with nested page tables, firmware only decodes >> the page address on an invalid PTE, not the data. You need to >> emulate the guest to get at the data. Without >> nested page tables, we have to do page table walk and emulate >> to get both address and data. Since this is how MMIO >> is implemented in kvm on x86, MMIO is much slower than PIO >> (with nested page tables by a factor of >2, did not test without). > > Oh I forgot: > > 6) access to MMIO BARs is painful in the BIOS environment > so BIOS would typically need to enable IO for the boot device. But if you want to boot from the 16th device, the BIOS needs to solve this problem anyway. Regards, Anthony Liguori -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html