summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/gvt/gtt.h
diff options
context:
space:
mode:
authorZhi Wang <zhi.a.wang@intel.com>2017-10-17 02:00:27 +0800
committerZhenyu Wang <zhenyuw@linux.intel.com>2017-11-16 11:48:24 +0800
commitc1802534e5a6ec089e2b951116adfc14bb6dae64 (patch)
tree80955b3ca60edc1d4b69c1abbabbd410f70d5520 /drivers/gpu/drm/i915/gvt/gtt.h
parent655c64efe36f199bea16f9ba7388c479d5feed5f (diff)
drm/i915/gvt: Refine broken PPGTT scratch
Refine previously broken PPGTT scratch. Scratch PTE was no correctly handled and also the handling of scratch entries in page table walk was not well organized, which brings gaps of introducing lazy shadow. Signed-off-by: Zhi Wang <zhi.a.wang@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/gtt.h')
-rw-r--r--drivers/gpu/drm/i915/gvt/gtt.h17
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/gvt/gtt.h b/drivers/gpu/drm/i915/gvt/gtt.h
index f98c1c19b4cb..416b2f868cf0 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.h
+++ b/drivers/gpu/drm/i915/gvt/gtt.h
@@ -188,9 +188,12 @@ extern void intel_vgpu_destroy_mm(struct kref *mm_ref);
struct intel_vgpu_guest_page;
-struct intel_vgpu_scratch_pt {
+struct intel_vgpu_shadow_page {
+ void *vaddr;
struct page *page;
- unsigned long page_mfn;
+ int type;
+ struct hlist_node node;
+ unsigned long mfn;
};
struct intel_vgpu_gtt {
@@ -202,7 +205,7 @@ struct intel_vgpu_gtt {
atomic_t n_tracked_guest_page;
struct list_head oos_page_list_head;
struct list_head post_shadow_list_head;
- struct intel_vgpu_scratch_pt scratch_pt[GTT_TYPE_MAX];
+ struct intel_vgpu_shadow_page ppgtt_scratch_page[GTT_TYPE_MAX];
};
extern int intel_vgpu_init_gtt(struct intel_vgpu *vgpu);
@@ -218,14 +221,6 @@ extern struct intel_vgpu_mm *intel_gvt_find_ppgtt_mm(struct intel_vgpu *vgpu,
struct intel_vgpu_oos_page;
-struct intel_vgpu_shadow_page {
- void *vaddr;
- struct page *page;
- int type;
- struct hlist_node node;
- unsigned long mfn;
-};
-
struct intel_vgpu_page_track {
struct hlist_node node;
bool tracked;