OSDN Git Service

KVM: x86: KVM_CAP_SYNC_REGS
authorKen Hofsass <hofsass@google.com>
Thu, 1 Feb 2018 00:03:36 +0000 (16:03 -0800)
committerRadim Krčmář <rkrcmar@redhat.com>
Tue, 6 Mar 2018 17:40:43 +0000 (18:40 +0100)
commit01643c51bfcf2460b530854046f62ce1b29713ab
treee7cb32f011945beac52d9bb3c373b57c41a52b6f
parent7b7e39522a61f402d41dd9a67f3fa2133ef9d4e8
KVM: x86: KVM_CAP_SYNC_REGS

This commit implements an enhanced x86 version of S390
KVM_CAP_SYNC_REGS functionality. KVM_CAP_SYNC_REGS "allow[s]
userspace to access certain guest registers without having
to call SET/GET_*REGS”. This reduces ioctl overhead which
is particularly important when userspace is making synchronous
guest state modifications (e.g. when emulating and/or intercepting
instructions).

Originally implemented upstream for the S390, the x86 differences
follow:
- userspace can select the register sets to be synchronized with kvm_run
using bit-flags in the kvm_valid_registers and kvm_dirty_registers
fields.
- vcpu_events is available in addition to the regs and sregs register
sets.

Signed-off-by: Ken Hofsass <hofsass@google.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
[Removed wrapper around check for reserved kvm_valid_regs. - Radim]
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
Documentation/virtual/kvm/api.txt
arch/x86/include/uapi/asm/kvm.h
arch/x86/kvm/x86.c