From: Petr Mladek <pmladek@suse.com>
To: Yiwei Zhang <zzyiwei@android.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Felix Kuehling <Felix.Kuehling@amd.com>,
Jens Axboe <axboe@kernel.dk>,
"J. Bruce Fields" <bfields@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
Frederic Weisbecker <frederic@kernel.org>,
Marcelo Tosatti <mtosatti@redhat.com>,
Ilias Stamatis <stamatis.iliass@gmail.com>,
Rob Clark <robdclark@chromium.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Liang Chen <cl@rock-chips.com>,
linux-kernel@vger.kernel.org, kernel-team@android.com
Subject: Re: [PATCH] kthread: add kthread_mod_pending_delayed_work api
Date: Mon, 15 Feb 2021 14:28:19 +0100 [thread overview]
Message-ID: <YCp288w57eYnjPl0@alley> (raw)
In-Reply-To: <20210214000611.2169820-1-zzyiwei@android.com>
On Sun 2021-02-14 00:06:11, Yiwei Zhang wrote:
> The existing kthread_mod_delayed_work api will queue a new work if
> failing to cancel the current work due to no longer being pending.
> However, there's a case that the same work can be enqueued from both
> an async request and a delayed work, and a racing could happen if the
> async request comes right after the timeout delayed work gets
> scheduled,
By other words, you want to modify the delayed work only when
it is still waiting in the queue. You do not want to queue new
work when it has not been already queued. Do I get it correctly?
Could you please provide a patch where the new API is used?
> because the clean up work may not be safe to run twice.
This looks like a bad design of the code. There is likely
another race that might break it. You should ask the following
questions:
Why anyone tries to modify the clean up work when it has been already
queued? There should be only one location/caller that triggers the clean up.
Could anyone queue any work to the workqueue after the clean up
work was queued? The cleanup work should be the last queued one.
The workqueue user must inform all other users that the queue
is being destroyed and nobody is allowed to queue any work
any longer.
Best Regards,
Petr
next prev parent reply other threads:[~2021-02-15 13:31 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-14 0:06 Yiwei Zhang
2021-02-15 13:28 ` Petr Mladek [this message]
2021-02-16 9:11 ` Christoph Hellwig
2021-02-16 18:58 ` Yiwei Zhang
2021-02-17 11:14 ` Petr Mladek
2021-02-19 6:29 ` Yiwei Zhang
2021-02-19 10:27 ` Petr Mladek
2021-02-19 10:30 ` Christoph Hellwig
2021-02-19 10:56 ` Petr Mladek
2021-02-23 0:39 ` Yiwei Zhang
2021-02-23 0:58 ` Yiwei Zhang
2021-02-23 15:52 ` Petr Mladek
2021-02-23 22:29 ` Yiwei Zhang
2021-02-24 9:34 ` Petr Mladek
2021-02-25 22:17 ` Yiwei Zhang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YCp288w57eYnjPl0@alley \
--to=pmladek@suse.com \
--cc=Felix.Kuehling@amd.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=bfields@redhat.com \
--cc=cl@rock-chips.com \
--cc=frederic@kernel.org \
--cc=kernel-team@android.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mtosatti@redhat.com \
--cc=peterz@infradead.org \
--cc=robdclark@chromium.org \
--cc=stamatis.iliass@gmail.com \
--cc=zzyiwei@android.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®