On Wed, Jun 05, 2013 at 03:45:09PM -0500, Anthony Liguori wrote: > "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 But it's solvable: just enable devices one by one to boot from them. -- MST _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization