All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Thomas Huth <huth@tuxfamily.org>
Cc: buildroot@buildroot.org,  Cyril Bur <cyrilbur@gmail.com>
Subject: Re: [Buildroot] [RFC PATCH v2 3/7] package/kvm-unit-tests: update dependencies
Date: Mon, 21 Jul 2025 09:29:39 +0100	[thread overview]
Message-ID: <87freqvte4.fsf@draig.linaro.org> (raw)
In-Reply-To: <20250720191413.47715a92@tpx1> (Thomas Huth's message of "Sun, 20 Jul 2025 19:14:13 +0200")

Thomas Huth <huth@tuxfamily.org> writes:

> Am Tue, 15 Jul 2025 10:19:38 +0100
> schrieb Alex Bennée <alex.bennee@linaro.org>:
>
>> Thomas Huth <huth@tuxfamily.org> writes:
>> 
>> > Am Fri, 11 Jul 2025 17:44:01 +0100
>> > schrieb Alex Bennée <alex.bennee@linaro.org>:
>> >  
>> >> To run the tests we need a system QEMU, timeout, getconf and nmap-ncat
>> >> so update the select/depends for them. As we need at least GCC 8 we
>> >> can drop the specific requirement for old x86-64 tests.
>> >> 
>> >> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>> >> 
>> >> ---
>> >> v2
>> >>   - remove old gcc notes as we need at least 8 anyway
>> >>   - select QEMU and other runtime deps
>> >>   - mention the runtime deps
>> >>   - add support for getconf from external toolchain
>> >>   - update comment fallback
>> >> ---
>> >>  package/kvm-unit-tests/Config.in | 24 +++++++++++++++++-------
>> >>  1 file changed, 17 insertions(+), 7 deletions(-)
>> >> 
>> >> diff --git a/package/kvm-unit-tests/Config.in b/package/kvm-unit-tests/Config.in
>> >> index 87b075c4b9..775b250d5f 100644
>> >> --- a/package/kvm-unit-tests/Config.in
>> >> +++ b/package/kvm-unit-tests/Config.in
>> >> @@ -14,12 +14,19 @@ config BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
>> >>  
>> >>  config BR2_PACKAGE_KVM_UNIT_TESTS
>> >>  	bool "kvm-unit-tests"
>> >> -	depends on BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
>> >> -	# on i386 and x86-64, __builtin_reachable is used, so we need
>> >> -	# gcc 4.5 at least. on i386, we use the target gcc, while on
>> >> -	# x86-64 we use the host gcc (see .mk file for details)
>> >> -	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_5 || !BR2_i386
>> >>  	depends on BR2_HOSTARCH = "x86_64" || !BR2_x86_64
>> >> +	depends on BR2_PACKAGE_KVM_UNIT_TESTS_ARCH_SUPPORTS
>> >> +	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # qemu
>> >> +	depends on BR2_PACKAGE_QEMU_ARCH_SUPPORTS_TARGET
>> >> +	depends on (BR2_PACKAGE_GLIBC_UTILS || \
>> >> +		    BR2_UCLIBC_INSTALL_UTILS || \
>> >> +		    BR2_TOOLCHAIN_EXTERNAL_LIBC_UTILS_COPY) # runtime getconf
>> >> +	select BR2_PACKAGE_QEMU
>> >> +	select BR2_PACKAGE_QEMU_SYSTEM # runtime for qemu-system-$ARCH  
>> >
>> > AFAIK kvm-unit-tests can be used with kvmtool instead of QEMU, too ... so
>> > hard-coding QEMU high might not be the best solution for the user?  
>> 
>> The current build doesn't support kvmtool but maybe something like this
>> as a follow-on patch:
>> 
>> --8<---------------cut here---------------start------------->8---
>> modified   package/kvm-unit-tests/Config.in
>> @@ -21,8 +21,8 @@ config BR2_PACKAGE_KVM_UNIT_TESTS
>>  	depends on (BR2_PACKAGE_GLIBC_UTILS || \
>>  		    BR2_UCLIBC_INSTALL_UTILS || \
>>  		    BR2_TOOLCHAIN_EXTERNAL_LIBC_UTILS_COPY) # runtime getconf
>> -	select BR2_PACKAGE_QEMU
>> -	select BR2_PACKAGE_QEMU_SYSTEM # runtime for qemu-system-$ARCH
>> +	select BR2_PACKAGE_QEMU if !BR2_PACKAGE_KVMTOOL
>> +	select BR2_PACKAGE_QEMU_SYSTEM if !BR2_PACKAGE_KVMTOOL # runtime for qemu-system-$ARCH
>>  	select BR2_PACKAGE_COREUTILS # runtime for timeout
>>  	select BR2_PACKAGE_BASH # runtime
>>  	select BR2_PACKAGE_NMAP
>> modified   package/kvm-unit-tests/kvm-unit-tests.mk
>> @@ -36,6 +36,13 @@ KVM_UNIT_TESTS_CONF_OPTS =\
>>  	--processor="$(GCC_TARGET_CPU)" \
>>  	--endian="$(KVM_UNIT_TESTS_ENDIAN)"
>>  
>> +# The default runner is QEMU but kvmtool can be used
>> +ifeq ($(BR2_PACKAGE_QEMU_SYSTEM),y)
>> +KVM_UNIT_TESTS_CONF_OPTS += --target=qemu
>> +else ifeq ($(BR2_PACKAGE_KVMTOOL),y)
>> +KVM_UNIT_TESTS_CONF_OPTS += --target=kvmtool
>> +endif
>> +
>>  ifeq ($(BR2_ARM64_PAGE_SIZE_4K),y)
>>  KVM_UNIT_TESTS_CONF_OPTS += --page-size=4k
>>  else ifeq ($(BR2_ARM64_PAGE_SIZE_16K),y)
>> --8<---------------cut here---------------end--------------->8---
>> 
>> What do you think?
>
> Looks good! ... though kvmtool can only be used for aarch64/arm or riscv
> as far as I know. Not sure whether that additional dependency should be
> reflected here, too, though.

I think I need to reflect this in Config.in instead as I don't think
BR2_PACKAGE_QEMU_SYSTEM/BR2_PACKAGE_KVMTOOL is available to the
KVM_UNIT_TESTS makefile.

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2025-07-21  8:29 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-11 16:43 [Buildroot] [RFC PATCH v2 0/7] kvm-unit-tests: update deps and fine tune qemu Alex Bennée
2025-07-11 16:43 ` [Buildroot] [RFC PATCH v2 1/7] toolchain/external: allow installing of libc utils Alex Bennée
2025-07-11 16:44 ` [Buildroot] [RFC PATCH v2 2/7] package/kvm-unit-tests: assume AArch64 supports KVM Alex Bennée
2025-07-12  6:32   ` Thomas Huth
2025-07-11 16:44 ` [Buildroot] [RFC PATCH v2 3/7] package/kvm-unit-tests: update dependencies Alex Bennée
2025-07-12  6:34   ` Thomas Huth
2025-07-15  9:19     ` Alex Bennée
2025-07-20 17:14       ` Thomas Huth
2025-07-21  8:29         ` Alex Bennée [this message]
2025-07-11 16:44 ` [Buildroot] [RFC PATCH v2 4/7] package/qemu: introduce kvm and tcg system options Alex Bennée
2025-07-11 16:44 ` [Buildroot] [RFC PATCH v2 5/7] package/kvm-unit-tests: bump to 2025-06-05 Alex Bennée
2025-07-12  6:29   ` Thomas Huth
2025-07-11 16:44 ` [Buildroot] [RFC PATCH v2 6/7] package/kvm-unit-tests: honour BR2_ARM64_PAGE_SIZE Alex Bennée
2025-07-12  6:35   ` Thomas Huth
2025-07-11 16:44 ` [Buildroot] [RFC PATCH v2 7/7] support/testing: add test for kvm-unit-tests Alex Bennée

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=87freqvte4.fsf@draig.linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=buildroot@buildroot.org \
    --cc=cyrilbur@gmail.com \
    --cc=huth@tuxfamily.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.