mbox series

[0/8] Improve synchronization between QEMU and HVF

Message ID 20200624225850.16982-1-r.bolshakov@yadro.com
Headers show
Series Improve synchronization between QEMU and HVF | expand

Message

Roman Bolshakov June 24, 2020, 10:58 p.m. UTC
The series is a prerequisite to implement gdbstub support for HVF and mostly
concerns improvements of cpu_synchronize_* functions wrt to HVF and addresses
old TODO's in the related code.

Unfortunately live snapshots don't seem to work yet but they don't work with
tcg (on macOS) either.

Roman Bolshakov (8):
  i386: hvf: Set env->eip in macvm_set_rip()
  i386: hvf: Move synchronize functions to sysemu
  i386: hvf: Add hvf_cpu_synchronize_pre_loadvm()
  i386: hvf: Implement CPU kick
  i386: hvf: Don't duplicate register reset
  i386: hvf: Drop hvf_reset_vcpu()
  i386: hvf: Clean up synchronize functions
  MAINTAINERS: Add Cameron as HVF co-maintainer

 MAINTAINERS               |   2 +
 cpus.c                    |  25 +++---
 include/hw/core/cpu.h     |   2 +-
 include/sysemu/hvf.h      |   3 +-
 include/sysemu/hw_accel.h |  13 ++++
 target/i386/cpu.c         |   3 -
 target/i386/hvf/hvf.c     | 159 ++++++++++++--------------------------
 target/i386/hvf/vmx.h     |   1 +
 8 files changed, 77 insertions(+), 131 deletions(-)

Comments

Paolo Bonzini June 25, 2020, 11:08 a.m. UTC | #1
On 25/06/20 00:58, Roman Bolshakov wrote:
> The series is a prerequisite to implement gdbstub support for HVF and mostly
> concerns improvements of cpu_synchronize_* functions wrt to HVF and addresses
> old TODO's in the related code.
> 
> Unfortunately live snapshots don't seem to work yet but they don't work with
> tcg (on macOS) either.

Queued, thanks!  Synchronization of special registers is the obvious
next step (hint, hint!).

Cameron perhaps can also guide us with respect to the CPU kick race that
I mentioned in my review of patch 4.  A full fix is not possible without
help from Hypervisor.framework, but using hv_vcpu_run_until will already
tighten the window for the race.

Thanks,

Paolo