> > That sounds like it's likely to come back and bite you. The guest has no > > idea which areas of ram happen to be contiguous on the host. > > Practically speaking, with target-i386 anything that is contiguous in > guest physical memory is contiguous in the host address space provided > it's ram. > > These assumptions are important. I have a local branch (that I'll send > out soon) that implements a ram API and converted virtio to make use of > it. I'm seeing a ~50% increase in tx throughput.
IMO supporting discontiguous regions is a requirement. target-i386 might get away with contiguous memory, because it omits most of the board level details. For everything else I'd expect this to be a real problem. I'm not happy about the not-remapable assumption either. In my experience this is fairly common. In fact many real x86 machines have this capability (to workaround the 4G PCI hole). By my reading the ppc440_bamboo board fails both your assumptions. I imagine the KVM-PPC folks would be upset if you decided that virtio no longer worked on this board. This is all somewhat disappointing, given virtio is supposed to be a DMA based architecture, and not rely on shared memory semantics. Paul