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 v2 12/18] scripts/runtime: Add default arguments for kvmtool
Date: Thu, 23 Jan 2025 14:20:07 +0000 [thread overview]
Message-ID: <Z5JQF38bJQFeWrbJ@raptor> (raw)
In-Reply-To: <20250121-16510b161f5b92ce9c5ae4e1@orel>
Hi,
On Thu, Jan 23, 2025 at 03:07:18PM +0100, Andrew Jones wrote:
> On Mon, Jan 20, 2025 at 04:43:10PM +0000, Alexandru Elisei wrote:
> > kvmtool, unless told otherwise, will do its best to make sure that a kernel
> > successfully boots in a virtual machine. Among things like automatically
> > creating a rootfs, it also adds extra parameters to the kernel command
> > line. This is actively harmful to kvm-unit-tests, because some tests parse
> > the kernel command line and they will fail if they encounter the options
> > added by kvmtool.
> >
> > Fortunately for us, kvmtool commit 5613ae26b998 ("Add --nodefaults command
> > line argument") addded the --nodefaults kvmtool parameter which disables
>
> added
>
> > all the implicit virtual machine configuration that cannot be disabled by
> > using other parameters, like modifying the kernel command line. Always use
> > --nodefaults to allow a test to run.
> >
> > kvmtool can be too verbose when running a virtual machine, and this is
> > controlled with parameters. Add those to the default kvmtool command line
> > to reduce this verbosity to a minimum.
> >
> > Before:
> >
> > $ vm run arm/selftest.flat --cpus 2 --mem 256 --params "setup smp=2 mem=256"
> > Info: # lkvm run -k arm/selftest.flat -m 256 -c 2 --name guest-5035
> > Unknown subtest
> >
> > EXIT: STATUS=127
> > Warning: KVM compatibility warning.
> > virtio-9p device was not detected.
> > While you have requested a virtio-9p device, the guest kernel did not initialize it.
> > Please make sure that the guest kernel was compiled with CONFIG_NET_9P_VIRTIO=y enabled in .config.
> > Warning: KVM compatibility warning.
> > virtio-net device was not detected.
> > While you have requested a virtio-net device, the guest kernel did not initialize it.
> > Please make sure that the guest kernel was compiled with CONFIG_VIRTIO_NET=y enabled in .config.
> > Info: KVM session ended normally.
> >
> > After:
> >
> > $ vm run arm/selftest.flat --nodefaults --network mode=none --loglevel=warning --cpus 2 --mem 256 --params "setup smp=2 mem=256"
>
> On riscv I've noticed that with --nodefaults if I don't add parameters
> with --params then kvmtool segfaults. I have to add --params "" to
> avoid it. Does that also happen on arm? Anyway, that's something we
> should fix in kvmtool rather than workaround it here.
This should fix it:
diff --git a/riscv/fdt.c b/riscv/fdt.c
index 85c8f95604f6..f6a702533258 100644
--- a/riscv/fdt.c
+++ b/riscv/fdt.c
@@ -256,9 +256,10 @@ static int setup_fdt(struct kvm *kvm)
if (kvm->cfg.kernel_cmdline)
_FDT(fdt_property_string(fdt, "bootargs",
kvm->cfg.kernel_cmdline));
- } else
+ } else if (kvm->cfg.real_cmdline) {
_FDT(fdt_property_string(fdt, "bootargs",
kvm->cfg.real_cmdline));
+ }
_FDT(fdt_property_string(fdt, "stdout-path", "serial0"));
Looking at the timestamp on the commit, the patch that added --nodefaults
came before the patch that added riscv to kvmtool (by about a month). Just
in case you want to add a Fixes tag.
Thanks,
Alex
--
kvm-riscv mailing list
kvm-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv
WARNING: multiple messages have this Message-ID (diff)
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 v2 12/18] scripts/runtime: Add default arguments for kvmtool
Date: Thu, 23 Jan 2025 14:20:07 +0000 [thread overview]
Message-ID: <Z5JQF38bJQFeWrbJ@raptor> (raw)
In-Reply-To: <20250121-16510b161f5b92ce9c5ae4e1@orel>
Hi,
On Thu, Jan 23, 2025 at 03:07:18PM +0100, Andrew Jones wrote:
> On Mon, Jan 20, 2025 at 04:43:10PM +0000, Alexandru Elisei wrote:
> > kvmtool, unless told otherwise, will do its best to make sure that a kernel
> > successfully boots in a virtual machine. Among things like automatically
> > creating a rootfs, it also adds extra parameters to the kernel command
> > line. This is actively harmful to kvm-unit-tests, because some tests parse
> > the kernel command line and they will fail if they encounter the options
> > added by kvmtool.
> >
> > Fortunately for us, kvmtool commit 5613ae26b998 ("Add --nodefaults command
> > line argument") addded the --nodefaults kvmtool parameter which disables
>
> added
>
> > all the implicit virtual machine configuration that cannot be disabled by
> > using other parameters, like modifying the kernel command line. Always use
> > --nodefaults to allow a test to run.
> >
> > kvmtool can be too verbose when running a virtual machine, and this is
> > controlled with parameters. Add those to the default kvmtool command line
> > to reduce this verbosity to a minimum.
> >
> > Before:
> >
> > $ vm run arm/selftest.flat --cpus 2 --mem 256 --params "setup smp=2 mem=256"
> > Info: # lkvm run -k arm/selftest.flat -m 256 -c 2 --name guest-5035
> > Unknown subtest
> >
> > EXIT: STATUS=127
> > Warning: KVM compatibility warning.
> > virtio-9p device was not detected.
> > While you have requested a virtio-9p device, the guest kernel did not initialize it.
> > Please make sure that the guest kernel was compiled with CONFIG_NET_9P_VIRTIO=y enabled in .config.
> > Warning: KVM compatibility warning.
> > virtio-net device was not detected.
> > While you have requested a virtio-net device, the guest kernel did not initialize it.
> > Please make sure that the guest kernel was compiled with CONFIG_VIRTIO_NET=y enabled in .config.
> > Info: KVM session ended normally.
> >
> > After:
> >
> > $ vm run arm/selftest.flat --nodefaults --network mode=none --loglevel=warning --cpus 2 --mem 256 --params "setup smp=2 mem=256"
>
> On riscv I've noticed that with --nodefaults if I don't add parameters
> with --params then kvmtool segfaults. I have to add --params "" to
> avoid it. Does that also happen on arm? Anyway, that's something we
> should fix in kvmtool rather than workaround it here.
This should fix it:
diff --git a/riscv/fdt.c b/riscv/fdt.c
index 85c8f95604f6..f6a702533258 100644
--- a/riscv/fdt.c
+++ b/riscv/fdt.c
@@ -256,9 +256,10 @@ static int setup_fdt(struct kvm *kvm)
if (kvm->cfg.kernel_cmdline)
_FDT(fdt_property_string(fdt, "bootargs",
kvm->cfg.kernel_cmdline));
- } else
+ } else if (kvm->cfg.real_cmdline) {
_FDT(fdt_property_string(fdt, "bootargs",
kvm->cfg.real_cmdline));
+ }
_FDT(fdt_property_string(fdt, "stdout-path", "serial0"));
Looking at the timestamp on the commit, the patch that added --nodefaults
came before the patch that added riscv to kvmtool (by about a month). Just
in case you want to add a Fixes tag.
Thanks,
Alex
next prev parent reply other threads:[~2025-01-23 14:20 UTC|newest]
Thread overview: 102+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-20 16:42 [kvm-unit-tests PATCH v2 00/18] arm/arm64: Add kvmtool to the runner script Alexandru Elisei
2025-01-20 16:42 ` Alexandru Elisei
2025-01-20 16:42 ` [kvm-unit-tests PATCH v2 01/18] run_tests: Document --probe-maxsmp argument Alexandru Elisei
2025-01-20 16:42 ` Alexandru Elisei
2025-01-21 14:41 ` Andrew Jones
2025-01-21 14:41 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 02/18] Document environment variables Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 14:41 ` Andrew Jones
2025-01-21 14:41 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 03/18] scripts: Refuse to run the tests if not configured for qemu Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 14:48 ` Andrew Jones
2025-01-21 14:48 ` Andrew Jones
2025-01-21 15:54 ` Alexandru Elisei
2025-01-21 15:54 ` Alexandru Elisei
2025-01-21 16:17 ` Andrew Jones
2025-01-21 16:17 ` Andrew Jones
2025-01-21 16:20 ` Alexandru Elisei
2025-01-21 16:20 ` Alexandru Elisei
2025-02-10 10:41 ` Alexandru Elisei
2025-02-10 10:41 ` Alexandru Elisei
2025-02-10 13:56 ` Andrew Jones
2025-02-10 13:56 ` Andrew Jones
2025-02-10 18:04 ` Alexandru Elisei
2025-02-10 18:04 ` Alexandru Elisei
2025-02-17 16:02 ` Al Dunsmuir
2025-02-17 16:02 ` Al Dunsmuir
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 04/18] run_tests: Introduce unittest parameter 'qemu_params' Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 15:46 ` Andrew Jones
2025-01-21 15:46 ` Andrew Jones
2025-02-12 13:40 ` Alexandru Elisei
2025-02-12 13:40 ` Alexandru Elisei
2025-02-12 15:48 ` Andrew Jones
2025-02-12 15:48 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 05/18] scripts: Rename run_qemu_status -> run_test_status Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 15:55 ` Andrew Jones
2025-01-21 15:55 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 06/18] scripts: Merge the qemu parameter -smp into $qemu_opts Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 16:12 ` Andrew Jones
2025-01-21 16:12 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 07/18] scripts: Introduce kvmtool_opts Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 16:24 ` Andrew Jones
2025-01-21 16:24 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 08/18] scripts/runtime: Detect kvmtool failure in premature_failure() Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 16:29 ` Andrew Jones
2025-01-21 16:29 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 09/18] scripts/runtime: Skip test when kvmtool and $accel is not KVM Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 16:30 ` Andrew Jones
2025-01-21 16:30 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 10/18] scripts/arch-run: Add support for kvmtool Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 16:46 ` Andrew Jones
2025-01-21 16:46 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 11/18] arm/run: " Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-21 16:50 ` Andrew Jones
2025-01-21 16:50 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 12/18] scripts/runtime: Add default arguments " Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-23 14:07 ` Andrew Jones
2025-01-23 14:07 ` Andrew Jones
2025-01-23 14:20 ` Alexandru Elisei [this message]
2025-01-23 14:20 ` Alexandru Elisei
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 13/18] run_tests: Do not probe for maximum number of VCPUs when using kvmtool Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-23 15:36 ` Andrew Jones
2025-01-23 15:36 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 14/18] run_tests: Add KVMTOOL environment variable for kvmtool binary path Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-23 15:43 ` Andrew Jones
2025-01-23 15:43 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 15/18] Add kvmtool_params to test specification Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-23 15:53 ` Andrew Jones
2025-01-23 15:53 ` Andrew Jones
2025-02-11 15:03 ` Alexandru Elisei
2025-02-11 15:03 ` Alexandru Elisei
2025-02-12 15:56 ` Andrew Jones
2025-02-12 15:56 ` Andrew Jones
2025-02-12 16:34 ` Alexandru Elisei
2025-02-12 16:34 ` Alexandru Elisei
2025-02-13 13:59 ` Andrew Jones
2025-02-13 13:59 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 16/18] scripts/mkstandalone: Export $TARGET Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-23 15:53 ` Andrew Jones
2025-01-23 15:53 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 17/18] unittest: Add disabled_if parameter and use it for kvmtool Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-23 16:08 ` Andrew Jones
2025-01-23 16:08 ` Andrew Jones
2025-01-20 16:43 ` [kvm-unit-tests PATCH v2 18/18] run_tests: Enable kvmtool Alexandru Elisei
2025-01-20 16:43 ` Alexandru Elisei
2025-01-23 16:12 ` Andrew Jones
2025-01-23 16:12 ` 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=Z5JQF38bJQFeWrbJ@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 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.