On 21.09.2012, at 07:33, Paul Mackerras wrote: > The PAPR paravirtualization interface lets guests register three > different types of per-vCPU buffer areas in its memory for communication > with the hypervisor. These are called virtual processor areas (VPAs). > Currently the hypercalls to register and unregister VPAs are handled > by KVM in the kernel, and userspace has no way to know about or save > and restore these registrations across a migration. > > This adds get and set ioctls to allow userspace to see what addresses > have been registered, and to register or unregister them. This will > be needed for guest hibernation and migration, and is also needed so > that userspace can unregister them on reset (otherwise we corrupt > guest memory after reboot by writing to the VPAs registered by the > previous kernel). We also add a capability to indicate that the > ioctls are supported. > > This also fixes a bug where we were calling init_vpa unconditionally, > leading to an oops when unregistering the VPA. > > Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx> Do you think it'd be possible to map these onto ONE_REG as well? I'm slightly wary to add an interface that is restricted to only a limited amount of entries. What if some future PAPR spec wants to add another VPA to the game? We'd have to do a completely new ioctl for that one then. However, if instead we could have 3 REGs 64-bit VPA_ADDR 128-bit VPA_SLB 128-bit VPA_DTL where you'd have to set VPA_ADDR first, then the other two. It gives us nice extensibility for the future too, right? We could just add another REG and everyone's happy. Alex -- 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