Message ID | 20230729013535.1070024-18-seanjc@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915/gvt: KVM: KVMGT fixes and page-track cleanups | expand |
On 7/29/2023 4:35 AM, Sean Christopherson wrote: > When handling a slot "flush", don't call back into KVM to drop write > protection for gfns in the slot. Now that KVM rejects attempts to move > memory slots while KVMGT is attached, the only time a slot is "flushed" > is when it's being removed, i.e. the memslot and all its write-tracking > metadata is about to be deleted. > > Reviewed-by: Yan Zhao <yan.y.zhao@intel.com> > Tested-by: Yongwei Ma <yongwei.ma@intel.com> > Signed-off-by: Sean Christopherson <seanjc@google.com> > --- > drivers/gpu/drm/i915/gvt/kvmgt.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c > index e9276500435d..3ea3cb9eb599 100644 > --- a/drivers/gpu/drm/i915/gvt/kvmgt.c > +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c > @@ -1630,14 +1630,8 @@ static void kvmgt_page_track_flush_slot(struct kvm *kvm, > > for (i = 0; i < slot->npages; i++) { > gfn = slot->base_gfn + i; > - if (kvmgt_gfn_is_write_protected(info, gfn)) { > - write_lock(&kvm->mmu_lock); > - kvm_slot_page_track_remove_page(kvm, slot, gfn, > - KVM_PAGE_TRACK_WRITE); > - write_unlock(&kvm->mmu_lock); > - > + if (kvmgt_gfn_is_write_protected(info, gfn)) > kvmgt_protect_table_del(info, gfn); > - } > } > mutex_unlock(&info->vgpu_lock); > } Reviewed-by: Zhi Wang <zhi.a.wang@intel.com>
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c index e9276500435d..3ea3cb9eb599 100644 --- a/drivers/gpu/drm/i915/gvt/kvmgt.c +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c @@ -1630,14 +1630,8 @@ static void kvmgt_page_track_flush_slot(struct kvm *kvm, for (i = 0; i < slot->npages; i++) { gfn = slot->base_gfn + i; - if (kvmgt_gfn_is_write_protected(info, gfn)) { - write_lock(&kvm->mmu_lock); - kvm_slot_page_track_remove_page(kvm, slot, gfn, - KVM_PAGE_TRACK_WRITE); - write_unlock(&kvm->mmu_lock); - + if (kvmgt_gfn_is_write_protected(info, gfn)) kvmgt_protect_table_del(info, gfn); - } } mutex_unlock(&info->vgpu_lock); }