From: Tejun Heo <tj@kernel.org>
To: Mike Snitzer <snitzer@redhat.com>
Cc: Christophe Saout <christophe@saout.de>,
Brian Swetland <swetland@google.com>, San Mehat <san@google.com>,
device-mapper development <dm-devel@redhat.com>,
andi@firstfloor.org, Andrew Morton <akpm@linux-foundation.org>,
Alasdair G Kergon <agk@redhat.com>, Milan Broz <mbroz@redhat.com>
Subject: Re: cmwq and dm-crypt devices?
Date: Wed, 03 Nov 2010 10:46:22 +0100 [thread overview]
Message-ID: <4CD12F6E.8040501@kernel.org> (raw)
In-Reply-To: <20101102220207.GD23680@redhat.com>
Hello, Mike.
On 11/02/2010 11:02 PM, Mike Snitzer wrote:
> 1) scale down the number of workqueue threads associated with N devices
> (w/ 2 workqueue threads per device) so that the number of threads is
> reasonable ("reasonable" is TBD but I'd imagine it doesn't buy us a
> lot to have 2 single thread workqueues dedicated to each dm-crypt
> device).
>
> [seems dm-crypt will already get this "for free" using
> create_singlethread_workqueue's WQ_UNBOUND?]
Workqueues no longer need dedicated worker threads for usual cases.
Dedicated threads are only necessary to guarantee forward progress
under memory pressure. So, unless dm crypts are stacked, there only
needs to be one rescuer. If dm crypts are stacked, you would need
single workqueue w/ WQ_MEM_RECLAIM set at each level. If figuring
that out is too cumbersome, it might make sense to use one per
instance tho.
Also, unless you need strict execution ordering of queued works,
there's no reason to use alloc_ordered_workqueue(). It probably is a
better idea to use non-reentrant workqueue. I'm not quite sure
whether using unbound would be better or not tho.
> 2) scale up the number of workqueue threads used for a single dm-crypt
> device so that a device can realize per-cpu concurrency (to address
> Andi's scalability concerns: https://patchwork.kernel.org/patch/244031/)
>
> [the desired locality is currently missing due to dm-crypt's current
> use of WQ_UNBOUND; so it is clear the way the workqueues are created
> will be important]
I don't know enough about dm-crypt workload to tell whether per-cpu
affinity would be better or not, but it's really a simple matter of
adding or omitting WQ_UNBOUND, so playing with it is very easy. I
think the flags to use would be WQ_MEM_RECLAIM | WQ_NON_REENTRANT |
WQ_CPU_INTENSIVE (| WQ_UNBOUND).
I wish I could be more helpful but I would need a bit more details.
If you have some design on mind, please let me know.
Thanks.
--
tejun
next prev parent reply other threads:[~2010-11-03 9:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-22 17:48 [PATCH] md: dm-crypt: Add option to re-use a new global work-queue San Mehat
2010-04-22 18:03 ` Milan Broz
2010-04-22 18:08 ` San Mehat
2010-04-22 18:47 ` Milan Broz
2010-04-22 19:42 ` San Mehat
2010-04-23 14:01 ` Heinz Mauelshagen
2010-04-27 20:58 ` San Mehat
2010-11-02 22:02 ` cmwq and dm-crypt devices? (was: Re: md: dm-crypt: Add option to re-use a new global work-queue.) Mike Snitzer
2010-11-03 9:46 ` Tejun Heo [this message]
2010-11-03 11:51 ` cmwq and dm-crypt devices? Andi Kleen
2010-11-03 11:56 ` Milan Broz
2010-11-03 12:33 ` Andi Kleen
2010-11-03 13:02 ` Milan Broz
2010-11-03 13:18 ` Alasdair G Kergon
2010-11-03 16:13 ` Andi Kleen
2010-11-03 16:17 ` Tejun Heo
2010-11-03 16:22 ` Milan Broz
2010-11-04 9:55 ` Andi Kleen
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=4CD12F6E.8040501@kernel.org \
--to=tj@kernel.org \
--cc=agk@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=andi@firstfloor.org \
--cc=christophe@saout.de \
--cc=dm-devel@redhat.com \
--cc=mbroz@redhat.com \
--cc=san@google.com \
--cc=snitzer@redhat.com \
--cc=swetland@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.