On Thu, Nov 21, 2019 at 11:02:56AM +0100, Paolo Bonzini wrote: > On 19/11/19 09:49, Yang Weijiang wrote: > > + > > +#define SUBPAGE_MAX_BITMAP 64 > > Please rename this to KVM_SUBPAGE_MAX_PAGES > OK. > > +struct kvm_subpage_info { > > + __u64 gfn; /* the first page gfn of the contiguous pages */ > > + __u64 npages; /* number of 4K pages */ > > This can be > > u32 npages; > u32 flags; > > Check that the flags are 0, and fail the ioctl if they aren't. This > will make it easy to extend the API in the future. > Cool, thanks for the suggestion! > > + __u32 access_map[SUBPAGE_MAX_BITMAP]; /* sub-page write-access bitmap array */ > > +}; > > Please make this access_map[0], since the number of entries actually > depends on npages. > > Likewise, kvm_arch_vm_ioctl should read the header first, then allocate > memory for the access_map and read into it. It's probably simpler if > you make kvm_vm_ioctl_get_subpages/kvm_vm_ioctl_set_subpages take > parameters like > > int kvm_vm_ioctl_get_subpages(struct kvm *kvm, u64 gfn, u32 npages, > u32 *access_map); > int kvm_vm_ioctl_set_subpages(struct kvm *kvm, u64 gfn, u32 npages, > u32 *access_map); > Sure, will make the change. thank you! > Thanks, > > Paolo