This change adds support for injecting legacy PIC interrupts for mshv-accelerated x86 guests. This is relevant e.g. for guest that rely on a PIT in early boot (e.g. ISOLINUX).
The series carries two provisional patches for feature to work: - target/i386/mshv: fix vCPU run result contract this has been posted earlier as a standalone patch, but it is required here, so we might be able to drop it in an upcoming revision if the standalone fix is merged earlier. - accel/mshv: do not coalesce vCPU kicks this is a workaround for a race condition that currently exists in the upstream mshv driver, which can lead to interruption requests being lost. A new CANCEL_VP ioctl is being tested. It will address this issue, so we can drop this workaround once it the new ioctl is available upstream. Magnus Kulke (4): target/i386/mshv: fix vCPU run result contract accel/mshv: stop VM on vCPU execution errors target/i386/mshv: deliver legacy PIC interrupts accel/mshv: do not coalesce vCPU kicks accel/mshv/mshv-all.c | 26 ++++- hw/i386/x86-cpu.c | 9 +- include/hw/hyperv/hvgdk_mini.h | 42 +++++++- include/system/mshv_int.h | 1 + meson.build | 1 + target/i386/mshv/mshv-cpu.c | 183 +++++++++++++++++++++++++++++---- target/i386/mshv/trace-events | 7 ++ target/i386/mshv/trace.h | 2 + 8 files changed, 240 insertions(+), 31 deletions(-) create mode 100644 target/i386/mshv/trace-events create mode 100644 target/i386/mshv/trace.h -- 2.34.1
