122 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
config DRM_I915_REQUEST_TIMEOUT
 | 
						|
	int "Default timeout for requests (ms)"
 | 
						|
	default 20000 # milliseconds
 | 
						|
	help
 | 
						|
	  Configures the default timeout after which any user submissions will
 | 
						|
	  be forcefully terminated.
 | 
						|
 | 
						|
	  Beware setting this value lower, or close to heartbeat interval
 | 
						|
	  rounded to whole seconds times three, in order to avoid allowing
 | 
						|
	  misbehaving applications causing total rendering failure in unrelated
 | 
						|
	  clients.
 | 
						|
 | 
						|
	  May be 0 to disable the timeout.
 | 
						|
 | 
						|
config DRM_I915_FENCE_TIMEOUT
 | 
						|
	int "Timeout for unsignaled foreign fences (ms, jiffy granularity)"
 | 
						|
	default 10000 # milliseconds
 | 
						|
	help
 | 
						|
	  When listening to a foreign fence, we install a supplementary timer
 | 
						|
	  to ensure that we are always signaled and our userspace is able to
 | 
						|
	  make forward progress. This value specifies the timeout used for an
 | 
						|
	  unsignaled foreign fence.
 | 
						|
 | 
						|
	  May be 0 to disable the timeout, and rely on the foreign fence being
 | 
						|
	  eventually signaled.
 | 
						|
 | 
						|
config DRM_I915_USERFAULT_AUTOSUSPEND
 | 
						|
	int "Runtime autosuspend delay for userspace GGTT mmaps (ms)"
 | 
						|
	default 250 # milliseconds
 | 
						|
	help
 | 
						|
	  On runtime suspend, as we suspend the device, we have to revoke
 | 
						|
	  userspace GGTT mmaps and force userspace to take a pagefault on
 | 
						|
	  their next access. The revocation and subsequent recreation of
 | 
						|
	  the GGTT mmap can be very slow and so we impose a small hysteris
 | 
						|
	  that complements the runtime-pm autosuspend and provides a lower
 | 
						|
	  floor on the autosuspend delay.
 | 
						|
 | 
						|
	  May be 0 to disable the extra delay and solely use the device level
 | 
						|
	  runtime pm autosuspend delay tunable.
 | 
						|
 | 
						|
config DRM_I915_HEARTBEAT_INTERVAL
 | 
						|
	int "Interval between heartbeat pulses (ms)"
 | 
						|
	default 2500 # milliseconds
 | 
						|
	help
 | 
						|
	  The driver sends a periodic heartbeat down all active engines to
 | 
						|
	  check the health of the GPU and undertake regular house-keeping of
 | 
						|
	  internal driver state.
 | 
						|
 | 
						|
	  This is adjustable via
 | 
						|
	  /sys/class/drm/card?/engine/*/heartbeat_interval_ms
 | 
						|
 | 
						|
	  May be 0 to disable heartbeats and therefore disable automatic GPU
 | 
						|
	  hang detection.
 | 
						|
 | 
						|
config DRM_I915_PREEMPT_TIMEOUT
 | 
						|
	int "Preempt timeout (ms, jiffy granularity)"
 | 
						|
	default 640 # milliseconds
 | 
						|
	help
 | 
						|
	  How long to wait (in milliseconds) for a preemption event to occur
 | 
						|
	  when submitting a new context via execlists. If the current context
 | 
						|
	  does not hit an arbitration point and yield to HW before the timer
 | 
						|
	  expires, the HW will be reset to allow the more important context
 | 
						|
	  to execute.
 | 
						|
 | 
						|
	  This is adjustable via
 | 
						|
	  /sys/class/drm/card?/engine/*/preempt_timeout_ms
 | 
						|
 | 
						|
	  May be 0 to disable the timeout.
 | 
						|
 | 
						|
	  The compiled in default may get overridden at driver probe time on
 | 
						|
	  certain platforms and certain engines which will be reflected in the
 | 
						|
	  sysfs control.
 | 
						|
 | 
						|
config DRM_I915_MAX_REQUEST_BUSYWAIT
 | 
						|
	int "Busywait for request completion limit (ns)"
 | 
						|
	default 8000 # nanoseconds
 | 
						|
	help
 | 
						|
	  Before sleeping waiting for a request (GPU operation) to complete,
 | 
						|
	  we may spend some time polling for its completion. As the IRQ may
 | 
						|
	  take a non-negligible time to setup, we do a short spin first to
 | 
						|
	  check if the request will complete in the time it would have taken
 | 
						|
	  us to enable the interrupt.
 | 
						|
 | 
						|
	  This is adjustable via
 | 
						|
	  /sys/class/drm/card?/engine/*/max_busywait_duration_ns
 | 
						|
 | 
						|
	  May be 0 to disable the initial spin. In practice, we estimate
 | 
						|
	  the cost of enabling the interrupt (if currently disabled) to be
 | 
						|
	  a few microseconds.
 | 
						|
 | 
						|
config DRM_I915_STOP_TIMEOUT
 | 
						|
	int "How long to wait for an engine to quiesce gracefully before reset (ms)"
 | 
						|
	default 100 # milliseconds
 | 
						|
	help
 | 
						|
	  By stopping submission and sleeping for a short time before resetting
 | 
						|
	  the GPU, we allow the innocent contexts also on the system to quiesce.
 | 
						|
	  It is then less likely for a hanging context to cause collateral
 | 
						|
	  damage as the system is reset in order to recover. The corollary is
 | 
						|
	  that the reset itself may take longer and so be more disruptive to
 | 
						|
	  interactive or low latency workloads.
 | 
						|
 | 
						|
	  This is adjustable via
 | 
						|
	  /sys/class/drm/card?/engine/*/stop_timeout_ms
 | 
						|
 | 
						|
config DRM_I915_TIMESLICE_DURATION
 | 
						|
	int "Scheduling quantum for userspace batches (ms, jiffy granularity)"
 | 
						|
	default 1 # milliseconds
 | 
						|
	help
 | 
						|
	  When two user batches of equal priority are executing, we will
 | 
						|
	  alternate execution of each batch to ensure forward progress of
 | 
						|
	  all users. This is necessary in some cases where there may be
 | 
						|
	  an implicit dependency between those batches that requires
 | 
						|
	  concurrent execution in order for them to proceed, e.g. they
 | 
						|
	  interact with each other via userspace semaphores. Each context
 | 
						|
	  is scheduled for execution for the timeslice duration, before
 | 
						|
	  switching to the next context.
 | 
						|
 | 
						|
	  This is adjustable via
 | 
						|
	  /sys/class/drm/card?/engine/*/timeslice_duration_ms
 | 
						|
 | 
						|
	  May be 0 to disable timeslicing.
 |