kvm-riscv.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Alexandru Elisei <alexandru.elisei@arm.com>
To: Andrew Jones <andrew.jones@linux.dev>
Cc: eric.auger@redhat.com, lvivier@redhat.com, thuth@redhat.com,
	frankja@linux.ibm.com, imbrenda@linux.ibm.com, nrb@linux.ibm.com,
	david@redhat.com, pbonzini@redhat.com, kvm@vger.kernel.org,
	kvmarm@lists.linux.dev, linuxppc-dev@lists.ozlabs.org,
	kvm-riscv@lists.infradead.org, linux-s390@vger.kernel.org,
	will@kernel.org, julien.thierry.kdev@gmail.com, maz@kernel.org,
	oliver.upton@linux.dev, suzuki.poulose@arm.com,
	yuzenghui@huawei.com, joey.gouly@arm.com, andre.przywara@arm.com
Subject: Re: [kvm-unit-tests PATCH v3 06/16] scripts: Refuse to run the tests if not configured for qemu
Date: Wed, 7 May 2025 17:14:53 +0100	[thread overview]
Message-ID: <aBuG_fx2dc99mXCU@raptor> (raw)
In-Reply-To: <20250507-9143a202e9745535dd43b5a8@orel>

Hi Drew,

On Wed, May 07, 2025 at 06:10:08PM +0200, Andrew Jones wrote:
> On Wed, May 07, 2025 at 04:12:46PM +0100, Alexandru Elisei wrote:
> > Arm and arm64 support running the tests under kvmtool. kvmtool has a
> > different command line syntax for configuring and running a virtual
> > machine, and the automated scripts know only how to use qemu.
> > 
> > One issue with that is even though the tests have been configured for
> > kvmtool (with ./configure --target=kvmtool), the scripts will use qemu to
> > run the tests, and without looking at the logs there is no indication that
> > the tests haven't been run with kvmtool, as configured.
> > 
> > Another issue is that kvmtool uses a different address for the UART and
> > when running the tests with qemu via the scripts, this warning is
> > displayed:
> > 
> > WARNING: early print support may not work. Found uart at 0x9000000, but early base is 0x1000000.
> > 
> > which might trip up an unsuspected user.
> > 
> > There are four different ways to run a test using the test infrastructure:
> > with run_tests.sh, by invoking arm/run or arm/efi/run with the correct
> > parameters (only the arm directory is mentioned here because the tests can
> > be configured for kvmtool only on arm and arm64), and by creating
> > standalone tests.
> > 
> > run_tests.sh ends up execuing either arm/run or arm/efi/run, so add a check
> 
> executing

Ack.

> 
> > to these two scripts for the test target, and refuse to run the test if
> > kvm-unit-tests has been configured for kvmtool.
> > 
> > mkstandalone.sh also executes arm/run or arm/efi run, but the usual use
> > case for standalone tests is to compile them on one machine, and then to
> > run them on a different machine. This two step process can be time
> > consuming, so save the user time (and frustration!) and add a check
> > directly to mkstandalone.sh.
> > 
> > Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
> > ---
> >  arm/efi/run             |  3 +++
> >  arm/run                 |  4 ++++
> >  scripts/mkstandalone.sh |  3 +++
> >  scripts/vmm.bash        | 14 ++++++++++++++
> >  4 files changed, 24 insertions(+)
> >  create mode 100644 scripts/vmm.bash
> > 
> > diff --git a/arm/efi/run b/arm/efi/run
> > index 8f41fc02df31..53d71297cc52 100755
> > --- a/arm/efi/run
> > +++ b/arm/efi/run
> > @@ -11,6 +11,9 @@ if [ ! -f config.mak ]; then
> >  fi
> >  source config.mak
> >  source scripts/arch-run.bash
> > +source scripts/vmm.bash
> > +
> > +check_vmm_supported
> >  
> >  if [ -f /usr/share/qemu-efi-aarch64/QEMU_EFI.fd ]; then
> >  	DEFAULT_UEFI=/usr/share/qemu-efi-aarch64/QEMU_EFI.fd
> > diff --git a/arm/run b/arm/run
> > index ef58558231b7..56562ed1628f 100755
> > --- a/arm/run
> > +++ b/arm/run
> > @@ -7,7 +7,11 @@ if [ -z "$KUT_STANDALONE" ]; then
> >  	fi
> >  	source config.mak
> >  	source scripts/arch-run.bash
> > +	source scripts/vmm.bash
> >  fi
> > +
> > +check_vmm_supported
> > +
> >  qemu_cpu="$TARGET_CPU"
> >  
> >  if [ "$QEMU" ] && [ -z "$ACCEL" ] &&
> > diff --git a/scripts/mkstandalone.sh b/scripts/mkstandalone.sh
> > index c4ba81f18935..4f666cefe076 100755
> > --- a/scripts/mkstandalone.sh
> > +++ b/scripts/mkstandalone.sh
> > @@ -6,6 +6,9 @@ if [ ! -f config.mak ]; then
> >  fi
> >  source config.mak
> >  source scripts/common.bash
> > +source scripts/vmm.bash
> > +
> > +check_vmm_supported
> >  
> >  temp_file ()
> >  {
> > diff --git a/scripts/vmm.bash b/scripts/vmm.bash
> > new file mode 100644
> > index 000000000000..39325858c6b3
> > --- /dev/null
> > +++ b/scripts/vmm.bash
> > @@ -0,0 +1,14 @@
> > +source config.mak
> > +
> > +function check_vmm_supported()
> > +{
> > +	case "$TARGET" in
> > +	qemu)
> > +		return 0
> > +		;;
> > +	*)
> > +		echo "$0 does not support target '$TARGET'"
> > +		exit 2
> > +		;;
> > +	esac
> > +}
> 
> Hmm. We now have configure saying one thing for arm/arm64 and this
> function saying another. Assuming this is just temporary and will
> be resolved in the next patches, then that's probably OK, though.

