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