To improve GVTg performance, it could reduce the mmio access trap numbers within guest driver in some certain scenarios since mmio access trap will introuduce vm exit/vm enter cost. the solution in this patch set is to setup a shared memory region which accessed both by guest and GVTg without trap cost. the shared memory region is allocated by guest driver and guest driver will pass the region's memory guest physical address to GVTg through PVINFO register and later GVTg can access this region directly without trap cost to achieve data exchange purpose between guest and GVTg. in this patch set, 2 kind of pvmmio optimization implemented which is controlled by pvmmio_caps PVINO register with different level flag. 1. workload submission (context submission): reduce 4 traps to 1 trap. 2. ppgtt update: eliminate the cost of ppgtt write protection. based on the experiment, the performance was gained 4 percent (average) improvment with regard to both media and 3D workload benchmarks. based on the pvmmio framework, it could achive more sceneario optimization such as globle GTT update, display plane and water mark update with guest. v0: RFC patch set v1: addressed RFC review comments v2: addressed v1 review comments, added pv callbacks for pv operations v3: 1. addressed v2 review comments, removed pv callbacks code duplication in v2 and unified pv calls under g2v notification register. different g2v pv notifications defined. 2. dropped pv master irq feature due to hard conflict with recnet i915 change and take time to rework. Xiaolin Zhang (8): drm/i915: introduced pv capability for vgpu drm/i915: get ready of memory for pvmmio drm/i915: context submission pvmmio optimization drm/i915: ppgtt update pvmmio optimization drm/i915/gvt: GVTg handle pvmmio_caps PVINFO register drm/i915/gvt: GVTg handle shared_page setup drm/i915/gvt: GVTg support context submission pvmmio optimization drm/i915/gvt: GVTg support ppgtt pvmmio optimization drivers/gpu/drm/i915/gvt/gtt.c | 318 ++++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/gvt/gtt.h | 9 + drivers/gpu/drm/i915/gvt/gvt.h | 12 +- drivers/gpu/drm/i915/gvt/handlers.c | 94 +++++++++- drivers/gpu/drm/i915/gvt/vgpu.c | 31 ++++ drivers/gpu/drm/i915/i915_drv.c | 2 + drivers/gpu/drm/i915/i915_drv.h | 15 +- drivers/gpu/drm/i915/i915_gem.c | 3 +- drivers/gpu/drm/i915/i915_gem_gtt.c | 67 +++++++ drivers/gpu/drm/i915/i915_pvinfo.h | 47 ++++- drivers/gpu/drm/i915/i915_vgpu.c | 48 ++++- drivers/gpu/drm/i915/intel_lrc.c | 33 +++- drivers/gpu/drm/i915/intel_ringbuffer.h | 3 + 13 files changed, 668 insertions(+), 14 deletions(-) -- 2.7.4 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx