From: Paolo Bonzini <pbonzini@redhat.com>
To: Andrew Jones <drjones@redhat.com>, kvm@vger.kernel.org
Cc: alex.bennee@linaro.org, cov@codeaurora.org
Subject: Re: [kvm-unit-tests PATCH 10/18] run_tests: probe for max-smp
Date: Tue, 10 Nov 2015 17:31:08 +0100 [thread overview]
Message-ID: <56421BCC.5080307@redhat.com> (raw)
In-Reply-To: <1446769483-21586-11-git-send-email-drjones@redhat.com>
On 06/11/2015 01:24, Andrew Jones wrote:
> KVM can be configured to only support a few vcpus. ARM and AArch64
> currently have a default config of only 4. While it's nice to be
> able to write tests that use the maximum recommended, nr-host-cpus,
> we can't assume that nr-host-cpus == kvm-max-vcpus. This patch allows
> one to put $MAX_SMP in the smp = <num> line of a unittests.cfg file.
> That variable will then expand to the number of host cpus, or to the
> maximum vcpus allowed by KVM.
>
> [Inspired by a patch from Alex Bennée solving the same issue.]
>
> Signed-off-by: Andrew Jones <drjones@redhat.com>
> ---
> arm/unittests.cfg | 3 ++-
> run_tests.sh | 9 +++++++++
> scripts/mkstandalone.sh | 9 ++++++++-
> x86/unittests.cfg | 1 +
> 4 files changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/arm/unittests.cfg b/arm/unittests.cfg
> index 243c13301811b..5e26da1a8c1bc 100644
> --- a/arm/unittests.cfg
> +++ b/arm/unittests.cfg
> @@ -2,6 +2,7 @@
> # [unittest_name]
> # file = foo.flat # Name of the flat file to be used
> # smp = 2 # Number of processors the VM will use during this test
> +# # Use $MAX_SMP to use the maximum the host supports.
> # extra_params = -append <params...> # Additional parameters used
> # arch = arm|arm64 # Only if test case is specific to one
> # groups = group1 group2 # Used to identify test cases with run_tests -g ...
> @@ -34,6 +35,6 @@ groups = selftest
> # Test SMP support
> [selftest-smp]
> file = selftest.flat
> -smp = `getconf _NPROCESSORS_CONF`
> +smp = $MAX_SMP
> extra_params = -append 'smp'
> groups = selftest
> diff --git a/run_tests.sh b/run_tests.sh
> index b1b4c541ecaea..fad22a935b007 100755
> --- a/run_tests.sh
> +++ b/run_tests.sh
> @@ -98,4 +98,13 @@ while getopts "g:hv" opt; do
> esac
> done
>
> +#
> +# Probe for MAX_SMP
> +#
> +MAX_SMP=$(getconf _NPROCESSORS_CONF)
> +while ./$TEST_DIR-run _NO_FILE_4Uhere_ -smp $MAX_SMP \
> + |& grep -q 'exceeds max cpus'; do
> + ((--MAX_SMP))
> +done
> +
> for_each_unittest $config run
> diff --git a/scripts/mkstandalone.sh b/scripts/mkstandalone.sh
> index 0c39451e538c9..3ce244aff67b9 100755
> --- a/scripts/mkstandalone.sh
> +++ b/scripts/mkstandalone.sh
> @@ -95,12 +95,19 @@ qemu="$qemu"
> if [ "\$QEMU" ]; then
> qemu="\$QEMU"
> fi
> +
> +MAX_SMP="MAX_SMP"
> echo \$qemu $cmdline -smp $smp $opts
>
> cmdline="\`echo '$cmdline' | sed s%$kernel%_NO_FILE_4Uhere_%\`"
> if \$qemu \$cmdline 2>&1 | grep 'No accelerator found'; then
> - ret=2
> + ret=2
> else
> + MAX_SMP=\`getconf _NPROCESSORS_CONF\`
> + while \$qemu \$cmdline -smp \$MAX_SMP 2>&1 | grep 'exceeds max cpus' > /dev/null; do
> + MAX_SMP=\`expr \$MAX_SMP - 1\`
> + done
> +
> cmdline="\`echo '$cmdline' | sed s%$kernel%\$bin%\`"
> \$qemu \$cmdline -smp $smp $opts
> ret=\$?
> diff --git a/x86/unittests.cfg b/x86/unittests.cfg
> index a38544f77c056..337cc19d3d19d 100644
> --- a/x86/unittests.cfg
> +++ b/x86/unittests.cfg
> @@ -2,6 +2,7 @@
> # [unittest_name]
> # file = foo.flat # Name of the flat file to be used
> # smp = 2 # Number of processors the VM will use during this test
> +# # Use $MAX_SMP to use the maximum the host supports.
> # extra_params = -cpu qemu64,+x2apic # Additional parameters used
> # arch = i386/x86_64 # Only if the test case works only on one of them
> # groups = group1 group2 # Used to identify test cases with run_tests -g ...
>
Applied, thanks.
Paolo
next prev parent reply other threads:[~2015-11-10 16:31 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-06 0:24 [kvm-unit-tests PATCH 00/18] bunch of mostly trivial patches Andrew Jones
2015-11-06 0:24 ` [kvm-unit-tests PATCH 01/18] makefiles: use bash Andrew Jones
2015-11-10 16:22 ` Paolo Bonzini
2015-11-10 16:37 ` Andrew Jones
2015-11-10 16:48 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 02/18] trivial: lib: fail hard on failed mallocs Andrew Jones
2015-11-06 14:05 ` Thomas Huth
2015-11-07 1:02 ` Andrew Jones
2015-11-09 20:53 ` [kvm-unit-tests PATCH v2 02/19] " Andrew Jones
2015-11-09 20:55 ` Thomas Huth
2015-11-10 16:23 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 03/18] trivial: alloc: don't use 'top' outside spinlock Andrew Jones
2015-11-10 16:24 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 04/18] trivial: lib: missing extern in string.h Andrew Jones
2015-11-10 16:24 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 05/18] README: add pointer to new wiki page Andrew Jones
2015-11-10 16:25 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 06/18] README: add some CONTRIBUTING notes Andrew Jones
2015-11-10 16:25 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 07/18] configure: emit HOST=$host to config.mak Andrew Jones
2015-11-10 16:26 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 08/18] run_tests: pass test name to run script Andrew Jones
2015-11-10 16:34 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 09/18] arm/run: use ACCEL to choose between kvm and tcg Andrew Jones
2015-11-10 16:30 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 10/18] run_tests: probe for max-smp Andrew Jones
2015-11-10 16:31 ` Paolo Bonzini [this message]
2015-11-06 0:24 ` [kvm-unit-tests PATCH 11/18] lib/printf: support the %u unsigned fmt field Andrew Jones
2015-11-10 16:33 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 12/18] lib/arm: add flush_tlb_page mmu function Andrew Jones
2015-11-10 16:33 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 13/18] arm: Fail on unknown subtest Andrew Jones
2015-11-10 16:34 ` Paolo Bonzini
2015-11-06 0:24 ` [kvm-unit-tests PATCH 14/18] arm/arm64: allow building a single test Andrew Jones
2015-11-06 0:24 ` [kvm-unit-tests PATCH 15/18] arm/arm64: generate map files Andrew Jones
2015-11-06 0:24 ` [kvm-unit-tests PATCH 16/18] lib: link in linux kernel headers (uapi) Andrew Jones
2015-11-06 0:24 ` [kvm-unit-tests PATCH 17/18] Revert "arm/arm64: import include/uapi/linux/psci.h" Andrew Jones
2015-11-06 0:24 ` [kvm-unit-tests PATCH 18/18] arm/arm64: uart0_init: check /chosen/stdout-path Andrew Jones
2015-11-10 16:37 ` Paolo Bonzini
2015-11-09 20:57 ` [kvm-unit-tests PATCH 19/18] don't embed code inside asserts Andrew Jones
2015-11-10 16:37 ` Paolo Bonzini
2015-11-10 16:38 ` [kvm-unit-tests PATCH 00/18] bunch of mostly trivial patches Paolo Bonzini
2015-11-10 16:54 ` Andrew Jones
2015-11-20 18:01 ` Andrew Jones
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=56421BCC.5080307@redhat.com \
--to=pbonzini@redhat.com \
--cc=alex.bennee@linaro.org \
--cc=cov@codeaurora.org \
--cc=drjones@redhat.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).