Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) config DRM_I915_FENCE_TIMEOUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) 	int "Timeout for unsignaled foreign fences (ms, jiffy granularity)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) 	default 10000 # milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) 	  When listening to a foreign fence, we install a supplementary timer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) 	  to ensure that we are always signaled and our userspace is able to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 	  make forward progress. This value specifies the timeout used for an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) 	  unsignaled foreign fence.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) 	  May be 0 to disable the timeout, and rely on the foreign fence being
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) 	  eventually signaled.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) config DRM_I915_USERFAULT_AUTOSUSPEND
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) 	int "Runtime autosuspend delay for userspace GGTT mmaps (ms)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) 	default 250 # milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) 	  On runtime suspend, as we suspend the device, we have to revoke
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) 	  userspace GGTT mmaps and force userspace to take a pagefault on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) 	  their next access. The revocation and subsequent recreation of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) 	  the GGTT mmap can be very slow and so we impose a small hysteris
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 	  that complements the runtime-pm autosuspend and provides a lower
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) 	  floor on the autosuspend delay.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) 	  May be 0 to disable the extra delay and solely use the device level
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 	  runtime pm autosuspend delay tunable.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) config DRM_I915_HEARTBEAT_INTERVAL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) 	int "Interval between heartbeat pulses (ms)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) 	default 2500 # milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) 	  The driver sends a periodic heartbeat down all active engines to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 	  check the health of the GPU and undertake regular house-keeping of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) 	  internal driver state.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) 	  This is adjustable via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) 	  /sys/class/drm/card?/engine/*/heartbeat_interval_ms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) 	  May be 0 to disable heartbeats and therefore disable automatic GPU
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	  hang detection.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) config DRM_I915_PREEMPT_TIMEOUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) 	int "Preempt timeout (ms, jiffy granularity)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 	default 640 # milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	  How long to wait (in milliseconds) for a preemption event to occur
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	  when submitting a new context via execlists. If the current context
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	  does not hit an arbitration point and yield to HW before the timer
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) 	  expires, the HW will be reset to allow the more important context
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 	  to execute.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	  This is adjustable via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	  /sys/class/drm/card?/engine/*/preempt_timeout_ms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	  May be 0 to disable the timeout.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	  The compiled in default may get overridden at driver probe time on
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	  certain platforms and certain engines which will be reflected in the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) 	  sysfs control.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) config DRM_I915_MAX_REQUEST_BUSYWAIT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	int "Busywait for request completion limit (ns)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	default 8000 # nanoseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	  Before sleeping waiting for a request (GPU operation) to complete,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	  we may spend some time polling for its completion. As the IRQ may
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	  take a non-negligible time to setup, we do a short spin first to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	  check if the request will complete in the time it would have taken
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	  us to enable the interrupt.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	  This is adjustable via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	  /sys/class/drm/card?/engine/*/max_busywait_duration_ns
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	  May be 0 to disable the initial spin. In practice, we estimate
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) 	  the cost of enabling the interrupt (if currently disabled) to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 	  a few microseconds.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) config DRM_I915_STOP_TIMEOUT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	int "How long to wait for an engine to quiesce gracefully before reset (ms)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	default 100 # milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	  By stopping submission and sleeping for a short time before resetting
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	  the GPU, we allow the innocent contexts also on the system to quiesce.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	  It is then less likely for a hanging context to cause collateral
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) 	  damage as the system is reset in order to recover. The corollary is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 	  that the reset itself may take longer and so be more disruptive to
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) 	  interactive or low latency workloads.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	  This is adjustable via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	  /sys/class/drm/card?/engine/*/stop_timeout_ms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) config DRM_I915_TIMESLICE_DURATION
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	int "Scheduling quantum for userspace batches (ms, jiffy granularity)"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	default 1 # milliseconds
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	help
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	  When two user batches of equal priority are executing, we will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	  alternate execution of each batch to ensure forward progress of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	  all users. This is necessary in some cases where there may be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	  an implicit dependency between those batches that requires
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	  concurrent execution in order for them to proceed, e.g. they
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	  interact with each other via userspace semaphores. Each context
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	  is scheduled for execution for the timeslice duration, before
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	  switching to the next context.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 	  This is adjustable via
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) 	  /sys/class/drm/card?/engine/*/timeslice_duration_ms
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	  May be 0 to disable timeslicing.