mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/
synced 2026-05-02 18:15:03 -04:00
KVM: s390: Create ioctl for Getting/Setting guest storage keys
Provide the KVM_S390_GET_SKEYS and KVM_S390_SET_SKEYS ioctl which can be used to get/set guest storage keys. This functionality is needed for live migration of s390 guests that use storage keys. Signed-off-by: Jason J. Herne <jjherne@linux.vnet.ibm.com> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
committed by
Christian Borntraeger
parent
e44fc8c9da
commit
30ee2a984f
@@ -2762,6 +2762,64 @@ register number to be used.
|
||||
The "reserved" field is meant for future extensions. It is not used by
|
||||
KVM with the currently defined set of flags.
|
||||
|
||||
4.90 KVM_S390_GET_SKEYS
|
||||
|
||||
Capability: KVM_CAP_S390_SKEYS
|
||||
Architectures: s390
|
||||
Type: vm ioctl
|
||||
Parameters: struct kvm_s390_skeys
|
||||
Returns: 0 on success, KVM_S390_GET_KEYS_NONE if guest is not using storage
|
||||
keys, negative value on error
|
||||
|
||||
This ioctl is used to get guest storage key values on the s390
|
||||
architecture. The ioctl takes parameters via the kvm_s390_skeys struct.
|
||||
|
||||
struct kvm_s390_skeys {
|
||||
__u64 start_gfn;
|
||||
__u64 count;
|
||||
__u64 skeydata_addr;
|
||||
__u32 flags;
|
||||
__u32 reserved[9];
|
||||
};
|
||||
|
||||
The start_gfn field is the number of the first guest frame whose storage keys
|
||||
you want to get.
|
||||
|
||||
The count field is the number of consecutive frames (starting from start_gfn)
|
||||
whose storage keys to get. The count field must be at least 1 and the maximum
|
||||
allowed value is defined as KVM_S390_SKEYS_ALLOC_MAX. Values outside this range
|
||||
will cause the ioctl to return -EINVAL.
|
||||
|
||||
The skeydata_addr field is the address to a buffer large enough to hold count
|
||||
bytes. This buffer will be filled with storage key data by the ioctl.
|
||||
|
||||
4.91 KVM_S390_SET_SKEYS
|
||||
|
||||
Capability: KVM_CAP_S390_SKEYS
|
||||
Architectures: s390
|
||||
Type: vm ioctl
|
||||
Parameters: struct kvm_s390_skeys
|
||||
Returns: 0 on success, negative value on error
|
||||
|
||||
This ioctl is used to set guest storage key values on the s390
|
||||
architecture. The ioctl takes parameters via the kvm_s390_skeys struct.
|
||||
See section on KVM_S390_GET_SKEYS for struct definition.
|
||||
|
||||
The start_gfn field is the number of the first guest frame whose storage keys
|
||||
you want to set.
|
||||
|
||||
The count field is the number of consecutive frames (starting from start_gfn)
|
||||
whose storage keys to get. The count field must be at least 1 and the maximum
|
||||
allowed value is defined as KVM_S390_SKEYS_ALLOC_MAX. Values outside this range
|
||||
will cause the ioctl to return -EINVAL.
|
||||
|
||||
The skeydata_addr field is the address to a buffer containing count bytes of
|
||||
storage keys. Each byte in the buffer will be set as the storage key for a
|
||||
single frame starting at start_gfn for count frames.
|
||||
|
||||
Note: If any architecturally invalid key value is found in the given data then
|
||||
the ioctl will return -EINVAL.
|
||||
|
||||
5. The kvm_run structure
|
||||
------------------------
|
||||
|
||||
|
||||
Reference in New Issue
Block a user