Messages in this thread | | | Date | Wed, 28 Sep 2022 18:42:01 +0200 | Subject | Re: [RFC PATCH 2/9] kvm.h: introduce KVM_SET_USER_MEMORY_REGION_LIST ioctl | From | Paolo Bonzini <> |
| |
On 9/9/22 12:44, Emanuele Giuseppe Esposito wrote: > This IOCTL enables atomic update of multiple memslots. > The userspace application provides a kvm_userspace_memory_region_list > containing a list of entries, each representing a modification to be > performed to a memslot. > > Requests with invalidate_slot == 1 are pre-processed, because they > are ther DELETE or MOVE, and therefore the memslot must be first > replaced with a copy marked as KVM_MEMSLOT_INVALID, and then replaced. > > Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> > --- > include/uapi/linux/kvm.h | 21 ++++++++++++++++++++- > 1 file changed, 20 insertions(+), 1 deletion(-) > > diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h > index a36e78710382..673496b91a25 100644 > --- a/include/uapi/linux/kvm.h > +++ b/include/uapi/linux/kvm.h > @@ -103,6 +103,24 @@ struct kvm_userspace_memory_region { > __u64 userspace_addr; /* start of the userspace allocated memory */ > }; > > +/* for KVM_SET_USER_MEMORY_REGION_LIST */ > +struct kvm_userspace_memory_region_entry { > + __u32 slot; > + __u32 flags; > + __u64 guest_phys_addr; > + __u64 memory_size; /* bytes */ > + __u64 userspace_addr; /* start of the userspace allocated memory */ > + __u8 invalidate_slot; > + __u8 padding[31]; > +}; > + > +/* for KVM_SET_USER_MEMORY_REGION_LIST */ > +struct kvm_userspace_memory_region_list { > + __u32 nent; > + __u32 flags; > + struct kvm_userspace_memory_region_entry entries[0]; > +}; > + > /* > * The bit 0 ~ bit 15 of kvm_memory_region::flags are visible for userspace, > * other bits are reserved for kvm internal use which are defined in > @@ -1444,7 +1462,8 @@ struct kvm_vfio_spapr_tce { > struct kvm_userspace_memory_region) > #define KVM_SET_TSS_ADDR _IO(KVMIO, 0x47) > #define KVM_SET_IDENTITY_MAP_ADDR _IOW(KVMIO, 0x48, __u64) > - > +#define KVM_SET_USER_MEMORY_REGION_LIST _IOW(KVMIO, 0x49, \ > + struct kvm_userspace_memory_region_list) > /* enable ucontrol for s390 */ > struct kvm_s390_ucas_mapping { > __u64 user_addr;
Looks good; however, in the non-RFC I suggest adding documentation in this patch already (so no Reviewed-by yet).
Paolo
| |