[PULL] GVT-g device model core

Zhenyu Wang
2016-10-14T10:34:38Z

[-- Attachment #1.1: Type: text/plain, Size: 6443 bytes --]

Hi,

This is first pull request to merge GVT-g device model in i915
which contains core GVT-g device model work to virtualize GPU
resources. This tries to add feature of Intel GVT-g technology
for full GPU virtualization. This version will support KVM based
virtualization solution named as KVMGT.

More background is on official project home: https://01.org/igvt-g

To manage mediated device between virtual GPU and physical device it
will rely on VFIO/mdev framework, this version has not included GVT-g
device model integration work for VFIO/mdev yet as VFIO community is
still under work to refine code base. Currently we're basing on
VFIO/mdev v8 patch series (http://www.spinics.net/lists/kvm/msg138515.html)
and doing more testings on that.

There're also several KVM change dependences. KVM maintainer has
merged two and we will ensure left hits KVM tree before sending new
pull request to enable that.

p.s, There would require some coordinate work for VFIO/mdev. We will
send device model work for that after Alex merged mdev framework in
VFIO tree. Alex has promised to merge that in early of Nov.

Let me know if there's any issue with this our first pull request.

Thanks!

--
The following changes since commit 86e83e35d190a9b553384e0e711091a4e9643998:

drm/i915: Merge duplicate gen4 and vlv/chv enable vblank callbacks (2016-10-13 21:58:52 +0100)

are available in the git repository at:

https://github.com/01org/gvt-linux.git tags/gvt-next-2016-10-14

for you to fetch changes up to 21196a81c2d8bc9d79e1cbd896f668106da4f75d:

drm/i915/gvt: Support GVT-g on Skylake (2016-10-14 18:15:36 +0800)

----------------------------------------------------------------
Zhi Wang (17):
drm/i915/gvt: vGPU HW resource management
drm/i915/gvt: Introduce a framework for tracking HW registers.
drm/i915/gvt: golden virtual HW state management
drm/i915/gvt: Introduce basic vGPU life cycle management
drm/i915/gvt: trace stub
drm/i915/gvt: vGPU interrupt virtualization.
drm/i915/gvt: vGPU graphics memory virtualization
drm/i915/gvt: vGPU PCI configuration space virtualization
drm/i915/gvt: vGPU MMIO virtualization
drm/i915/gvt: vGPU display virtualization
drm/i915/gvt: vGPU execlist virtualization
drm/i915/gvt: vGPU workload submission
drm/i915/gvt: vGPU workload scheduler
drm/i915/gvt: vGPU schedule policy framework
drm/i915/gvt: vGPU context switch
drm/i915/gvt: vGPU command scanner
drm/i915/gvt: Support GVT-g on Skylake

drivers/gpu/drm/i915/gvt/Makefile | 4 +-
drivers/gpu/drm/i915/gvt/aperture_gm.c | 341 ++++
drivers/gpu/drm/i915/gvt/cfg_space.c | 287 +++
drivers/gpu/drm/i915/gvt/cmd_parser.c | 2878 +++++++++++++++++++++++++++++++
drivers/gpu/drm/i915/gvt/cmd_parser.h | 49 +
drivers/gpu/drm/i915/gvt/debug.h | 29 +-
drivers/gpu/drm/i915/gvt/display.c | 329 ++++
drivers/gpu/drm/i915/gvt/display.h | 163 ++
drivers/gpu/drm/i915/gvt/edid.c | 531 ++++++
drivers/gpu/drm/i915/gvt/edid.h | 150 ++
drivers/gpu/drm/i915/gvt/execlist.c | 852 +++++++++
drivers/gpu/drm/i915/gvt/execlist.h | 188 ++
drivers/gpu/drm/i915/gvt/firmware.c | 308 ++++
drivers/gpu/drm/i915/gvt/gtt.c | 2231 ++++++++++++++++++++++++
drivers/gpu/drm/i915/gvt/gtt.h | 270 +++
drivers/gpu/drm/i915/gvt/gvt.c | 153 +-
drivers/gpu/drm/i915/gvt/gvt.h | 318 +++-
drivers/gpu/drm/i915/gvt/handlers.c | 2794 ++++++++++++++++++++++++++++++
drivers/gpu/drm/i915/gvt/hypercall.h | 34 +
drivers/gpu/drm/i915/gvt/interrupt.c | 740 ++++++++
drivers/gpu/drm/i915/gvt/interrupt.h | 233 +++
drivers/gpu/drm/i915/gvt/mmio.c | 305 ++++
drivers/gpu/drm/i915/gvt/mmio.h | 105 ++
drivers/gpu/drm/i915/gvt/mpt.h | 220 +++
drivers/gpu/drm/i915/gvt/opregion.c | 343 ++++
drivers/gpu/drm/i915/gvt/reg.h | 80 +
drivers/gpu/drm/i915/gvt/render.c | 290 ++++
drivers/gpu/drm/i915/gvt/render.h | 43 +
drivers/gpu/drm/i915/gvt/sched_policy.c | 291 ++++
drivers/gpu/drm/i915/gvt/sched_policy.h | 58 +
drivers/gpu/drm/i915/gvt/scheduler.c | 572 ++++++
drivers/gpu/drm/i915/gvt/scheduler.h | 139 ++
drivers/gpu/drm/i915/gvt/trace.h | 286 +++
drivers/gpu/drm/i915/gvt/trace_points.c | 36 +
drivers/gpu/drm/i915/gvt/vgpu.c | 272 +++
drivers/gpu/drm/i915/intel_gvt.c | 2 +
drivers/gpu/drm/i915/intel_gvt.h | 1 +
37 files changed, 15913 insertions(+), 12 deletions(-)
create mode 100644 drivers/gpu/drm/i915/gvt/aperture_gm.c
create mode 100644 drivers/gpu/drm/i915/gvt/cfg_space.c
create mode 100644 drivers/gpu/drm/i915/gvt/cmd_parser.c
create mode 100644 drivers/gpu/drm/i915/gvt/cmd_parser.h
create mode 100644 drivers/gpu/drm/i915/gvt/display.c
create mode 100644 drivers/gpu/drm/i915/gvt/display.h
create mode 100644 drivers/gpu/drm/i915/gvt/edid.c
create mode 100644 drivers/gpu/drm/i915/gvt/edid.h
create mode 100644 drivers/gpu/drm/i915/gvt/execlist.c
create mode 100644 drivers/gpu/drm/i915/gvt/execlist.h
create mode 100644 drivers/gpu/drm/i915/gvt/firmware.c
create mode 100644 drivers/gpu/drm/i915/gvt/gtt.c
create mode 100644 drivers/gpu/drm/i915/gvt/gtt.h
create mode 100644 drivers/gpu/drm/i915/gvt/handlers.c
create mode 100644 drivers/gpu/drm/i915/gvt/interrupt.c
create mode 100644 drivers/gpu/drm/i915/gvt/interrupt.h
create mode 100644 drivers/gpu/drm/i915/gvt/mmio.c
create mode 100644 drivers/gpu/drm/i915/gvt/mmio.h
create mode 100644 drivers/gpu/drm/i915/gvt/opregion.c
create mode 100644 drivers/gpu/drm/i915/gvt/reg.h
create mode 100644 drivers/gpu/drm/i915/gvt/render.c
create mode 100644 drivers/gpu/drm/i915/gvt/render.h
create mode 100644 drivers/gpu/drm/i915/gvt/sched_policy.c
create mode 100644 drivers/gpu/drm/i915/gvt/sched_policy.h
create mode 100644 drivers/gpu/drm/i915/gvt/scheduler.c
create mode 100644 drivers/gpu/drm/i915/gvt/scheduler.h
create mode 100644 drivers/gpu/drm/i915/gvt/trace.h
create mode 100644 drivers/gpu/drm/i915/gvt/trace_points.c
create mode 100644 drivers/gpu/drm/i915/gvt/vgpu.c

--
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 163 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]