[Intel-gfx] [RFC PATCH 0/8] Add host i915 support for vGPU

Jike Song jike.song at intel.com
Tue Sep 30 12:05:30 CEST 2014

Intel GVT-g (previously known as XenGT), is a complete GPU
virtualization solution with mediated pass-through for 4th
generation Intel Core processors - Haswell platform. This
technology presents a virtual full-fledged GPU to each Virtual
Machine (VM). VMs can directly access performance-critical
resources, without intervention from the hypervisor in most
cases, while privileged operations from VMs are trap-and-emulated
at minimal cost. For details, please refer to:


The patches of adding vGPU guest support for i915, is already posted at:


This patch set is about to add vGPU host support.

When running as vGPU host, the i915 driver can't simply occupy
the whole GPU resources, it needs to proactively meidate the
accesses to most hardware resources: MMIO, GTT, and interrupt.
Only by handling the hardware resources, the vgt can have
centralized management about sharing between VMs(including
host and guest).

This patch set adds:

	- an i915 extension, named vgt. vgt is the major part of Intel
	  GVT-g implementation, it manages and shares GPU among VMs
	  and host;

	- interfaces between i915 and vgt, including:

		Mediated MMIO access
		Mediated GTT access
		Mediated IRQ handling


	- the vgt in-kernel GPU device-model is not yet integrated, though
	  the interfaces between i915 and vgt are provided;

	- the host i915 driver has some logic same with the guest i915,
	  e.g. the ballooning. When the guest patches(see above) are
	  finalized, we need to rebase upon them;

	- vgt_suspend/vgt_resume are still under cleanup;

	- GPU reset is still under cleanup

  We send out the framework changes in this patch set for review
at first, and meanwhile, vgt integration and cleanup are ongoing.

Jike Song (8):
  drm/i915: introduce a new modparam: enable_vgt
  drm/i915: introduce the skeleton of vgt
  drm/i915: add the vgt implementation of MMIO/GTT mediations
  drm/i915: redirect MMIO accesses to vgt if enabled
  drm/i915: GTT access abstraction
  drm/i915: redirect GTT accesses to vgt if enabled
  drm/i915: vgt irq mediation - via a tasklet based mechanism
  drm/i915: enable vgt if specified by module param

 drivers/gpu/drm/i915/Kconfig        |  18 ++++
 drivers/gpu/drm/i915/Makefile       |   4 +
 drivers/gpu/drm/i915/i915_drv.c     |  10 ++
 drivers/gpu/drm/i915/i915_drv.h     | 204 +++++++++++++++++++++++++++++++++---
 drivers/gpu/drm/i915/i915_gem_gtt.c |  33 +++---
 drivers/gpu/drm/i915/i915_irq.c     |  35 +++++++
 drivers/gpu/drm/i915/i915_params.c  |   4 +
 drivers/gpu/drm/i915/i915_vgt.h     |  58 ++++++++++
 drivers/gpu/drm/i915/intel_uncore.c |   3 +
 drivers/gpu/drm/i915/vgt/vgt.c      | 145 +++++++++++++++++++++++++
 drivers/gpu/drm/i915/vgt/vgt.h      |   6 ++
 11 files changed, 492 insertions(+), 28 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/i915_vgt.h
 create mode 100644 drivers/gpu/drm/i915/vgt/vgt.c
 create mode 100644 drivers/gpu/drm/i915/vgt/vgt.h


More information about the Intel-gfx mailing list