Hello, I am reporting a bare-metal Xen dom0 boot regression seen with Linux 6.18.52. On affected systems, Linux 6.18.51 boots successfully as Xen dom0 on bare metal, while Linux 6.18.52 consistently black-screens before dom0 userspace/networking comes up. #regzbot introduced: v6.18.51..v6.18.52 #regzbot title: ACPI processor/cpuidle lifecycle change breaks bare-metal Xen dom0 boot #regzbot link: https://gitlab.alpinelinux.org/alpine/aports/-/work_items/18447 Tested results: - Linux 6.18.51-r0, Xen dom0, bare metal: boots - Linux 6.18.52-r0, Xen dom0, bare metal: black screen before userspace/network - Linux 6.18.52-r0, Xen domU: boots - Linux 6.18.52-r0 with Xenbus notifier change reverted: still fails - Linux 6.18.52-r0 with only ACPI processor/cpuidle changes reverted: boots - Linux 6.18.52-r0 with refined ACPI idle lifecycle patch: boots Affected hardware tested: - Intel Core i7-4785T thin mini-ITX, 16 GB DDR3 - Intel N305 thin mini-ITX, 16 GB DDR5 - Supermicro / Intel Xeon E5-1650, 32 GB DDR3 The successful boot used the regular Xen command line: multiboot2 /boot/xen.gz cpufreq=xen:performance module2 /boot/vmlinuz-lts modules=loop,squashfs,sd-mod,usb-storage,xfs quiet module2 /boot/initramfs-lts No IOMMU workaround, serial console parameter, debug parameter, storage workaround, or Xen command-line change was required. The regression was narrowed to ACPI processor/cpuidle changes between 6.18.51 and 6.18.52, specifically the idle-driver registration lifecycle. The working 6.18.51-style behavior registers the ACPI idle driver from acpi_processor_power_init() and unregisters it from acpi_processor_power_exit(). The failing 6.18.52 behavior registers the ACPI idle driver globally from acpi_processor_driver_init() before driver_register(). A first ACPI-only revert confirmed the regression source. A refined candidate patch was then prepared to preserve the working ACPI idle lifecycle while keeping unrelated 6.18.52 safety fixes, including: - _LPI bounds checks - cpufreq notifier cleanup on acpi_processor_driver_init() failure The refined candidate patch modifies only: - drivers/acpi/processor_driver.c - drivers/acpi/processor_idle.c - include/acpi/processor.h It does not modify Xen, Xenbus, IOMMU, APIC, PCI/ASPM, intel_idle, syscore, USB, storage, XFS, networking, printk, or the cpuidle core API. The earlier cpuidle_disabled() workaround is not included. The refined patch has been rebuilt and boot-tested successfully as Xen dom0 on bare metal on TRINITY-EDGE. This issue is currently visible to Alpine users because the Alpine v3.24 stable repository contains: alpine-release 3.24.2-r0 linux-lts 6.18.52-r0 Systems tracking Alpine 3.24 stable / latest-stable may therefore receive Linux 6.18.52 as the default LTS kernel. Attachments: - revert-acpi-idle-registration-lifecycle.patch - APKBUILD The original Alpine report is here: https://gitlab.alpinelinux.org/alpine/aports/-/work_items/18447 Please let me know if this should be submitted as a formal patch with Signed-off-by, or if there is a better upstream fix/dependency that should be backported instead. Regards, Tony BONNIN