[igt-dev] [PATCH i-g-t] PSR: Bump wait for active timeout to 2.5s

Maarten Lankhorst maarten.lankhorst at linux.intel.com
Wed Dec 12 14:37:59 UTC 2018


Op 11-12-2018 om 22:27 schreef Dhinakaran Pandiyan:
> On Tue, 2018-12-11 at 17:16 +0100, Maarten Lankhorst wrote:
>> Typically PSR enables in around 136 ms, but when enabling 2
>> screens, 500 ms is not enough on icelake sometimes, so bump
>> it a bit higher.
>>
>> On kms_frontbuffer_tracking:
>> Starting subtest: psr-2p-scndscrn-shrfb-plflip-blt
>> psr_active(debugfs_fd, true) took 136ms
>> psr_active(debugfs_fd, true) took 136ms
>> psr_active(debugfs_fd, true) took 350ms
>> psr_active(debugfs_fd, true) took 136ms
>> psr_active(debugfs_fd, true) took 1598ms
> We have to find out why it took that long, ~96 frames exceeds the idle
> frame limit we set in the driver. I'm concerned we might be covering up
> a bug by increasing the limit so high.

After some debugging, it seems retiring the gem workqueue causes the delay..

[   90.244237] Activating PSR from 2
[   90.244378] WARNING: CPU: 3 PID: 181 at drivers/gpu/drm/i915/intel_psr.c:1143 intel_psr_flush+0xe3/0x100 [i915]
...
[   90.244672] Call Trace:
[   90.244776]  intel_frontbuffer_flush+0x6a/0x80 [i915]
[   90.244893]  i915_request_retire+0x189/0x930 [i915]
[   90.245019]  i915_retire_requests+0xa5/0x130 [i915]
[   90.245134]  i915_gem_retire_work_handler+0x59/0x70 [i915]
[   90.245152]  process_one_work+0x262/0x630
[   90.245181]  worker_thread+0x37/0x380
[   90.245199]  ? process_one_work+0x630/0x630
[   90.245209]  kthread+0x119/0x130
[   90.245220]  ? kthread_park+0x80/0x80
[   90.245238]  ret_from_fork+0x3a/0x50
[   90.245278] irq event stamp: 30662
[   90.245290] hardirqs last  enabled at (30661): [<ffffffff810fb0a9>] console_unlock+0x3f9/0x5f0
[   90.245300] hardirqs last disabled at (30662): [<ffffffff810019b0>] trace_hardirqs_off_thunk+0x1a/0x1c
[   90.245310] softirqs last  enabled at (30644): [<ffffffff81c0033a>] __do_softirq+0x33a/0x4b9
[   90.245322] softirqs last disabled at (30631): [<ffffffff8108e6a9>] irq_exit+0xa9/0xc0
..
[   90.246941] [drm:intel_psr_work [i915]] Activating PSR1
[   90.335272] [drm:intel_psr_irq_handler [i915]] [transcoder EDP] PSR entry attempt in 2 vblanks

Which seems to come from i915_gem_unpark() ?

~Maarten



More information about the igt-dev mailing list