Re: [PATCH v3 12/21] KVM: X86: Implement ring-based dirty memory tracking

From: Peter Xu
Date: Mon Jan 20 2020 - 01:48:37 EST


On Fri, Jan 17, 2020 at 04:50:48AM -0500, Michael S. Tsirkin wrote:
> On Thu, Jan 16, 2020 at 11:27:03AM -0500, Peter Xu wrote:
> > On Thu, Jan 16, 2020 at 03:38:21AM -0500, Michael S. Tsirkin wrote:
> > > On Thu, Jan 09, 2020 at 09:57:20AM -0500, Peter Xu wrote:
> > > > + /* If to map any writable page within dirty ring, fail it */
> > > > + if ((kvm_page_in_dirty_ring(vcpu->kvm, vma->vm_pgoff) ||
> > > > + kvm_page_in_dirty_ring(vcpu->kvm, vma->vm_pgoff + pages - 1)) &&
> > > > + vma->vm_flags & VM_WRITE)
> > > > + return -EINVAL;
> > >
> > > Worth thinking about other flags. Do we want to force VM_SHARED?
> > > Disable VM_EXEC?
> >
> > Makes sense to me. I think it worths a standalone patch since they
> > should apply for the whole per-vcpu mmaped regions rather than only
> > for the dirty ring buffers.
> >
> > (Should include KVM_PIO_PAGE_OFFSET, KVM_COALESCED_MMIO_PAGE_OFFSET,
> > KVM_S390_SIE_PAGE_OFFSET, kvm_run, and this new one)
> >
> > Thanks,
>
>
> I don't think we can change UAPI for existing ones.
> Userspace might be setting these by mistake.

Right (especially for VM_EXEC)... I'll only check that for the new
pages then. Thanks,

--
Peter Xu