Missing review: 8, 13, 22, 23 - Patches 1-11 fix migration on HVF - Patches 12-14 remove a signal race with WFI - Patches 15-18 correct guest timer frequency - Patches 20-23 add missing VTimer synchronization
Since v3: - Call qemu_real_host_page_mask/size once (rth) Since v2: - Improve host page size/mask uses (rth) - Remove cpu_test_interrupt in hvf_wfi (rth) Since v1: - Addressed Mads & Richard comments - Fixed migration by reworking memory listeners (unfortunately the current broken code has been used as base for WHPX) - Sync CNTV_CTL/CVAL_EL0 - Remove WFI racy signal implementation - Simplify PSCI Suspend (I expect the same can be done for the other hvf_psci_cpu_off() calls). - Emulate more missing registers (PMU & Monitor Dbg) >From v1: - Fix a pair of memory leak - Check a pair of return values - Mention calls which must be run on vCPU thread - Force MIDR - Use hv_vcpu_config_create/hv_vcpu_config_get_feature_reg when not running on vCPU thread - Factor hvf_handle_vmexit() / hvf_handle_exception(() out - Call hv_vcpu_run() in loop - Guard hv_vcpu_run() between cpu_exec_start/end() - Restrict ARM specific in AccelCPUState Based-on: <[email protected]> Philippe Mathieu-Daudé (14): target/i386/hvf: Use host page alignment in ept_emulation_fault() accel/hvf: Enforce host alignment in hv_vm_protect() accel/hvf: Skip WFI if CPU has work to do accel/hvf: Implement WFI without using pselect() accel/hvf: Have PSCI CPU_SUSPEND halt the vCPU accel: Introduce AccelOpsClass::cpu_target_realize() hook accel/hvf: Add hvf_arch_cpu_realize() stubs target/arm: Create GTimers *after* features finalized / accel realized target/arm/hvf: Really set Generic Timer counter frequency target/arm: Only allow disabling NEON when using TCG accel/hvf: Introduce hvf_arch_cpu_synchronize_[pre/post]exec() hooks target/i386/hvf: Flush vCPU registers once before vcpu_exec() loop target/arm/hvf: Flush vCPU registers once before vcpu_exec() loop accel/hvf: Sync CNTV_CTL_EL0 & CNTV_CVAL_EL0 Richard Henderson (9): accel/hvf: Create hvf_protect_clean_range, hvf_unprotect_dirty_range target/i386/hvf: Use hvf_unprotect_dirty_range target/i386/hvf: Use address_space_translate in ept_emulation_fault accel/hvf: Simplify hvf_log_* accel/hvf: Move hvf_log_sync to hvf_log_clear accel/hvf: Simplify hvf_set_phys_mem accel/hvf: Drop hvf_slot and hvf_find_overlap_slot accel/hvf: Remove mac_slots target/arm/hvf: Implement dirty page tracking include/accel/accel-cpu-ops.h | 1 + include/system/hvf_int.h | 26 ++-- accel/accel-common.c | 5 + accel/hvf/hvf-accel-ops.c | 21 +--- accel/hvf/hvf-all.c | 186 +++++++++-------------------- target/arm/cpu.c | 67 +++++------ target/arm/hvf/hvf.c | 217 ++++++++++++++++++++-------------- target/i386/hvf/hvf.c | 61 ++++++---- accel/hvf/trace-events | 1 + 9 files changed, 274 insertions(+), 311 deletions(-) -- 2.51.0
