From: Jing Liu <jing2.liu@xxxxxxxxx> Document the detailed information of the new KVM_{G, S}ET_XSAVE2 ioctls. Signed-off-by: Jing Liu <jing2.liu@xxxxxxxxx> Signed-off-by: Yang Zhong <yang.zhong@xxxxxxxxx> --- Documentation/virt/kvm/api.rst | 47 ++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/Documentation/virt/kvm/api.rst b/Documentation/virt/kvm/api.rst index aeeb071c7688..39dfd867e429 100644 --- a/Documentation/virt/kvm/api.rst +++ b/Documentation/virt/kvm/api.rst @@ -1569,6 +1569,8 @@ otherwise it will return EBUSY error. }; This ioctl would copy current vcpu's xsave struct to the userspace. +Application should use KVM_GET_XSAVE2 if xsave states are larger than +4KB. 4.43 KVM_SET_XSAVE @@ -1588,6 +1590,8 @@ This ioctl would copy current vcpu's xsave struct to the userspace. }; This ioctl would copy userspace's xsave struct to the kernel. +Application should use KVM_SET_XSAVE2 if xsave states are larger than +4KB. 4.44 KVM_GET_XCRS @@ -7484,3 +7488,46 @@ The argument to KVM_ENABLE_CAP is also a bitmask, and must be a subset of the result of KVM_CHECK_EXTENSION. KVM will forward to userspace the hypercalls whose corresponding bit is in the argument, and return ENOSYS for the others. + +8.35 KVM_GET_XSAVE2 +------------------- + +:Capability: KVM_CAP_XSAVE2 +:Architectures: x86 +:Type: vcpu ioctl +:Parameters: struct kvm_xsave2 (in) +:Returns: 0 on success, -1 on error + + +:: + + struct kvm_xsave2 { + __u32 size; + __u8 state[0]; + }; + +This ioctl is used for copying current vcpu's xsave struct to the +userspace when xsave state size is larger than 4KB. Application code +should set the 'size' member which indicates the size of xsave state +and KVM copies the xsave state into the 'state' region. + +8.36 KVM_SET_XSAVE2 +------------------- + +:Capability: KVM_CAP_XSAVE2 +:Architectures: x86 +:Type: vcpu ioctl +:Parameters: struct kvm_xsave2 (out) +:Returns: 0 on success, -1 on error + + +:: + + struct kvm_xsave2 { + __u32 size; + __u8 state[0]; + }; + +This ioctl is used for copying userspace's xsave struct to the kernel +when xsave size is larger than 4KB. Application code should set the +'size' member which indicates the size of xsave state.