2022-11-06 11:14:58

by Tetsuo Handa

[permalink] [raw]
Subject: How is the progress for removing flush_scheduled_work() callers?

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();
drivers/gpu/drm/i915/gt/selftest_execlists.c:88: flush_scheduled_work();
drivers/md/dm.c:234: flush_scheduled_work();
drivers/message/fusion/mptscsih.c:1234: flush_scheduled_work();

I'm planning to start emitting runtime messages in linux-next.git tree.


2022-11-16 10:18:13

by Jani Nikula

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

On Sun, 06 Nov 2022, Tetsuo Handa <[email protected]> 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.

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

2022-11-16 13:23:41

by Ville Syrjälä

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

On Wed, Nov 16, 2022 at 12:08:27PM +0200, Jani Nikula wrote:
> On Sun, 06 Nov 2022, Tetsuo Handa <[email protected]> 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/[email protected]/

>
> 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

--
Ville Syrj?l?
Intel

2023-02-23 01:51:30

by Tetsuo Handa

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

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 <[email protected]> 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/[email protected]/

Now that a patch for mptscsih.c was proposed as
https://lkml.kernel.org/r/[email protected] ,
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
>