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 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.