From: Tejun Heo <tj@kernel.org>
To: linux-kernel@vger.kernel.org, oleg@redhat.com
Cc: dmitry.torokhov@gmail.com
Subject: [PATCHSET] workqueue: implement alloc_ordered_workqueue() and flush[_delayed]_work_sync()
Date: Thu, 16 Sep 2010 13:24:03 +0200 [thread overview]
Message-ID: <1284636247-4734-1-git-send-email-tj@kernel.org> (raw)
Hello,
This patchset implements new workqueue API fucntions -
alloc_ordered_workqueue() and flush[_delayed]_work_sync().
The former is rather straight-forward replacement for
alloc_singlethread/frozen_workqueue().
The latter two are similar to cancel[_delayed]_work_sync() but wait
for the work to finish execution rather than cancelling them. These
syncing flushes make sure that works which were queued on multiple
workqueues or a reentrant workqueues have finished execution on all
CPUs. One usage of these new flushes is replacing
flush_scheduled_works() with finer scoped flushes.
This patchset contains the following four patches.
0001-workqueue-implement-alloc_ordered_workqueue.patch
0002-workqueue-cleanup-flush-cancel-functions.patch
0003-workqueue-factor-out-start_flush_work.patch
0004-workqueue-implement-flush-_delayed-_work_sync.patch
0001 adds alloc_ordered_workqueue(). 0002-0003 prepare for syncing
flushes. 0004 implements them.
Dmitry, as I wrote before, I think serio should be able to simply use
schedule_work() combined with flush_work_sync() implemented by this
patchset. Would this work for you?
The patches are available in the following git tree.
git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq.git review-flush_sync
and contains the following changes.
include/linux/workqueue.h | 38 +++++-
kernel/workqueue.c | 265 +++++++++++++++++++++++++++++-----------------
2 files changed, 201 insertions(+), 102 deletions(-)
Thanks.
--
tejun
next reply other threads:[~2010-09-16 11:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-16 11:24 Tejun Heo [this message]
2010-09-16 11:24 ` [PATCH 1/4] workqueue: implement alloc_ordered_workqueue() Tejun Heo
2010-09-16 11:24 ` [PATCH 2/4] workqueue: cleanup flush/cancel functions Tejun Heo
2010-09-16 11:24 ` [PATCH 3/4] workqueue: factor out start_flush_work() Tejun Heo
2010-09-16 11:24 ` [PATCH 4/4] workqueue: implement flush[_delayed]_work_sync() Tejun Heo
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=1284636247-4734-1-git-send-email-tj@kernel.org \
--to=tj@kernel.org \
--cc=dmitry.torokhov@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=oleg@redhat.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