This applies on top of the "whpx: i386: bug fixes, feature probing and CPUID" series.
"target: i386: HLT type that ignores EFLAGS.IF" is probably the most worthwhile patch
here, and that not-quite-an-HLT might be what's needed to reduce CPU idle on KVM on
recent Windows versions too..
v1 -> v2:
Oops, my v1 had a bug in HV_X64_MSR_GUEST_IDLE emulation, We should not inject interrupts
after it ignoring EFLAGS.IF. That matters just for the wake from HLT.
Trapping one more CPUID for x2APIC system topology, and some more x2APIC awareness. For the
kernel-irqchip=off case, keep the hypervisor aware of the initial APIC ID we're hoosing anyways.
Based-on: <20260413205208.50643-1-mohamed@unpredictable.fr>
Mohamed Mediouni (10):
whpx: i386: set apicbase value only on success
whpx: i386: unknown MSR configurability
whpx: i386: enable GuestIdleReg enlightenment
whpx: i386: tighten APIC base validity check
whpx: i386: ignore vpassist when kernel-irqchip=off
target: i386: HLT type that ignores EFLAGS.IF
whpx: i386: add HV_X64_MSR_GUEST_IDLE when !kernel-irqchip
whpx: i386: one more CPUID
whpx: i386: some x2APIC awareness
whpx: i386: set WHvX64RegisterInitialApicId
accel/whpx/whpx-common.c | 38 +++++++++++++++++
include/system/whpx-internal.h | 1 +
target/i386/cpu.c | 10 +++--
target/i386/cpu.h | 2 +
target/i386/whpx/whpx-all.c | 77 +++++++++++++++++++++++++++++++---
target/i386/whpx/whpx-apic.c | 12 +++++-
6 files changed, 129 insertions(+), 11 deletions(-)
--
2.50.1 (Apple Git-155)