• Tejas Upadhyay's avatar
    drm/xe: Add min/max cap for engine scheduler properties · d2776564
    Tejas Upadhyay authored
    Add sysfs entries for the min, max, and defaults for each of
    engine scheduler controls for every hardware engine class.
    
    Non-elevated user IOCTLs to set these controls must be within
    the min-max ranges of the sysfs entries, elevated user can set
    these controls to any value. However, introduced compile time
    CONFIG min-max values which restricts elevated user to be in
    compile time min-max range if at all sysfs min/max are violated.
    
    Sysfs entries examples are,
    DUT# cat /sys/class/drm/cardX/device/tileN/gtN/engines/ccs/.defaults/
    job_timeout_max         job_timeout_ms          preempt_timeout_min     timeslice_duration_max  timeslice_duration_us
    job_timeout_min         preempt_timeout_max     preempt_timeout_us      timeslice_duration_min
    
    DUT# cat /sys/class/drm/card1/device/tileN/gtN/engines/ccs/
    .defaults/              job_timeout_min         preempt_timeout_max     preempt_timeout_us      timeslice_duration_min
    job_timeout_max         job_timeout_ms          preempt_timeout_min     timeslice_duration_max  timeslice_duration_us
    
    V12:
       - Rebase
    V11:
       - Make engine_get_prop_minmax and enforce_sched_limit static - Matt
       - use enum in place of string in engine_get_prop_minmax - Matt
       - no need to use enforce_sched_limit or no need to filter min/max
         per user type in sysfs - Matt
    V10:
       - Add kernel doc for non-static func
       - Make helper to get min/max for range validation - Matt
       - Filter min/max per user type
    V9 :
       - Rebase to use s/xe_engine/xe_hw_engine/ - Matt
    V8 :
       - fix enforce_sched_limit and avoid code duplication - Niranjana
       - Make sure min < max - Niranjana
    V7 :
       - Rebase to replace hw engine with eclass interface
       - return EINVAL in place of EPERM
       - Use some APIs to avoid code duplication
    V6 :
       - Rebase changes to reflect per engine class props interface - MattB
       - Use #if ENABLED - MattB
       - Remove MAX_SCHED_TIMEOUT check as range validation is enough
    V5 :
       - Rebase to resolve conflicts - CI
    V4 :
       - Rebase
       - Update commit to reflect tile addition
       - Use XE_HW macro directly as they are already filtered
         for CONFIG checks - Niranjana
       - Add CONFIG for enable/disable min/max limitation
         on elevated user. Default is enable - Matt/Joonas
    V3 :
       - Resolve CI hooks warning for kernel-doc
    V2 :
       - Restric min/max setting to #define default min/max for
         elevated user - Himal
       - Remove unrelated changes from patch - Niranjana
    Reviewed-by: default avatarNiranjana Vishwanathapura <niranjana.vishwanathapura@intel.com>
    Reviewed-by: default avatarMatthew Brost <matthew.brost@intel.com>
    Signed-off-by: default avatarTejas Upadhyay <tejas.upadhyay@intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    d2776564
Kconfig.profile 1.65 KB