The following patches fix stability issues with running QEMU on Apple Hypervisor Framework (HVF): - non-RAM, non-ROMD areas need to trap so accesses can be correctly emulated. - Current TSC synchronization implementation is insufficient: when running with more than 1 core, TSC values can go backwards. Until a correct implementation can be written, remove calls to hv_vm_sync_tsc(). Pass through TSC to guest OS. - Fix REX emulation in relation to legacy prefixes. - More correctly match SDM when setting CR0 and PDPTE registers. - Save away exception type as well as vector in hvf_store_events() so they can be correctly reinjected in hvf_inject_interrupts(). Under heavy loads, exceptions got misrouted.
Cameron Esfahani (5): hvf: non-RAM, non-ROMD memory ranges are now correctly mapped in hvf: remove TSC synchronization code because it isn't fully complete hvf: correctly handle REX prefix in relation to legacy prefixes hvf: more accurately match SDM when setting CR0 and PDPTE registers hvf: save away type as well as vector so we can reinject them target/i386/hvf/hvf.c | 74 +++++++++++++++++++++++++----------- target/i386/hvf/vmx.h | 18 +++++---- target/i386/hvf/x86_decode.c | 55 ++++++++++++++------------- target/i386/hvf/x86_decode.h | 16 ++++---- target/i386/hvf/x86_emu.c | 3 -- target/i386/hvf/x86hvf.c | 26 +++++-------- 6 files changed, 108 insertions(+), 84 deletions(-) -- 2.24.0