Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Disable Intel GPU power management in low-latency/realtime modes #719

Open
rtzoeller opened this issue Dec 18, 2024 · 0 comments
Open

Disable Intel GPU power management in low-latency/realtime modes #719

rtzoeller opened this issue Dec 18, 2024 · 0 comments

Comments

@rtzoeller
Copy link

rtzoeller commented Dec 18, 2024

The Intel i915 driver can contribute considerable latency when doing power management, which is visible with rtla timerlat top.

We've observed this issue on various Tiger Lake systems which are running headlessly, specifically with Xeon W-11865MLE and i5-11500HE CPUs.

Disabling power management, e.g. via echo on > /sys/bus/pci/devices/0000\:00\:02.0/power/control or using powertop, removes the latency spikes. While we can work around the issue, it'd be nice if tuned handled this automatically, especially given the magnitude of the spikes.

`rtla timerlat` output with stack trace
                                     Timer Latency
  0 00:00:06   |          IRQ Timer Latency (us)        |         Thread Timer Latency (us)
CPU COUNT      |      cur       min       avg       max |      cur       min       avg       max
  0 #5823      |       24         0         1        24 |     1035         3         7      1035
  1 #5824      |        1         0         1         4 |        6         2         6        11
  2 #5824      |        1         0         1         5 |        6         2         6        10
  3 #5824      |        1         0         1         5 |        6         2         6        13
  4 #5823      |        1         0         1         5 |        6         2         6        10
  5 #5823      |        1         0         1         5 |        7         2         6        13
  6 #5823      |        1         0         1         5 |        6         2         6        15
  7 #5823      |        1         0         1         5 |        7         2         6        13
  8 #5823      |       37         0         1        37 |       55         3         7        55
  9 #5823      |        1         0         1         5 |        6         2         6        13
 10 #5823      |        1         0         1         4 |        6         2         6        13
 11 #5823      |        1         0         1         5 |        7         2         6        13
 12 #5824      |        1         0         1         5 |        6         2         6        13
 13 #5824      |        1         0         1         5 |        6         2         6        14
 14 #5824      |        1         0         1         5 |        6         2         6        13
 15 #5824      |        1         0         1         5 |        6         2         6        15
---------------|----------------------------------------|---------------------------------------
ALL #93175  e0 |                  0         1        37 |                  2         6      1035
rtla timerlat hit stop tracing
## CPU 0 hit stop tracing, analyzing it ##
  IRQ handler delay:                                        23.99 us (2.32 %)
  IRQ latency:                                              24.71 us
  Timerlat IRQ duration:                                    10.37 us (1.00 %)
  Blocking thread:                                         997.61 us (96.30 %)
                     kworker/0:2:9651                      997.61 us
    Blocking thread stack trace
                -> timerlat_irq
                -> __hrtimer_run_queues
                -> hrtimer_interrupt
                -> __sysvec_apic_timer_interrupt
                -> sysvec_apic_timer_interrupt
                -> asm_sysvec_apic_timer_interrupt
                -> intel_dmc_load_program
                -> icl_display_core_init
                -> intel_display_power_resume
                -> intel_runtime_resume
                -> __rpm_callback
                -> rpm_callback
                -> rpm_resume
                -> __pm_runtime_resume
                -> intel_runtime_pm_get
                -> intel_display_power_get
                -> icl_tc_phy_hpd_live_status
                -> tc_phy_hpd_live_status
                -> tc_phy_get_target_mode
                -> __intel_tc_port_lock
                -> intel_digital_port_connected
                -> intel_dp_detect
                -> drm_helper_probe_detect_ctx
                -> output_poll_execute
                -> process_one_work
                -> worker_thread
                -> kthread
                -> ret_from_fork
  IRQ interference                                           2.44 us (0.24 %)
               local_timer:236                               2.44 us
------------------------------------------------------------------------
  Thread latency:                                         1035.95 us (100%)

Max timerlat IRQ latency from idle: 37.31 us in cpu 8
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant