• Rodrigo Vivi's avatar
    drm/xe: Suppress missing outer rpm protection warning · ad92f523
    Rodrigo Vivi authored
    Do not raise a WARN if we are likely within suspending or resuming
    path. This is likely this false positive:
    
    rpm_status:           0000:03:00.0 status=RPM_SUSPENDING
    console:              xe_bo_evict_all (called from suspend)
    xe_sched_job_create:  dev=0000:03:00.0, ...
    xe_sched_job_exec:    dev=0000:03:00.0, ...
    xe_pm_runtime_put:    dev=0000:03:00.0, ...
    xe_sched_job_run:     dev=0000:03:00.0, ...
    rpm_usage:            0000:03:00.0 flags-0 cnt-2  ...
    rpm_usage:            0000:03:00.0 flags-0 cnt-2  ...
    rpm_usage:            0000:03:00.0 flags-0 cnt-2  ...
    console:              xe 0000:03:00.0: [drm] Missing outer runtime
                                                         PM protection
    console:               xe_guc_ct_send+0x15/0x50 [xe]
    console:               guc_exec_queue_run_job+0x1509/0x3950 [xe]
    [snip]
    console:               drm_sched_run_job_work+0x649/0xc20
    
    At this point, BOs are getting evicted from VRAM with rpm
    usage-counter = 2, but rpm status = SUSPENDING.
    
    The xe->pm_callback_task won't be equal 'current' because this call is
    coming from a work queue.
    
    So, pm_runtime_get_if_active() will be called and return 0 because rpm
    status != ACTIVE (but equal SUSPENDING or RESUMING).
    
    v2: Still get the reference even on non suspending/resuming
        path (Jonathan, Brost).
    
    Cc: Matthew Brost <matthew.brost@intel.com>
    Cc: Matthew Auld <matthew.auld@intel.com>
    Reviewed-by: default avatarJonathan Cavitt <jonathan.cavitt@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240905140215.56404-1-rodrigo.vivi@intel.comSigned-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    (cherry picked from commit cb85e39dc5d1717fab82810984cce0e54712a3c2)
    Signed-off-by: default avatarLucas De Marchi <lucas.demarchi@intel.com>
    ad92f523
xe_pm.c 19.8 KB