Upcoming Secure VM support for pSeries machines introduces some complications for virtio, since the transfer buffers need to be explicitly shared so that the hypervisor can access them.
While it's not strictly speaking dependent on it, the fact that virtio devices bypass normal platform IOMMU translation complicates the issue on the guest side. Since there are some significan downsides to bypassing the vIOMMU anyway, let's just disable that. There's already a flag to do this in virtio, just turn it on by default for forthcoming pseries machine types. The implementation does this with a compat_props_add() from the latest machine type. This breaks the previous convention that the setup for the latest machine type didn't do anything, instead just taking all the defaults from the abstract base class. However, compat_props_add() can't be used from the base class, because mc->compat_props is explicitly uninitialized for abstract classes. If anyone knows a better way to handle this, let me know. David Gibson (2): spapr: Disable legacy virtio devices for pseries-5.0 and later spapr: Enable virtio iommu_platform=on by default hw/ppc/spapr.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) -- 2.24.1