* [PATCH pve-kernel v3 0/2] fix #8027: restore built-in Hyper-V VMBus
@ 2026-10-24 5:19 結友
2026-10-24 5:20 ` [PATCH pve-kernel v3 1/2] d/scripts: correctly compare namespaced ABI exports 結友
2026-10-24 5:20 ` [PATCH pve-kernel v3 2/2] fix #8027: config: enable CONFIG_HYPERV_VMBUS 結友
0 siblings, 2 replies; 3+ messages in thread
From: 結友 @ 2026-10-24 5:19 UTC (permalink / raw)
To: pve-devel
v3 is a transport-only resend; the code and commit messages are unchanged.
Gmail rewrote long lines in the earlier inline messages. The complete
format-patch files are now attached to preserve their exact bytes.
Please use this v3 series and disregard v1/v2. Sorry for the noise.
This series restores built-in VMBus support for the Proxmox VE installer
in Hyper-V Generation 2 guests. Linux 6.18 split HYPERV_VMBUS out of HYPERV;
the existing HYPERV=y override therefore no longer makes hv_vmbus built in.
The installer takes one snapshot of sysfs modalias paths, so the VMBus
storage children must be enumerated before that snapshot.
Patch 1 fixes the ABI parser first: three namespaced VMBus exports would
otherwise be reported as missing when moved from hv_vmbus into vmlinux.
Patch 2 enables HYPERV_VMBUS=y. Config-override cleanup and general build
validation changes are kept in a separate follow-up series.
Validation of this exact two-commit submission:
- Generated patches apply with git am --whitespace=error-all, with the
same resulting tree. Perl syntax and all 12 ABI regression tests pass.
- Clean complete amd64 make deb succeeds for the fixed and modular
control builds in Debian trixie with rustc 1.94.1 and pahole 1.30.
CONFIG_RUST and BTF are enabled. Both have the same existing lintian
perf-bench man-page warning; no build or lintian errors.
- Strict fresh-build ABI checks (SKIPABI=0, empty blacklist) preserve all
32,726 symbols, CRCs, export types and namespaces. The fixed build has
only the expected 47 VMBus provider moves into vmlinux.
- Gen2 A/B test: the fresh modular control reproduces ISO-not-found;
the fixed ISO auto-discovers storage on three cold boots, completes
installation, and passes three installed disk-only cold boots.
/init is unchanged and hv_storvsc is not manually preloaded.
- The installed image hash matches the build artifact. Storage I/O,
persistent data across cold boots, SSH/network, ZFS module loading
and PVE services pass on Gen2 and non-Hyper-V QEMU/KVM.
- QEMU/KVM also passes complete installation, two installed cold boots
and installation of the newly built headers and perf packages.
- Hyper-V Gen1 passes complete BIOS installation, two installed cold
boots, persistent disk I/O, networking and ZFS module loading.
- arm64: full native-emulated Debian package build and minimal QEMU
initramfs boot, virtio ext4 I/O and networking pass.
Validation limits:
- No arm64 Hyper-V host was available. arm64 QEMU tests do not cover
Hyper-V on arm64 or a complete Proxmox VE arm64 installation.
- arm64 QEMU directly boots the verified packaged EFI zboot payload;
the EFI firmware entry path is not tested. There is no previous arm64
ABI or firmware baseline in this repository, so those comparisons
were skipped by the standard build rules.
- Hyper-V tests used unsigned test kernels with Secure Boot disabled.
Base: current pve-kernel master at 78f3d3e2f3ce28c51b80919bc3fc35a399ddb3c7.
Bug: https://bugzilla.proxmox.com/show_bug.cgi?id=8027
結友 (2):
d/scripts: correctly compare namespaced ABI exports
fix #8027: config: enable CONFIG_HYPERV_VMBUS
.gitignore | 1 +
README | 13 +++
debian/rules.d/config-common.opts | 1 +
debian/scripts/abi-check | 56 +++++++++---
debian/tests/test_abi_check.py | 140 ++++++++++++++++++++++++++++++
5 files changed, 198 insertions(+), 13 deletions(-)
create mode 100644 debian/tests/test_abi_check.py
base-commit: 78f3d3e2f3ce28c51b80919bc3fc35a399ddb3c7
--
2.56.0.windows.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH pve-kernel v3 1/2] d/scripts: correctly compare namespaced ABI exports
2026-10-24 5:19 [PATCH pve-kernel v3 0/2] fix #8027: restore built-in Hyper-V VMBus 結友
@ 2026-10-24 5:20 ` 結友
2026-10-24 5:20 ` [PATCH pve-kernel v3 2/2] fix #8027: config: enable CONFIG_HYPERV_VMBUS 結友
1 sibling, 0 replies; 3+ messages in thread
From: 結友 @ 2026-10-24 5:20 UTC (permalink / raw)
To: pve-devel
abi-generate emits a different field order for namespaced exports. Parse
both layouts explicitly so the module name does not become part of the
symbol name. Otherwise, building hv_vmbus into vmlinux falsely reports
three existing namespaced exports as missing.
Compare the actual export type and namespace, preserving hash and missing
symbol checks and symbol/module blacklists. Reject added or changed
namespace requirements, malformed entries and duplicate symbols. Fix the
export-type diagnostic's printf argument separator.
Add 12 ABI regression tests, including end-to-end abi-generate output,
relocation, hash changes, GPL restrictions, namespaces and skip handling.
Document the check and test command, and ignore Python bytecode caches.
All 12 tests pass under WSL2 Ubuntu 24.04. Rechecking the existing
7.0.14-26-pve build artifacts with SKIPABI=0 preserves all 32,726 symbols,
their CRCs and export types, with only the expected 47 VMBus relocations.
Signed-off-by: 結友 <miagetegorann@gmail.com>
---
.gitignore | 1 +
README | 8 ++
debian/scripts/abi-check | 56 ++++++++++---
debian/tests/test_abi_check.py | 140 +++++++++++++++++++++++++++++++++
4 files changed, 192 insertions(+), 13 deletions(-)
create mode 100644 debian/tests/test_abi_check.py
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH pve-kernel v3 2/2] fix #8027: config: enable CONFIG_HYPERV_VMBUS
2026-10-24 5:19 [PATCH pve-kernel v3 0/2] fix #8027: restore built-in Hyper-V VMBus 結友
2026-10-24 5:20 ` [PATCH pve-kernel v3 1/2] d/scripts: correctly compare namespaced ABI exports 結友
@ 2026-10-24 5:20 ` 結友
1 sibling, 0 replies; 3+ messages in thread
From: 結友 @ 2026-10-24 5:20 UTC (permalink / raw)
To: pve-devel
Linux 6.18 split the Hyper-V guest support options: CONFIG_HYPERV became a
plain bool covering only the core hypervisor support, and the VMBus bus
driver moved to the new tristate CONFIG_HYPERV_VMBUS:
-obj-$(CONFIG_HYPERV) += hv_vmbus.o
+obj-$(CONFIG_HYPERV_VMBUS) += hv_vmbus.o
(upstream 94b04355e639 ("Drivers: hv: Add CONFIG_HYPERV_VMBUS option") and
e3ec97c3abaf ("Drivers: hv: Make CONFIG_HYPERV bool"))
So the `-e CONFIG_HYPERV` added in ef257cb ("config: enable CONFIG_HYPERV")
does not build the VMBus driver into the kernel anymore. CONFIG_HYPERV_VMBUS
does default to HYPERV, but the Ubuntu config sets it to 'm' explicitly and
olddefconfig keeps that. proxmox-kernel-6.17.13-21-pve accordingly still
lists kernel/drivers/hv/hv_vmbus.ko in modules.builtin, while 7.0.2-6-pve
and 7.0.14-25-pve ship it as a module.
That breaks installing Proxmox VE in a Hyper-V Generation 2 VM, where the
storage controller is a VMBus device: VMBus devices only appear in sysfs
once hv_vmbus has been probed. The installer initrd collects the list of
/sys/devices/**/modalias once, before loading the modules discovered
through those aliases. It loads hv_vmbus through the ACPI VMBus node,
but never sees the vmbus: aliases of its children. hv_storvsc therefore
stays unloaded, no /dev/sr0 shows up and the installation aborts with
"no device with valid ISO found". Accordingly the 9.2 ISO fails, while
the 9.1 one with its 6.17 kernel works.
With hv_vmbus built in again, the VMBus children are already enumerated by
the time the initrd runs, so that single modalias scan picks up hv_storvsc
on its own.
Record in the README why it has to be built in rather than modular.
Signed-off-by: 結友 <miagetegorann@gmail.com>
---
README | 5 +++++
debian/rules.d/config-common.opts | 1 +
2 files changed, 6 insertions(+)
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-24 5:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-24 5:19 [PATCH pve-kernel v3 0/2] fix #8027: restore built-in Hyper-V VMBus 結友
2026-10-24 5:20 ` [PATCH pve-kernel v3 1/2] d/scripts: correctly compare namespaced ABI exports 結友
2026-10-24 5:20 ` [PATCH pve-kernel v3 2/2] fix #8027: config: enable CONFIG_HYPERV_VMBUS 結友
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox