• Matthew Brost's avatar
    drm/xe: Long running job update · 8ae8a2e8
    Matthew Brost authored
    For long running (LR) jobs with the DRM scheduler we must return NULL in
    run_job which results in signaling the job's finished fence immediately.
    This prevents LR jobs from creating infinite dma-fences.
    
    Signaling job's finished fence immediately breaks flow controlling ring
    with the DRM scheduler. To work around this, the ring is flow controlled
    and written in the exec IOCTL. Signaling job's finished fence
    immediately also breaks the TDR which is used in reset / cleanup entity
    paths so write a new path for LR entities.
    
    v2: Better commit, white space, remove rmb(), better comment next to
    emit_job()
    v3 (Thomas): Change LR reference counting, fix working in commit
    Reviewed-by: default avatarThomas Hellström <thomas.hellstrom@linux.intel.com>
    Signed-off-by: default avatarMatthew Brost <matthew.brost@intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    8ae8a2e8
xe_engine.c 19.3 KB