Re: [Intel-gfx] How is the progress for removing flush_scheduled_work() callers?

From: Tetsuo Handa
Date: Wed Feb 22 2023 - 20:51:30 EST


On 2022/11/16 22:06, Ville Syrjälä wrote:
> On Wed, Nov 16, 2022 at 12:08:27PM +0200, Jani Nikula wrote:
>> On Sun, 06 Nov 2022, Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx> wrote:
>>> Like commit c4f135d643823a86 ("workqueue: Wrap flush_workqueue() using a
>>> macro") says, flush_scheduled_work() is dangerous and will be forbidden.
>>> We are on the way for removing all flush_scheduled_work() callers from
>>> the kernel, and there are only 4 callers remaining as of linux-20221104.
>>>
>>> drivers/gpu/drm/i915/display/intel_display.c:8997: flush_scheduled_work();
>>
>> Thanks for the reminder, I've pinged folks to get someone working on
>> this. We do schedule quite a bunch of work, so it's not immediately
>> obvious (at least to me) what exactly needs flushing.
>
> Here's my earlier cursory analysis of the subject:
> https://lore.kernel.org/intel-gfx/Yy3byxFrfAfQL9xK@xxxxxxxxx/

Now that a patch for mptscsih.c was proposed as
https://lkml.kernel.org/r/0b9ebcfb-b647-1381-0653-b54528a64a86@xxxxxxxxxxxxxxxxxxx ,
intel_display.c is going to become the last flush_scheduled_work() user.

If fixing the hpd disable path takes more time, should we start with moving
related works from system_wq to a local workqueue dedicated for intel_display.c ?

>
>>
>> https://gitlab.freedesktop.org/drm/intel/-/issues/7546
>>
>>> drivers/gpu/drm/i915/gt/selftest_execlists.c:88: flush_scheduled_work();
>>
>> Removed by commit 7d33fd02dd94 ("drm/i915/selftests: Remove
>> flush_scheduled_work() from live_execlists") in drm-next.
>>
>> BR,
>> Jani.
>>
>> --
>> Jani Nikula, Intel Open Source Graphics Center
>