From: Will Deacon <will.deacon@arm.com>
To: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>
Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: Re: [PATCH v2] kvmtool: Add parameter to specifiy number of threads in thread_pool
Date: Tue, 30 Jun 2015 15:03:51 +0100 [thread overview]
Message-ID: <20150630140351.GM27725@arm.com> (raw)
In-Reply-To: <20150629114333.GB3379@alberich>
Hi Andreas,
On Mon, Jun 29, 2015 at 12:43:33PM +0100, Andreas Herrmann wrote:
> With current code the number of threads added to the thread_pool
> equals number of online CPUs. So on cn78xx we usually have 48 threads
> per guest just for the thread_pool. IMHO this is overkill for guests
> that just have a few vCPUs and/or if a guest is pinned to a subset of
> host CPUs. E.g.
>
> # numactl -C 4,5,7,8 ./lkvm run -c 2 -m 256 -k paravirt -d rootfs.ext3 ...
> # ps -La | grep threadpool-work | wc -l
> 48
>
> Don't change default behaviour (for sake of compatibility) but
> introduce a new parameter ("-t" or "--threads") that allows to specify
> number of threads to be created for the thread_pool:
>
> # numactl -C 4,5,7,8 ./lkvm run -c 2 -m 256 --threads 4 -k paravirt -d ...
> # ps -La | grep threadpool-work | wc -l
> 4
>
> Signed-off-by: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>
> ---
> builtin-run.c | 6 ++++++
> include/kvm/kvm-config.h | 1 +
> util/threadpool.c | 2 +-
> 3 files changed, 8 insertions(+), 1 deletion(-)
>
> New in v2: paramter must be in range [1, number of online cpus]
> otherwise the default (number of online cpus) will be used.
I thought some more about this and started to wonder whether we can make
the threadpool self-balancing.
Given the fairly restricted nature of kvmtool's threading model, could
we not start with a small fixed number of threads (but no more than the
number of physical CPUs) and then create new threads on demand when we
detect that there is backlog in the job queue and there are spare CPUs?
I don't think it should be too hard, especially if we ignore the problem
of destroying idle threads and it removes the need for a magic tunable
on the cmdline.
Will
prev parent reply other threads:[~2015-06-30 14:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-29 7:45 [PATCH] kvmtool: Add parameter to specifiy number of threads in thread_pool Andreas Herrmann
2015-06-29 9:45 ` Will Deacon
2015-06-29 10:14 ` Andreas Herrmann
2015-06-29 11:43 ` [PATCH v2] " Andreas Herrmann
2015-06-30 14:03 ` Will Deacon [this message]
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=20150630140351.GM27725@arm.com \
--to=will.deacon@arm.com \
--cc=andreas.herrmann@caviumnetworks.com \
--cc=kvm@vger.kernel.org \
/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;
as well as URLs for NNTP newsgroup(s).