From: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>
To: Will Deacon <will.deacon@arm.com>
Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>
Subject: [PATCH] kvmtool: Add parameter to specifiy number of threads in thread_pool
Date: Mon, 29 Jun 2015 09:45:44 +0200 [thread overview]
Message-ID: <20150629074544.GA15313@alberich> (raw)
With current code the number of threads added to the thread_pool
equals number of online CPUs. Thus on an OcteonIII cn78xx system 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 | 2 ++
include/kvm/kvm-config.h | 1 +
util/threadpool.c | 5 ++++-
3 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/builtin-run.c b/builtin-run.c
index 1ee75ad..86de53d 100644
--- a/builtin-run.c
+++ b/builtin-run.c
@@ -131,6 +131,8 @@ void kvm_run_set_wrapper_sandbox(void)
" rootfs"), \
OPT_STRING('\0', "hugetlbfs", &(cfg)->hugetlbfs_path, "path", \
"Hugetlbfs path"), \
+ OPT_INTEGER('t', "threads", &(cfg)->nrthreads, \
+ "Number of threads in thread_pool"), \
\
OPT_GROUP("Kernel options:"), \
OPT_STRING('k', "kernel", &(cfg)->kernel_filename, "kernel", \
diff --git a/include/kvm/kvm-config.h b/include/kvm/kvm-config.h
index 386fa8c..9cc50f5 100644
--- a/include/kvm/kvm-config.h
+++ b/include/kvm/kvm-config.h
@@ -27,6 +27,7 @@ struct kvm_config {
int active_console;
int debug_iodelay;
int nrcpus;
+ int nrthreads;
const char *kernel_cmdline;
const char *kernel_filename;
const char *vmlinux_filename;
diff --git a/util/threadpool.c b/util/threadpool.c
index e64aa26..620fdbd 100644
--- a/util/threadpool.c
+++ b/util/threadpool.c
@@ -124,7 +124,10 @@ static int thread_pool__addthread(void)
int thread_pool__init(struct kvm *kvm)
{
unsigned long i;
- unsigned int thread_count = sysconf(_SC_NPROCESSORS_ONLN);
+ unsigned int thread_count;
+
+ thread_count = kvm->cfg.nrthreads ? kvm->cfg.nrthreads :
+ sysconf(_SC_NPROCESSORS_ONLN);
running = true;
--
1.7.9.5
next reply other threads:[~2015-06-29 8:01 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-29 7:45 Andreas Herrmann [this message]
2015-06-29 9:45 ` [PATCH] kvmtool: Add parameter to specifiy number of threads in thread_pool 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
-- strict thread matches above, loose matches on Subject: below --
2015-01-06 13:13 [PATCH] " Andreas Herrmann
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=20150629074544.GA15313@alberich \
--to=andreas.herrmann@caviumnetworks.com \
--cc=kvm@vger.kernel.org \
--cc=will.deacon@arm.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;
as well as URLs for NNTP newsgroup(s).