linux/drivers/gpu/drm/i915/gvt
Changbin Du 3fc03069bc drm/i915: make context status notifier head be per engine
GVTg has introduced the context status notifier to schedule the GVTg
workload. At that time, the notifier is bound to GVTg context only,
so GVTg is not aware of host workloads.

Now we are going to improve GVTg's guest workload scheduler policy,
and add Guc emulation support for new Gen graphics. Both these two
features require acknowledgment for all contexts running on hardware.
(But will not alter host workload.) So here try to make some change.

The change is simple:
  1. Move the context status notifier head from i915_gem_context to
     intel_engine_cs. Which means there is a notifier head per engine
     instead of per context. Execlist driver still call notifier for
     each context sched-in/out events of current engine.
  2. At GVTg side, it binds a notifier_block for each physical engine
     at GVTg initialization period. Then GVTg can hear all context
     status events.

In this patch, GVTg do nothing for host context event, but later
will add a function there. But in any case, the notifier callback is
a noop if this is no active vGPU.

Since intel_gvt_init() is called at early initialization stage and
require the status notifier head has been initiated, I initiate it in
intel_engine_setup().

v2: remove a redundant newline. (chris)

Fixes: 3c7ba6359d ("drm/i915: Introduce execlist context status change notification")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100232
Signed-off-by: Changbin Du <changbin.du@intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
Cc: Zhi Wang <zhi.a.wang@intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Link: http://patchwork.freedesktop.org/patch/msgid/20170313024711.28591-1-changbin.du@intel.com
Acked-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
2017-03-16 16:24:35 +00:00
..
aperture_gm.c drm/i915/gvt: Fix alignment for GTT allocation 2017-02-14 17:03:30 +08:00
cfg_space.c drm/i915/gvt: introduce intel_vgpu_reset_cfg_space to reset configuration space 2017-01-13 15:05:38 +08:00
cmd_parser.c Merge airlied/drm-next into drm-misc-next 2017-02-27 09:30:11 +01:00
cmd_parser.h drm/i915/gvt: vGPU command scanner 2016-10-14 18:15:25 +08:00
debug.h drm/i915/gvt: vGPU command scanner 2016-10-14 18:15:25 +08:00
display.c drm/i915/gvt: add missing display part reset for vGPU reset 2017-02-14 17:09:02 +08:00
display.h drm/i915/gvt: add missing display part reset for vGPU reset 2017-02-14 17:09:02 +08:00
edid.c drm/i915/gvt: Fix static checker warning on intel_gvt_i2c_handle_aux_ch_write() 2016-11-14 18:06:44 +08:00
edid.h drm/i915/gvt: Fix static checker warning on intel_gvt_i2c_handle_aux_ch_write() 2016-11-14 18:06:44 +08:00
execlist.c Linux 4.10-rc8 2017-02-23 12:10:12 +10:00
execlist.h drm/i915/gvt: fix crash in vgpu_reset_execlist 2016-11-14 18:06:43 +08:00
firmware.c drm/i915/gvt: use normal mmio read function for firmware exposure 2017-02-07 17:21:55 +08:00
gtt.c drm/i915/gvt: Map shadow page before using it in shadow page table 2017-02-09 14:17:14 +08:00
gtt.h drm/i915/gvt: introuduce intel_vgpu_reset_gtt() to reset gtt 2017-01-13 15:05:38 +08:00
gvt.c drm/i915/gvt: enable IOMMU for gvt 2017-02-09 14:17:15 +08:00
gvt.h drm/i915: make context status notifier head be per engine 2017-03-16 16:24:35 +00:00
handlers.c Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into drm-next 2017-01-27 11:00:42 +10:00
hypercall.h drm/i915/gvt: remove detect_host() MPT hook 2017-02-07 17:21:44 +08:00
interrupt.c drm/i915/gvt: add sprite plane flip done support. 2017-02-14 17:09:19 +08:00
interrupt.h drm/i915/gvt: vGPU command scanner 2016-10-14 18:15:25 +08:00
kvmgt.c Linux 4.10-rc8 2017-02-23 12:10:12 +10:00
Makefile drm/i915/gvt/kvmgt: add vfio/mdev support to KVMGT 2016-12-16 16:55:26 +08:00
mmio.c drm/i915/gvt: introduce intel_vgpu_reset_mmio() to reset mmio space 2017-01-13 15:05:38 +08:00
mmio.h drm/i915/gvt: introduce intel_vgpu_reset_mmio() to reset mmio space 2017-01-13 15:05:38 +08:00
mpt.h drm/i915/gvt: remove detect_host() MPT hook 2017-02-07 17:21:44 +08:00
opregion.c drm/i915/gvt: cleanup opregion memory allocation code 2017-01-09 11:11:32 +08:00
reg.h drm/i915/gvt: cleanup opregion memory allocation code 2017-01-09 11:11:32 +08:00
render.c drm/i915/gvt: optimize the inhibit context mmio load 2017-02-14 17:35:39 +08:00
render.h drm/i915/gvt: vGPU context switch 2016-10-14 18:15:13 +08:00
sched_policy.c drm/i915/gvt: remove a noisy unimportant log in sched_policy 2017-02-09 14:13:30 +08:00
sched_policy.h drm/i915/gvt: vGPU schedule policy framework 2016-10-14 18:15:02 +08:00
scheduler.c drm/i915: make context status notifier head be per engine 2017-03-16 16:24:35 +00:00
scheduler.h drm/i915/gvt: Fix relocation of shadow bb 2017-01-17 16:54:23 +08:00
trace_points.c drm/i915/gvt: trace stub 2016-10-14 18:12:11 +08:00
trace.h drm/i915/gvt: vGPU command scanner 2016-10-14 18:15:25 +08:00
vgpu.c drm/i915/gvt: add missing display part reset for vGPU reset 2017-02-14 17:09:02 +08:00