This is resolved in the last patch. Wanted to add this in case someone doesn't
apply the entire series and they end up with partial kvmtool support.

And thanks for having a look so fast!

Alex

> 
> Thanks,
> drew

-- 
kvm-riscv mailing list
kvm-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv

  reply	other threads:[~2025-05-07 17:26 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-07 15:12 [kvm-unit-tests PATCH v3 00/16] arm/arm64: Add kvmtool to the runner script Alexandru Elisei
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 01/16] scripts: unittests.cfg: Rename 'extra_params' to 'qemu_params' Alexandru Elisei
2025-05-07 15:40   ` Andrew Jones
2025-05-14  2:57   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 02/16] scripts: Add 'test_args' test definition parameter Alexandru Elisei
2025-05-07 15:58   ` Andrew Jones
2025-05-14  3:16   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 03/16] configure: Export TARGET unconditionally Alexandru Elisei
2025-05-07 16:02   ` Andrew Jones
2025-05-08  8:52     ` Alexandru Elisei
2025-05-08  9:39       ` Andrew Jones
2025-05-08 10:05         ` Alexandru Elisei
2025-05-08 10:17           ` Andrew Jones
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 04/16] run_tests.sh: Document --probe-maxsmp argument Alexandru Elisei
2025-05-14  3:29   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 05/16] scripts: Document environment variables Alexandru Elisei
2025-05-14  3:36   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 06/16] scripts: Refuse to run the tests if not configured for qemu Alexandru Elisei
2025-05-07 16:10   ` Andrew Jones
2025-05-07 16:14     ` Alexandru Elisei [this message]
2025-05-14  7:49   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 07/16] scripts: Use an associative array for qemu argument names Alexandru Elisei
2025-05-07 16:17   ` Andrew Jones
2025-05-14  8:02   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 08/16] scripts: Add 'kvmtool_params' to test definition Alexandru Elisei
2025-05-07 16:28   ` Andrew Jones
2025-05-08 15:54     ` Alexandru Elisei
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 09/16] scripts: Add support for kvmtool Alexandru Elisei
2025-05-07 16:38   ` Andrew Jones
2025-05-19  8:55   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 10/16] scripts: Add default arguments " Alexandru Elisei
2025-05-07 16:43   ` Andrew Jones
2025-05-21  3:21   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 11/16] scripts: Add KVMTOOL environment variable for kvmtool binary path Alexandru Elisei
2025-05-07 16:45   ` Andrew Jones
2025-05-19  8:13   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 12/16] scripts: Detect kvmtool failure in premature_failure() Alexandru Elisei
2025-05-07 16:47   ` Andrew Jones
2025-05-21  5:58   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 13/16] scripts: Do not probe for maximum number of VCPUs when using kvmtool Alexandru Elisei
2025-05-07 16:48   ` Andrew Jones
2025-05-21  6:02   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 14/16] scripts/mkstandalone: Export $TARGET Alexandru Elisei
2025-05-21  6:16   ` Shaoqin Huang
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 15/16] scripts: Add 'disabled_if' test definition parameter for kvmtool to use Alexandru Elisei
2025-05-07 16:56   ` Andrew Jones
2025-05-07 15:12 ` [kvm-unit-tests PATCH v3 16/16] scripts: Enable kvmtool Alexandru Elisei
2025-05-07 16:59   ` Andrew Jones
2025-05-21  6:20   ` Shaoqin Huang
2025-05-19  8:56 ` [kvm-unit-tests PATCH v3 00/16] arm/arm64: Add kvmtool to the runner script Shaoqin Huang

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=aBuG_fx2dc99mXCU@raptor \
    --to=alexandru.elisei@arm.com \
    --cc=andre.przywara@arm.com \
    --cc=andrew.jones@linux.dev \
    --cc=david@redhat.com \
    --cc=eric.auger@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=joey.gouly@arm.com \
    --cc=julien.thierry.kdev@gmail.com \
    --cc=kvm-riscv@lists.infradead.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-s390@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lvivier@redhat.com \
    --cc=maz@kernel.org \
    --cc=nrb@linux.ibm.com \
    --cc=oliver.upton@linux.dev \
    --cc=pbonzini@redhat.com \
    --cc=suzuki.poulose@arm.com \
    --cc=thuth@redhat.com \
    --cc=will@kernel.org \
    --cc=yuzenghui@huawei.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).