As you may have noticed, we are constantly adding IOCTLs as yet another
state field has to be exchanged between kernel and user space. I was
about to add one for the missing hidden NMI states (pending and masked),
but Avi suggested to take this chance, inventing a more easily
extensible interface.
And here comes my suggestion for VCPU states. Please see patch 2 for
details on this approach, patch 4 demonstrates how extensions may look
like in the future.
I will follow up with a patch against qemu upstream to convert
kvm_arch_get/put_registers to the new interface, ie. query/set all
substates via one IOCTL when available. I did not convert qemu-kvm, only
added support for the NMI substate, as the corresponding code will
likely by modified to use the upstream implementation anyway.
Comments welcome, also suggestion for further substates to be added in
this round.
Jan
Find this series also at git://git.kiszka.org/linux-kvm.git queues/vcpu-state
Jan Kiszka (4):
KVM: Reorder IOCTLs in main kvm.h
KVM: Add unified KVM_GET/SET_VCPU_STATE IOCTL
KVM: x86: Add support for KVM_GET/SET_VCPU_STATE
KVM: x86: Add VCPU substate for NMI states
arch/ia64/kvm/kvm-ia64.c | 12 ++
arch/powerpc/kvm/powerpc.c | 12 ++
arch/s390/kvm/kvm-s390.c | 12 ++
arch/x86/include/asm/kvm.h | 15 ++-
arch/x86/include/asm/kvm_host.h | 2 +
arch/x86/kvm/svm.c | 22 +++
arch/x86/kvm/vmx.c | 30 ++++
arch/x86/kvm/x86.c | 243 ++++++++++++++++++++---------
include/linux/kvm.h | 246 +++++++++++++++++--------------
include/linux/kvm_host.h | 5 +
virt/kvm/kvm_main.c | 318 +++++++++++++++++++++++++++-----------
11 files changed, 637 insertions(+), 280 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html