From: sashiko-bot@kernel.org
To: "Steffen Eiden" <seiden@linux.ibm.com>
Cc: kvm@vger.kernel.org
Subject: Re: [PATCH v3 27/27] KVM: s390: arm64: Enable KVM_ARM64 config and Kbuild
Date: Sat, 30 May 2026 09:37:39 +0000 [thread overview]
Message-ID: <20260530093739.80F0D1F00893@smtp.kernel.org> (raw)
In-Reply-To: <20260529155050.2902245-28-seiden@linux.ibm.com>
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [High] The Makefile uses GNU Binutils incompatible flags `$(NM) -jU` and `$(OBJCOPY) -O default`, causing immediate build failures.
- [High] Compiling both `kvm-s390` and `kvm-arm64` causes fatal linker multiple-definition errors when built-in, or duplicate-export failures when loaded as modules.
--
commit 8f8fd4d3ea8855f34fafa2691472eea31e58dd4d
Author: Steffen Eiden <seiden@linux.ibm.com>
Subject: KVM: s390: arm64: Enable KVM_ARM64 config and Kbuild
This commit adds the Kbuild/Makefile configurations to build a second
KVM module on s390 that implements the arm64-KVM API. It mangles internal
symbols in kvm-arm64 when compiled as built-in to prevent symbol conflicts
with kvm-s390.
> diff --git a/arch/s390/kvm/arm64/Makefile b/arch/s390/kvm/arm64/Makefile
> new file mode 100644
> index 0000000000000..d0aac34b8d2ff
> --- /dev/null
> +++ b/arch/s390/kvm/arm64/Makefile
[ ... ]
> +ifeq ($(CONFIG_KVM_ARM64),m)
> +
> +kvm-arm64-y = $(kvm-arm64-obj)
> +
> +else ifeq ($(CONFIG_KVM_ARM64),y)
[Severity: High]
Does this bypass namespacing entirely when built as a module?
If localization is skipped, it seems both kvm-s390.ko and kvm-arm64.ko
will attempt to export identical KVM core symbols (such as kvm_init).
Will the kernel module loader refuse to load the second module due to
duplicate exports?
[ ... ]
> +quiet_cmd_nm_filter = NMFLTR $@
> + cmd_nm_filter = \
> +$(NM) -jU $< | awk ' \
[Severity: High]
Can these nm flags cause build failures on standard GCC/binutils s390x setups?
The -j (just symbol names) and -U flags appear to be LLVM extensions that
are not supported by standard GNU nm, which might result in an invalid option
error during standard kernel builds.
> +{ if (match($$0, /^__export_symbol_(.*)$$/, exp_sym)) { \
> + exp_syms[exp_sym[1]] = 1; \
> + } else { \
[Severity: High]
By filtering out exported symbols from the localization list here, do the
exported functions remain globally visible?
If both KVM implementations are compiled into vmlinux, this looks like it
will cause fatal multiple definition linker errors since they both compile
their own copy of KVM core files.
[ ... ]
> +define rule_oc_o_o
> + $(call cmd_and_savecmd,objcopy)
> + $(call cmd,gen_objtooldep)
> + $(call cmd,gen_symversions_o)
> +endef
> +
> +OBJCOPYFLAGS_kvm-namespaced.o := -O default --localize-symbols=$(obj)/kvm_symbol_list
[Severity: High]
Is "-O default" supported by standard GNU objcopy?
Standard GNU objcopy does not recognize "default" as a valid BFD output
target (such as elf64-s390) and fails with an "invalid bfd target" error.
Could the -O flag be omitted entirely to retain the input format?
> +$(obj)/kvm-namespaced.o: $(obj)/kvm-unnamespaced.o $(obj)/kvm_symbol_list FORCE
> + $(call if_changed_rule,oc_o_o)
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260529155050.2902245-1-seiden@linux.ibm.com?part=27
prev parent reply other threads:[~2026-05-30 9:37 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-29 15:50 [PATCH v3 00/27] KVM: s390: Introduce arm64 KVM Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 01/27] VFIO: take reference to the KVM module Steffen Eiden
2026-05-29 16:49 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 02/27] KVM, vfio: remove symbol_get(kvm_get_kvm_safe) from vfio Steffen Eiden
2026-05-29 16:39 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 03/27] KVM, vfio: remove symbol_get(kvm_put_kvm) " Steffen Eiden
2026-05-29 17:22 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 04/27] uapi: KVM: Provide arm64 UAPI for other host architectures Steffen Eiden
2026-05-29 17:10 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 05/27] arm64: Extract sysreg definitions Steffen Eiden
2026-05-29 17:22 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 06/27] arm64: Provide arm64 API for non-native architectures Steffen Eiden
2026-05-29 17:41 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 07/27] KVM: arm64: Provide arm64 KVM " Steffen Eiden
2026-05-29 17:45 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 08/27] arm64: Extract pstate definitions from ptrace Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 09/27] KVM: arm64: Share kvm_emulate definitions Steffen Eiden
2026-05-29 18:13 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 10/27] KVM: arm64: Make some arm64 KVM code shareable Steffen Eiden
2026-05-29 19:15 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 11/27] KVM: arm64: Access elements of vcpu_gp_regs individually Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 12/27] KVM: arm64: Share reset general register code Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 13/27] KVM: arm64: Extract & share ipa size shift calculation Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 14/27] KVM: s390: Move s390 kvm code into a subdirectory Steffen Eiden
2026-05-30 6:46 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 15/27] KVM: S390: Refactor gmap Steffen Eiden
2026-05-30 6:56 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 16/27] KVM: Make device name configurable Steffen Eiden
2026-05-30 7:12 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 17/27] KVM: Remove KVM_MMIO as config option Steffen Eiden
2026-05-30 7:23 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 18/27] KVM: s390: Prepare kvm-s390 for a second kvm module Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 19/27] s390: Introduce Start Arm Execution instruction Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 20/27] KVM: s390: arm64: Introduce host definitions Steffen Eiden
2026-05-30 8:07 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 21/27] s390/hwcaps: Report SAE support as hwcap Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 22/27] KVM: s390: Add basic arm64 kvm module Steffen Eiden
2026-05-30 8:23 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 23/27] KVM: s390: arm64: Implement required functions Steffen Eiden
2026-05-29 15:50 ` [PATCH v3 24/27] KVM: s390: arm64: Implement vm/vcpu create destroy Steffen Eiden
2026-05-30 8:57 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 25/27] KVM: s390: arm64: Implement vCPU IOCTLs Steffen Eiden
2026-05-30 9:09 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 26/27] KVM: s390: arm64: Implement basic page fault handler Steffen Eiden
2026-05-30 9:22 ` sashiko-bot
2026-05-29 15:50 ` [PATCH v3 27/27] KVM: s390: arm64: Enable KVM_ARM64 config and Kbuild Steffen Eiden
2026-05-30 9:37 ` sashiko-bot [this message]
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=20260530093739.80F0D1F00893@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=kvm@vger.kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=seiden@linux.ibm.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.