Re: [Intel-gfx] WQ_UNBOUND warning since recent workqueue refactoring
From: Imre Deak
Date: Wed Aug 30 2023 - 15:51:46 EST
On Wed, Aug 30, 2023 at 07:51:13AM -1000, Tejun Heo wrote:
Hi,
> Hello,
>
> (cc'ing i915 folks)
>
> On Wed, Aug 30, 2023 at 04:57:42PM +0200, Heiner Kallweit wrote:
> > Recently I started to see the following warning on linux-next and presumably
> > this may be related to the refactoring of the workqueue core code.
> >
> > [ 56.900223] workqueue: output_poll_execute [drm_kms_helper] hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
> > [ 56.923226] workqueue: i915_hpd_poll_init_work [i915] hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
> > [ 97.860430] workqueue: output_poll_execute [drm_kms_helper] hogged CPU for >10000us 8 times, consider switching to WQ_UNBOUND
> > [ 97.884453] workqueue: i915_hpd_poll_init_work [i915] hogged CPU for >10000us 8 times, consider switching to WQ_UNBOUND
> >
> > Adding WQ_UNBOUND to these queues didn't change the behavior.
>
> That should have made them go away as the code path isn't active at all for
> WQ_UNBOUND workqueues. Can you please double check?
>
> > Maybe relevant: I run the affected system headless.
>
> i915 folks, workqueue recently added debug warnings which trigger when a
> per-cpu work item hogs the CPU for too long - 10ms in this case. This is
> problematic because such work item can stall other per-cpu work items.
>
> * Is it expected for the above two work functions to occupy the CPU for over
> 10ms repeatedly?
No, this shouldn't happen.
I assume it happens in
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
after cfd48ad8c4a9 ("drm/i915: Fix HPD polling, reenabling the output poll work as needed")
which could result in the above problem.
Could you give a try to
https://lore.kernel.org/all/20230809104307.1218058-1-imre.deak@xxxxxxxxx/
and if that doesn't help provide more information/logs, by opening a
ticket at:
https://gitlab.freedesktop.org/drm/intel/-/issues/new
Thanks,
Imre
> * If so, can we make them use an unbound workqueue instead?
>
> Thanks.
>
> --
> tejun