• M
    drm/i915/bdw: Two-stage execlist submit process · acdd884a
    Michel Thierry 提交于
    Context switch (and execlist submission) should happen only when
    other contexts are not active, otherwise pre-emption occurs.
    
    To assure this, we place context switch requests in a queue and those
    request are later consumed when the right context switch interrupt is
    received (still TODO).
    
    v2: Use a spinlock, do not remove the requests on unqueue (wait for
    context switch completion).
    Signed-off-by: NThomas Daniel <thomas.daniel@intel.com>
    
    v3: Several rebases and code changes. Use unique ID.
    
    v4:
    - Move the queue/lock init to the late ring initialization.
    - Damien's kmalloc review comments: check return, use sizeof(*req),
    do not cast.
    
    v5:
    - Do not reuse drm_i915_gem_request. Instead, create our own.
    - New namespace.
    
    Signed-off-by: Michel Thierry <michel.thierry@intel.com> (v1)
    Signed-off-by: Oscar Mateo <oscar.mateo@intel.com> (v2-v5)
    Reviewed-by: NDamien Lespiau <damien.lespiau@intel.com>
    [davnet: Checkpatch + wash-up s/BUG_ON/WARN_ON/.]
    Signed-off-by: NDaniel Vetter <daniel.vetter@ffwll.ch>
    acdd884a
intel_lrc.c 36.4 KB