• Changbin Du's avatar
    drm/i915/gvt: Use force single submit flag to distinguish gvt request from i915 request · bc2d4b62
    Changbin Du authored
    In my previous Commit ab9da627906a ("drm/i915: make context status
    notifier head be per engine") rely on scheduler->current_workload[x]
    to distinguish gvt spacial request from i915 request. But this is
    not always true since no synchronization between workload_thread and
    lrc irq handler.
    
        lrc irq handler               workload_thread
             ----                          ----
      pick i915 requests;
                                    intel_vgpu_submit_execlist();
                                    current_workload[x] = xxx;
      shadow_context_status_change();
    
    Then current_workload[x] is not null but current request is of i915 self.
    So instead we check ctx flag CONTEXT_FORCE_SINGLE_SUBMISSION. Only gvt
    request set this flag and always set.
    
    v2: Reverse the order of multi-condition 'if' statement.
    
    Fixes: ab9da6279 ("drm/i915: make context status notifier head be per engine")
    Signed-off-by: default avatarChangbin Du <changbin.du@intel.com>
    Reviewed-by: default avatarYulei Zhang <yulei.zhang@intel.com>
    Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
    bc2d4b62
scheduler.c 16.9 KB