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
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
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
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
>
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&data=05%7C01%7Candrey.grodzovsky%40amd.com%7Cb25896b7e8b14e605a8d08da3a35a7c7%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637886299388464620%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=TRabWQQrhy6nwkLfuXI4A%2FOcF9f%2FtFKdxIRfGc8Das4%3D&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
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
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
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
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