[Intel-gfx] [2.6.39-rc7] i915: kworker busily spinning...

Daniel J Blueman daniel.blueman at gmail.com
Tue May 24 12:52:22 CEST 2011


On 17 May 2011 12:27, Daniel J Blueman <daniel.blueman at gmail.com> wrote:
> With 2.6.39-rc7 on my Sandy Bridge laptop GPU (8086:0126 rev 9),
> sometimes I find one of the kworker threads busily running with 15-20%
> system time for some minutes, causing terrible interactivity latency.
> I've seen it occur when plugging eg a HDMI display, and also when no
> display has been plugged (ie only the internal LVDS connection is
> active).
>
> Across multiple kernel task captures, I see the kernel thread
> consistently reading one of the connector's EDID data [1]; I guess
> either it's having a hard time reading from a disconnected connector
> and retrying, or is incorrectly detecting a change when there is none.
>
> I'll enable DRM debugging to see what connectors it believes it needs
> to read from. Anything else that would be handy to capture, or any
> thoughts?
>
> Also, the 100ms connector change polling seems overkill, particularly
> when power consumption is important; 1000-2000ms would be sufficient,
> do you think?
>
> Thanks,
>  Daniel
>
> --- [1]
>
> kworker/2:2     R  running task     5048    86      2 0x00000000
>  0000000000000002 ffff88021e804040 ffff88021e85f9b0 ffff88021e804040
>  ffff88021e85e000 0000000000004000 ffff8802210a4040 ffff88021e804040
>  0000000000000046 ffffffff81c18b20 ffff88022106c000 ffffffff8270b740
> Call Trace:
>  [<ffffffff8109a460>] ? mark_held_locks+0x70/0xa0
>  [<ffffffff81059261>] ? get_parent_ip+0x11/0x50
>  [<ffffffff8105933d>] ? sub_preempt_count+0x9d/0xd0
>  [<ffffffff81705a35>] schedule_timeout+0x175/0x250
>  [<ffffffff8106ec10>] ? run_timer_softirq+0x2a0/0x2a0
>  [<ffffffff81705b29>] schedule_timeout_uninterruptible+0x19/0x20
>  [<ffffffff8106f878>] msleep+0x18/0x20
>  [<ffffffffa017c620>] gmbus_xfer+0x400/0x620 [i915]
>  [<ffffffff8150c892>] i2c_transfer+0xa2/0xf0
>  [<ffffffffa002bc96>] drm_do_probe_ddc_edid+0x66/0xa0 [drm]
>  [<ffffffffa002c0f9>] drm_get_edid+0x29/0x60 [drm]
>  [<ffffffffa0176f86>] intel_hdmi_detect+0x56/0xe0 [i915]
>  [<ffffffffa00d1177>] output_poll_execute+0xd7/0x1a0 [drm_kms_helper]
>  [<ffffffff81078e14>] process_one_work+0x1a4/0x450
>  [<ffffffff81078db6>] ? process_one_work+0x146/0x450
>  [<ffffffffa00d10a0>] ?
> drm_helper_disable_unused_functions+0x150/0x150 [drm_kms_helper]
>  [<ffffffff810790ec>] process_scheduled_works+0x2c/0x40
>  [<ffffffff8107c384>] worker_thread+0x284/0x350
>  [<ffffffff8107c100>] ? manage_workers.clone.23+0x120/0x120
>  [<ffffffff81080ea6>] kthread+0xb6/0xc0
>  [<ffffffff8109a5cd>] ? trace_hardirqs_on_caller+0x13d/0x180
>  [<ffffffff8170a494>] kernel_thread_helper+0x4/0x10
>  [<ffffffff8104c64f>] ? finish_task_switch+0x6f/0x100
>  [<ffffffff81708bc4>] ? retint_restore_args+0xe/0xe
>  [<ffffffff81080df0>] ? __init_kthread_worker+0x70/0x70
>  [<ffffffff8170a490>] ? gs_change+0xb/0xb

Interestingly, I appear to observe this behaviour when the laptop
battery is charging. Anyway, we see continual connector update events
[1], booted drm.debug=0x4. This reproduces with 2.6.39.

Any thoughts?

Daniel

--- [1]

