2022-05-19 15:33:58

by Andrey Grodzovsky

[permalink] [raw]
Subject: [PATCH] Revert "workqueue: remove unused cancel_work()"

This reverts commit 6417250d3f894e66a68ba1cd93676143f2376a6f
and exports the function.

We need this funtion in amdgpu driver to fix a bug.

Signed-off-by: Andrey Grodzovsky <[email protected]>
---
include/linux/workqueue.h | 1 +
kernel/workqueue.c | 9 +++++++++
2 files changed, 10 insertions(+)

diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index 7fee9b6cfede..9e41e1226193 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -453,6 +453,7 @@ extern int schedule_on_each_cpu(work_func_t func);
int execute_in_process_context(work_func_t fn, struct execute_work *);

extern bool flush_work(struct work_struct *work);
+extern bool cancel_work(struct work_struct *work);
extern bool cancel_work_sync(struct work_struct *work);

extern bool flush_delayed_work(struct delayed_work *dwork);
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index 613917bbc4e7..f94b596ebffd 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3267,6 +3267,15 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
return ret;
}

+/*
+ * See cancel_delayed_work()
+ */
+bool cancel_work(struct work_struct *work)
+{
+ return __cancel_work(work, false);
+}
+EXPORT_SYMBOL(cancel_work);
+
/**
* cancel_delayed_work - cancel a delayed work
* @dwork: delayed_work to cancel
--
2.25.1



2022-05-20 02:51:31

by Lai Jiangshan

[permalink] [raw]
Subject: Re: [PATCH] Revert "workqueue: remove unused cancel_work()"

On Thu, May 19, 2022 at 11:04 PM Andrey Grodzovsky
<[email protected]> wrote:
>
> See this patch-set https://www.spinics.net/lists/amd-gfx/msg78514.html, specifically patch
> 'drm/amdgpu: Switch to delayed work from work_struct.
>
> I will just reiterate here -
>
> We need to be able to do non blocking cancel pending reset works
> from within GPU reset. Currently kernel API allows this only
> for delayed_work and not for work_struct.
>

I'm OK with the change.

With an updated changelog:

Reviewed-by: Lai Jiangshan<[email protected]>


Thanks
Lai

2022-05-20 22:20:43

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] Revert "workqueue: remove unused cancel_work()"

On Fri, May 20, 2022 at 08:22:39AM +0200, Christian K?nig wrote:
> Am 20.05.22 um 02:47 schrieb Lai Jiangshan:
> > On Thu, May 19, 2022 at 11:04 PM Andrey Grodzovsky
> > <[email protected]> wrote:
> > > See this patch-set https://www.spinics.net/lists/amd-gfx/msg78514.html, specifically patch
> > > 'drm/amdgpu: Switch to delayed work from work_struct.
> > >
> > > I will just reiterate here -
> > >
> > > We need to be able to do non blocking cancel pending reset works
> > > from within GPU reset. Currently kernel API allows this only
> > > for delayed_work and not for work_struct.
> > >
> > I'm OK with the change.
> >
> > With an updated changelog:
> >
> > Reviewed-by: Lai Jiangshan<[email protected]>
>
> Good morning guys,
>
> for the patch itself Reviewed-by: Christian K?nig <[email protected]>
>
> And just for the record: We plan to push this upstream through the drm
> branches, if anybody has any objections to that please speak up.

Andrey, care to resend with updated description?

Thanks.

--
tejun

2022-05-22 05:47:28

by Lai Jiangshan

[permalink] [raw]
Subject: Re: [PATCH] Revert "workqueue: remove unused cancel_work()"

On Thu, May 19, 2022 at 9:57 PM Andrey Grodzovsky
<[email protected]> wrote:
>
> This reverts commit 6417250d3f894e66a68ba1cd93676143f2376a6f
> and exports the function.
>
> We need this funtion in amdgpu driver to fix a bug.

Hello,

Could you specify the reason why it is needed in amdgpu driver
rather than "fix a bug", please.

And there is a typo: "funtion".

And please avoid using "we" in the changelog. For example, the
sentence can be changed to:

The amdgpu driver needs this function to cancel a work item
in blabla context/situation or for blabla reason.
(I'm not good at Engish, this is just an example of not
using "we". No need to use the sentence.)

Thanks
Lai

>
> Signed-off-by: Andrey Grodzovsky <[email protected]>
> ---
> include/linux/workqueue.h | 1 +
> kernel/workqueue.c | 9 +++++++++
> 2 files changed, 10 insertions(+)
>
> diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
> index 7fee9b6cfede..9e41e1226193 100644
> --- a/include/linux/workqueue.h
> +++ b/include/linux/workqueue.h
> @@ -453,6 +453,7 @@ extern int schedule_on_each_cpu(work_func_t func);
> int execute_in_process_context(work_func_t fn, struct execute_work *);
>
> extern bool flush_work(struct work_struct *work);
> +extern bool cancel_work(struct work_struct *work);
> extern bool cancel_work_sync(struct work_struct *work);
>
> extern bool flush_delayed_work(struct delayed_work *dwork);
> diff --git a/kernel/workqueue.c b/kernel/workqueue.c
> index 613917bbc4e7..f94b596ebffd 100644
> --- a/kernel/workqueue.c
> +++ b/kernel/workqueue.c
> @@ -3267,6 +3267,15 @@ static bool __cancel_work(struct work_struct *work, bool is_dwork)
> return ret;
> }
>
> +/*
> + * See cancel_delayed_work()
> + */
> +bool cancel_work(struct work_struct *work)
> +{
> + return __cancel_work(work, false);
> +}
> +EXPORT_SYMBOL(cancel_work);
> +
> /**
> * cancel_delayed_work - cancel a delayed work
> * @dwork: delayed_work to cancel
> --
> 2.25.1
>

2022-05-23 06:47:13

by Andrey Grodzovsky

[permalink] [raw]
Subject: Re: [PATCH] Revert "workqueue: remove unused cancel_work()"



On 2022-05-20 03:52, Tejun Heo wrote:
> On Fri, May 20, 2022 at 08:22:39AM +0200, Christian König wrote:
>> Am 20.05.22 um 02:47 schrieb Lai Jiangshan:
>>> On Thu, May 19, 2022 at 11:04 PM Andrey Grodzovsky
>>> <[email protected]> wrote:
>>>> See this patch-set https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.spinics.net%2Flists%2Famd-gfx%2Fmsg78514.html&amp;data=05%7C01%7Candrey.grodzovsky%40amd.com%7Cb25896b7e8b14e605a8d08da3a35a7c7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637886299388464620%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&amp;sdata=TRabWQQrhy6nwkLfuXI4A%2FOcF9f%2FtFKdxIRfGc8Das4%3D&amp;reserved=0, specifically patch
>>>> 'drm/amdgpu: Switch to delayed work from work_struct.
>>>>
>>>> I will just reiterate here -
>>>>
>>>> We need to be able to do non blocking cancel pending reset works
>>>> from within GPU reset. Currently kernel API allows this only
>>>> for delayed_work and not for work_struct.
>>>>
>>> I'm OK with the change.
>>>
>>> With an updated changelog:
>>>
>>> Reviewed-by: Lai Jiangshan<[email protected]>
>>
>> Good morning guys,
>>
>> for the patch itself Reviewed-by: Christian König <[email protected]>
>>
>> And just for the record: We plan to push this upstream through the drm
>> branches, if anybody has any objections to that please speak up.
>
> Andrey, care to resend with updated description?
>
> Thanks
>

Just adding here as attachment since only description changed changed.

Andrey


Attachments:
0001-Revert-workqueue-remove-unused-cancel_work.patch (1.59 kB)

2022-05-23 08:43:03

by Christian König

[permalink] [raw]
Subject: Re: [PATCH] Revert "workqueue: remove unused cancel_work()"

Am 20.05.22 um 02:47 schrieb Lai Jiangshan:
> On Thu, May 19, 2022 at 11:04 PM Andrey Grodzovsky
> <[email protected]> wrote:
>> See this patch-set https://www.spinics.net/lists/amd-gfx/msg78514.html, specifically patch
>> 'drm/amdgpu: Switch to delayed work from work_struct.
>>
>> I will just reiterate here -
>>
>> We need to be able to do non blocking cancel pending reset works
>> from within GPU reset. Currently kernel API allows this only
>> for delayed_work and not for work_struct.
>>
> I'm OK with the change.
>
> With an updated changelog:
>
> Reviewed-by: Lai Jiangshan<[email protected]>

Good morning guys,

for the patch itself Reviewed-by: Christian König <[email protected]>

And just for the record: We plan to push this upstream through the drm
branches, if anybody has any objections to that please speak up.

Thanks,
Christian.

>
>
> Thanks
> Lai


2022-06-08 03:04:11

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] Revert "workqueue: remove unused cancel_work()"

On Sat, May 21, 2022 at 12:04:00AM -0400, Andrey Grodzovsky wrote:
> From 78df30cc97f10c885f5159a293e6afe2348aa60c Mon Sep 17 00:00:00 2001
> From: Andrey Grodzovsky <[email protected]>
> Date: Thu, 19 May 2022 09:47:28 -0400
> Subject: Revert "workqueue: remove unused cancel_work()"
>
> This reverts commit 6417250d3f894e66a68ba1cd93676143f2376a6f.
>
> amdpgu need this function in order to prematurly stop pending
> reset works when another reset work already in progress.
>
> Signed-off-by: Andrey Grodzovsky <[email protected]>

Applied to wq/for-5.19-fixes.

Thanks.

--
tejun

2022-06-08 04:12:18

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH] Revert "workqueue: remove unused cancel_work()"

On Tue, Jun 7, 2022 at 1:14 PM Tejun Heo <[email protected]> wrote:
>
> On Sat, May 21, 2022 at 12:04:00AM -0400, Andrey Grodzovsky wrote:
> > From 78df30cc97f10c885f5159a293e6afe2348aa60c Mon Sep 17 00:00:00 2001
> > From: Andrey Grodzovsky <[email protected]>
> > Date: Thu, 19 May 2022 09:47:28 -0400
> > Subject: Revert "workqueue: remove unused cancel_work()"
> >
> > This reverts commit 6417250d3f894e66a68ba1cd93676143f2376a6f.
> >
> > amdpgu need this function in order to prematurly stop pending
> > reset works when another reset work already in progress.
> >
> > Signed-off-by: Andrey Grodzovsky <[email protected]>
>
> Applied to wq/for-5.19-fixes.

Could we take it through the drm tree so we can include it with
Andrey's patches that depend on it?

Alex


>
> Thanks.
>
> --
> tejun

2022-06-08 08:22:51

by Tejun Heo

[permalink] [raw]
Subject: Re: [PATCH] Revert "workqueue: remove unused cancel_work()"

On Tue, Jun 07, 2022 at 01:39:01PM -0400, Alex Deucher wrote:
> On Tue, Jun 7, 2022 at 1:14 PM Tejun Heo <[email protected]> wrote:
> >
> > On Sat, May 21, 2022 at 12:04:00AM -0400, Andrey Grodzovsky wrote:
> > > From 78df30cc97f10c885f5159a293e6afe2348aa60c Mon Sep 17 00:00:00 2001
> > > From: Andrey Grodzovsky <[email protected]>
> > > Date: Thu, 19 May 2022 09:47:28 -0400
> > > Subject: Revert "workqueue: remove unused cancel_work()"
> > >
> > > This reverts commit 6417250d3f894e66a68ba1cd93676143f2376a6f.
> > >
> > > amdpgu need this function in order to prematurly stop pending
> > > reset works when another reset work already in progress.
> > >
> > > Signed-off-by: Andrey Grodzovsky <[email protected]>
> >
> > Applied to wq/for-5.19-fixes.
>
> Could we take it through the drm tree so we can include it with
> Andrey's patches that depend on it?

Oh sure, please go ahead. Imma revert from my tree.

Acked-by: Tejun Heo <[email protected]>

Thanks.

--
tejun