All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/27] drm/i915/gvt: KVM: KVMGT fixes and page-track cleanups
@ 2023-03-11  0:22 ` Sean Christopherson
  0 siblings, 0 replies; 160+ messages in thread
From: Sean Christopherson @ 2023-03-11  0:22 UTC (permalink / raw)
  To: Sean Christopherson, Paolo Bonzini, Zhenyu Wang, Zhi Wang
  Cc: kvm, intel-gvt-dev, intel-gfx, linux-kernel, Yan Zhao, Ben Gardon

Fix a variety of found-by-inspection bugs in KVMGT, and overhaul KVM's
page-track APIs to provide a leaner and cleaner interface.  The motivation
for this series is to (significantly) reduce the number of KVM APIs that
KVMGT uses, with a long-term goal of making all kvm_host.h headers
KVM-internal.

As was the case in v1, tThe KVMGT changes are compile tested only.

Based on "git://git.kernel.org/pub/scm/virt/kvm/kvm.git next".

v2:
 - Reuse vgpu_lock to protect gfn hash instead of introducing a new (and
   buggy) mutext. [Yan]
 - Remove a spurious return from kvm_page_track_init(). [Yan]
 - Take @kvm directly in the inner __kvm_page_track_write(). [Yan]
 - Delete the gfn sanity check that relies on kvm_is_visible_gfn() instead
   of providing a dedicated interface. [Yan]

v1: https://lore.kernel.org/lkml/20221223005739.1295925-1-seanjc@google.com

Sean Christopherson (23):
  drm/i915/gvt: Verify pfn is "valid" before dereferencing "struct page"
  KVM: x86/mmu: Factor out helper to get max mapping size of a memslot
  drm/i915/gvt: Incorporate KVM memslot info into check for 2MiB GTT
    entry
  drm/i915/gvt: Verify VFIO-pinned page is THP when shadowing 2M gtt
    entry
  drm/i915/gvt: Put the page reference obtained by KVM's gfn_to_pfn()
  drm/i915/gvt: Don't rely on KVM's gfn_to_pfn() to query possible 2M
    GTT
  drm/i915/gvt: Use an "unsigned long" to iterate over memslot gfns
  drm/i915/gvt: Drop unused helper intel_vgpu_reset_gtt()
  drm/i915/gvt: Protect gfn hash table with vgpu_lock
  KVM: x86/mmu: Don't rely on page-track mechanism to flush on memslot
    change
  KVM: x86/mmu: Don't bounce through page-track mechanism for guest PTEs
  KVM: drm/i915/gvt: Drop @vcpu from KVM's ->track_write() hook
  KVM: x86: Reject memslot MOVE operations if KVMGT is attached
  drm/i915/gvt: Don't bother removing write-protection on to-be-deleted
    slot
  KVM: x86/mmu: Move KVM-only page-track declarations to internal header
  KVM: x86/mmu: Use page-track notifiers iff there are external users
  KVM: x86/mmu: Drop infrastructure for multiple page-track modes
  KVM: x86/mmu: Rename page-track APIs to reflect the new reality
  KVM: x86/mmu: Assert that correct locks are held for page
    write-tracking
  KVM: x86/mmu: Bug the VM if write-tracking is used but not enabled
  KVM: x86/mmu: Drop @slot param from exported/external page-track APIs
  KVM: x86/mmu: Handle KVM bookkeeping in page-track APIs, not callers
  drm/i915/gvt: Drop final dependencies on KVM internal details

Yan Zhao (4):
  drm/i915/gvt: remove interface intel_gvt_is_valid_gfn
  KVM: x86: Add a new page-track hook to handle memslot deletion
  drm/i915/gvt: switch from ->track_flush_slot() to
    ->track_remove_region()
  KVM: x86: Remove the unused page-track hook track_flush_slot()

 arch/x86/include/asm/kvm_host.h       |  16 +-
 arch/x86/include/asm/kvm_page_track.h |  66 +++----
 arch/x86/kvm/mmu.h                    |   2 +
 arch/x86/kvm/mmu/mmu.c                |  61 +++---
 arch/x86/kvm/mmu/mmu_internal.h       |   2 +
 arch/x86/kvm/mmu/page_track.c         | 270 ++++++++++++++------------
 arch/x86/kvm/mmu/page_track.h         |  58 ++++++
 arch/x86/kvm/x86.c                    |  13 +-
 drivers/gpu/drm/i915/gvt/gtt.c        |  88 ++-------
 drivers/gpu/drm/i915/gvt/gtt.h        |   1 -
 drivers/gpu/drm/i915/gvt/gvt.h        |   3 +-
 drivers/gpu/drm/i915/gvt/kvmgt.c      | 132 ++++++-------
 drivers/gpu/drm/i915/gvt/page_track.c |  10 +-
 13 files changed, 361 insertions(+), 361 deletions(-)
 create mode 100644 arch/x86/kvm/mmu/page_track.h


base-commit: 45dd9bc75d9adc9483f0c7d662ba6e73ed698a0b
-- 
2.40.0.rc1.284.g88254d51c5-goog


^ permalink raw reply	[flat|nested] 160+ messages in thread

end of thread, other threads:[~2023-05-12  3:23 UTC | newest]

Thread overview: 160+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-11  0:22 [PATCH v2 00/27] drm/i915/gvt: KVM: KVMGT fixes and page-track cleanups Sean Christopherson
2023-03-11  0:22 ` [Intel-gfx] " Sean Christopherson
2023-03-11  0:22 ` [PATCH v2 01/27] drm/i915/gvt: Verify pfn is "valid" before dereferencing "struct page" Sean Christopherson
2023-03-11  0:22   ` [Intel-gfx] " Sean Christopherson
2023-03-13 15:37   ` Wang, Wei W
2023-03-13 15:37     ` [Intel-gfx] " Wang, Wei W
2023-03-15 18:13     ` Andrzej Hajda
2023-03-15 19:23       ` Sean Christopherson
2023-03-15 19:23         ` Sean Christopherson
2023-03-17  4:20   ` Yan Zhao
2023-03-17  4:20     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [PATCH v2 02/27] KVM: x86/mmu: Factor out helper to get max mapping size of a memslot Sean Christopherson
2023-03-11  0:22   ` [Intel-gfx] " Sean Christopherson
2023-03-13 15:37   ` Wang, Wei W
2023-03-13 15:37     ` [Intel-gfx] " Wang, Wei W
2023-03-11  0:22 ` [PATCH v2 03/27] drm/i915/gvt: remove interface intel_gvt_is_valid_gfn Sean Christopherson
2023-03-11  0:22   ` [Intel-gfx] " Sean Christopherson
2023-03-17  4:26   ` Yan Zhao
2023-03-17  4:26     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [PATCH v2 04/27] drm/i915/gvt: Incorporate KVM memslot info into check for 2MiB GTT entry Sean Christopherson
2023-03-11  0:22   ` [Intel-gfx] " Sean Christopherson
2023-03-14  3:09   ` Yan Zhao
2023-03-14  3:09     ` [Intel-gfx] " Yan Zhao
2023-03-14 17:13     ` Sean Christopherson
2023-03-14 17:13       ` [Intel-gfx] " Sean Christopherson
2023-03-11  0:22 ` [PATCH v2 05/27] drm/i915/gvt: Verify VFIO-pinned page is THP when shadowing 2M gtt entry Sean Christopherson
2023-03-11  0:22   ` [Intel-gfx] " Sean Christopherson
2023-03-17  5:33   ` Yan Zhao
2023-03-17  5:33     ` [Intel-gfx] " Yan Zhao
2023-05-04 20:41     ` Sean Christopherson
2023-05-04 20:41       ` Sean Christopherson
2023-05-06  6:35       ` [Intel-gfx] " Yan Zhao
2023-05-06  6:35         ` Yan Zhao
2023-05-06 10:57         ` Yan Zhao
2023-05-06 10:57           ` [Intel-gfx] " Yan Zhao
2023-05-08 14:05           ` Sean Christopherson
2023-05-08 14:05             ` [Intel-gfx] " Sean Christopherson
2023-03-11  0:22 ` [PATCH v2 06/27] drm/i915/gvt: Put the page reference obtained by KVM's gfn_to_pfn() Sean Christopherson
2023-03-11  0:22   ` [Intel-gfx] " Sean Christopherson
2023-03-17  6:18   ` Yan Zhao
2023-03-17  6:18     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 07/27] drm/i915/gvt: Don't rely on KVM's gfn_to_pfn() to query possible 2M GTT Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  5:37   ` Yan Zhao
2023-03-17  5:37     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 08/27] drm/i915/gvt: Use an "unsigned long" to iterate over memslot gfns Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  6:19   ` Yan Zhao
2023-03-17  6:19     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 09/27] drm/i915/gvt: Drop unused helper intel_vgpu_reset_gtt() Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  6:20   ` Yan Zhao
2023-03-17  6:20     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 10/27] drm/i915/gvt: Protect gfn hash table with vgpu_lock Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  6:21   ` Yan Zhao
2023-03-17  6:21     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 11/27] KVM: x86/mmu: Don't rely on page-track mechanism to flush on memslot change Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-15  1:08   ` [Intel-gfx] " Yan Zhao
2023-03-15  1:08     ` Yan Zhao
2023-03-15 15:32     ` Sean Christopherson
2023-03-15 15:32       ` [Intel-gfx] " Sean Christopherson
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 12/27] KVM: x86/mmu: Don't bounce through page-track mechanism for guest PTEs Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  6:37   ` Yan Zhao
2023-03-17  6:37     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 13/27] KVM: drm/i915/gvt: Drop @vcpu from KVM's ->track_write() hook Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  7:28   ` [Intel-gfx] " Yan Zhao
2023-03-17  7:28     ` Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 14/27] KVM: x86: Reject memslot MOVE operations if KVMGT is attached Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-15  8:03   ` Yan Zhao
2023-03-15  8:03     ` [Intel-gfx] " Yan Zhao
2023-03-15 15:43     ` Sean Christopherson
2023-03-15 15:43       ` [Intel-gfx] " Sean Christopherson
2023-03-16  9:27       ` Yan Zhao
2023-03-16  9:27         ` [Intel-gfx] " Yan Zhao
2023-03-17  7:29   ` Yan Zhao
2023-03-17  7:29     ` Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 15/27] drm/i915/gvt: Don't bother removing write-protection on to-be-deleted slot Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  7:30   ` [Intel-gfx] " Yan Zhao
2023-03-17  7:30     ` Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 16/27] KVM: x86: Add a new page-track hook to handle memslot deletion Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  7:43   ` [Intel-gfx] " Yan Zhao
2023-03-17  7:43     ` Yan Zhao
2023-03-17 16:20     ` Sean Christopherson
2023-03-17 16:20       ` [Intel-gfx] " Sean Christopherson
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 17/27] drm/i915/gvt: switch from ->track_flush_slot() to ->track_remove_region() Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  7:45   ` [Intel-gfx] " Yan Zhao
2023-03-17  7:45     ` Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 18/27] KVM: x86: Remove the unused page-track hook track_flush_slot() Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 19/27] KVM: x86/mmu: Move KVM-only page-track declarations to internal header Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-15  8:44   ` [Intel-gfx] " Yan Zhao
2023-03-15  8:44     ` Yan Zhao
2023-03-15 15:13     ` Sean Christopherson
2023-03-15 15:13       ` [Intel-gfx] " Sean Christopherson
2023-03-16  9:19       ` Yan Zhao
2023-03-16  9:19         ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 20/27] KVM: x86/mmu: Use page-track notifiers iff there are external users Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-15  9:34   ` [Intel-gfx] " Yan Zhao
2023-03-15  9:34     ` Yan Zhao
2023-03-15 16:21     ` Sean Christopherson
2023-03-15 16:21       ` [Intel-gfx] " Sean Christopherson
2023-03-16  9:29       ` Yan Zhao
2023-03-16  9:29         ` Yan Zhao
2023-03-15 10:36   ` Yan Zhao
2023-03-15 10:36     ` [Intel-gfx] " Yan Zhao
2023-03-15 16:54     ` Sean Christopherson
2023-03-15 16:54       ` [Intel-gfx] " Sean Christopherson
2023-05-04 19:54       ` Sean Christopherson
2023-05-04 19:54         ` Sean Christopherson
2023-05-06  1:08         ` Yan Zhao
2023-05-06  1:08           ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 21/27] KVM: x86/mmu: Drop infrastructure for multiple page-track modes Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 22/27] KVM: x86/mmu: Rename page-track APIs to reflect the new reality Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 23/27] KVM: x86/mmu: Assert that correct locks are held for page write-tracking Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  7:55   ` Yan Zhao
2023-03-17  7:55     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 24/27] KVM: x86/mmu: Bug the VM if write-tracking is used but not enabled Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 25/27] KVM: x86/mmu: Drop @slot param from exported/external page-track APIs Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  8:28   ` Yan Zhao
2023-03-17  8:28     ` [Intel-gfx] " Yan Zhao
2023-03-23  8:50     ` Yan Zhao
2023-03-23  8:50       ` [Intel-gfx] " Yan Zhao
2023-05-03 23:16       ` Sean Christopherson
2023-05-03 23:16         ` [Intel-gfx] " Sean Christopherson
2023-05-04  2:17         ` Yan Zhao
2023-05-04  2:17           ` [Intel-gfx] " Yan Zhao
2023-05-08  1:15           ` Yan Zhao
2023-05-08  1:15             ` [Intel-gfx] " Yan Zhao
2023-05-11 22:39             ` Sean Christopherson
2023-05-11 22:39               ` [Intel-gfx] " Sean Christopherson
2023-05-12  2:58               ` Yan Zhao
2023-05-12  2:58                 ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 26/27] KVM: x86/mmu: Handle KVM bookkeeping in page-track APIs, not callers Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  8:52   ` Yan Zhao
2023-03-17  8:52     ` [Intel-gfx] " Yan Zhao
2023-03-11  0:22 ` [Intel-gfx] [PATCH v2 27/27] drm/i915/gvt: Drop final dependencies on KVM internal details Sean Christopherson
2023-03-11  0:22   ` Sean Christopherson
2023-03-17  8:58   ` Yan Zhao
2023-03-17  8:58     ` [Intel-gfx] " Yan Zhao
2023-03-13  9:58 ` [Intel-gfx] [PATCH v2 00/27] drm/i915/gvt: KVM: KVMGT fixes and page-track cleanups Yan Zhao
2023-03-13  9:58   ` Yan Zhao
2023-03-16 12:27 ` [Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/gvt: KVM: KVMGT fixes and page-track cleanups (rev5) Patchwork
2023-05-04 22:36 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/gvt: KVM: KVMGT fixes and page-track cleanups (rev6) Patchwork
2023-05-06  2:32 ` [Intel-gfx] ✗ Fi.CI.BUILD: failure for drm/i915/gvt: KVM: KVMGT fixes and page-track cleanups (rev7) Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.