[   67.035097] [drm:output_poll_execute], [CONNECTOR:22:HDMI-A-2]
status updated from 2 to 2
[   67.046549] [drm:output_poll_execute], [CONNECTOR:25:HDMI-A-3]
status updated from 2 to 2
[   67.047063] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.047065] [drm:ironlake_dp_detect], DPCD: 0000
[   67.047066] [drm:output_poll_execute], [CONNECTOR:27:DP-2] status
updated from 2 to 2
[   67.047578] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.047579] [drm:ironlake_dp_detect], DPCD: 0000
[   67.047581] [drm:output_poll_execute], [CONNECTOR:30:DP-3] status
updated from 2 to 2
[   67.047588] [drm:intel_ironlake_crt_detect_hotplug], ironlake
hotplug adpa=0xf40000, result 0
[   67.047591] [drm:intel_crt_detect], CRT not detected via hotplug
[   67.047593] [drm:output_poll_execute], [CONNECTOR:12:VGA-1] status
updated from 2 to 2
[   67.059062] [drm:output_poll_execute], [CONNECTOR:15:HDMI-A-1]
status updated from 2 to 2
[   67.059573] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.059575] [drm:ironlake_dp_detect], DPCD: 0000
[   67.059576] [drm:output_poll_execute], [CONNECTOR:18:DP-1] status
updated from 2 to 2
[   67.059886] [drm:i915_hotplug_work_func], running encoder hotplug functions
<85 lines the same>
[   67.153172] [drm:i915_hotplug_work_func], running encoder hotplug functions
[   67.155109] [drm:output_poll_execute], [CONNECTOR:22:HDMI-A-2]
status updated from 2 to 2
[   67.166569] [drm:output_poll_execute], [CONNECTOR:25:HDMI-A-3]
status updated from 2 to 2
[   67.167082] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.167084] [drm:ironlake_dp_detect], DPCD: 0000
[   67.167086] [drm:output_poll_execute], [CONNECTOR:27:DP-2] status
updated from 2 to 2
[   67.167598] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.167600] [drm:ironlake_dp_detect], DPCD: 0000
[   67.167601] [drm:output_poll_execute], [CONNECTOR:30:DP-3] status
updated from 2 to 2
[   67.167608] [drm:intel_ironlake_crt_detect_hotplug], ironlake
hotplug adpa=0xf40000, result 0
[   67.167610] [drm:intel_crt_detect], CRT not detected via hotplug
[   67.167612] [drm:output_poll_execute], [CONNECTOR:12:VGA-1] status
updated from 2 to 2
[   67.179051] [drm:output_poll_execute], [CONNECTOR:15:HDMI-A-1]
status updated from 2 to 2
[   67.179563] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.179564] [drm:ironlake_dp_detect], DPCD: 0000
[   67.179566] [drm:output_poll_execute], [CONNECTOR:18:DP-1] status
updated from 2 to 2
[   67.179976] [drm:i915_hotplug_work_func], running encoder hotplug functions
<73 lines the same>
[   67.275136] [drm:i915_hotplug_work_func], running encoder hotplug functions
[   67.275145] [drm:output_poll_execute], [CONNECTOR:22:HDMI-A-2]
status updated from 2 to 2
[   67.286602] [drm:output_poll_execute], [CONNECTOR:25:HDMI-A-3]
status updated from 2 to 2
[   67.287113] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.287115] [drm:ironlake_dp_detect], DPCD: 0000
[   67.287117] [drm:output_poll_execute], [CONNECTOR:27:DP-2] status
updated from 2 to 2
[   67.287629] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.287631] [drm:ironlake_dp_detect], DPCD: 0000
[   67.287633] [drm:output_poll_execute], [CONNECTOR:30:DP-3] status
updated from 2 to 2
[   67.287640] [drm:intel_ironlake_crt_detect_hotplug], ironlake
hotplug adpa=0xf40000, result 0
[   67.287643] [drm:intel_crt_detect], CRT not detected via hotplug
[   67.287645] [drm:output_poll_execute], [CONNECTOR:12:VGA-1] status
updated from 2 to 2
[   67.299144] [drm:output_poll_execute], [CONNECTOR:15:HDMI-A-1]
status updated from 2 to 2
[   67.299657] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.299659] [drm:ironlake_dp_detect], DPCD: 0000
[   67.299660] [drm:output_poll_execute], [CONNECTOR:18:DP-1] status
updated from 2 to 2
[   67.300809] [drm:i915_hotplug_work_func], running encoder hotplug functions
<78 lines the same>
[   67.395164] [drm:i915_hotplug_work_func], running encoder hotplug functions
[   67.395173] [drm:output_poll_execute], [CONNECTOR:22:HDMI-A-2]
status updated from 2 to 2
[   67.406644] [drm:output_poll_execute], [CONNECTOR:25:HDMI-A-3]
status updated from 2 to 2
[   67.407158] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.407160] [drm:ironlake_dp_detect], DPCD: 0000
[   67.407162] [drm:output_poll_execute], [CONNECTOR:27:DP-2] status
updated from 2 to 2
[   67.407673] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.407675] [drm:ironlake_dp_detect], DPCD: 0000
[   67.407676] [drm:output_poll_execute], [CONNECTOR:30:DP-3] status
updated from 2 to 2
[   67.407683] [drm:intel_ironlake_crt_detect_hotplug], ironlake
hotplug adpa=0xf40000, result 0
[   67.407686] [drm:intel_crt_detect], CRT not detected via hotplug
[   67.407688] [drm:output_poll_execute], [CONNECTOR:12:VGA-1] status
updated from 2 to 2
[   67.419136] [drm:output_poll_execute], [CONNECTOR:15:HDMI-A-1]
status updated from 2 to 2
[   67.419648] [drm:intel_dp_aux_ch], dp_aux_ch timeout status 0x5143003e
[   67.419650] [drm:ironlake_dp_detect], DPCD: 0000
[   67.419651] [drm:output_poll_execute], [CONNECTOR:18:DP-1] status
updated from 2 to 2
[   67.420569] [drm:i915_hotplug_work_func], running encoder hotplug functions
-- 
Daniel J Blueman



More information about the Intel-gfx mailing list