• Changbin Du's avatar
    drm/i915: make context status notifier head be per engine · 3fc03069
    Changbin Du authored
    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: 3c7ba635 ("drm/i915: Introduce execlist context status change notification")
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=100232Signed-off-by: default avatarChangbin 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: default avatarChris Wilson <chris@chris-wilson.co.uk>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170313024711.28591-1-changbin.du@intel.comAcked-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
    Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
    3fc03069
scheduler.c 14.9 KB