[PATCH] drm/i915: Fix i915_gem_wait_for_idle oops due to active_requests check

Yang, Bin bin.yang at intel.com
Thu Dec 20 08:50:34 UTC 2018


On Thu, 2018-12-20 at 08:35 +0000, Chris Wilson wrote:
> Quoting Bin Yang (2018-12-20 08:01:35)
> > Normally, i915_request_alloc() and i915_request_add() will be called
> > in sequence with drm.struct_mutex locked. But in
> > intel_vgpu_create_workload(), it will pre-allocate the request and
> > call i915_request_add() in the workload thread for performance
> > optimization. The above issue will be triggered.
> 
> That's your bug. It's not normally, it's a strict requirement that the
> struct_mutex (request generation mutex) be held over the course of
> generating the request.
> -Chris

This code is introduced by below patch. Add original patch owners to
discuss this issue.

commit d0302e74003bf1f0fc41c06948b745204c4704ea
Author: Ping Gao <ping.a.gao at intel.com>
Date:   Thu Jun 29 12:22:43 2017 +0800

    drm/i915/gvt: Audit and shadow workload during ELSP writing
    
    Let the workload audit and shadow ahead of vGPU scheduling, that
    will eliminate GPU idle time and improve performance for multi-VM.
    
    The performance of Heaven running simultaneously in 3VMs has
    improved 20% after this patch.
    
    v2:Remove condition current->vgpu==vgpu when shadow during ELSP
    writing.
    
    Signed-off-by: Ping Gao <ping.a.gao at intel.com>
    Reviewed-by: Zhi Wang <zhi.a.wang at intel.com>
    Signed-off-by: Zhenyu Wang <zhenyuw at linux.intel.com>





More information about the dri-devel mailing list