All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/5] hvf: stability fixes for HVF
@ 2019-12-02 23:55 Cameron Esfahani via
  2019-12-02 23:55 ` [PATCH v3 1/5] hvf: non-RAM, non-ROMD memory ranges are now correctly mapped in Cameron Esfahani via
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Cameron Esfahani via @ 2019-12-02 23:55 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini

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.
- Previous implementation in hvf_inject_interrupts() would always inject
  VMCS_INTR_T_SWINTR even when VMCS_INTR_T_HWINTR was required.  Now
  correctly determine when VMCS_INTR_T_HWINTR is appropriate versus
  VMCS_INTR_T_SWINTR.  Under heavy loads, interrupts got misrouted.

Changes in v3:
- Change previous code which saved interrupt/exception type in
  hvf_store_events() to inject later in hvf_inject_interrupts().
  Now, hvf_inject_interrupts() will correctly determine when it's appropriate
  to inject VMCS_INTR_T_HWINTR versus VMCS_INTR_T_SWINTR.  From feedback by
  Paolo Bonzini to make code more similar to KVM model.

Changes in v2:
- Fix code style errors.

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: correctly inject VMCS_INTR_T_HWINTR versus VMCS_INTR_T_SWINTR.

 target/i386/hvf/hvf.c        | 65 ++++++++++++++++++++++++++----------
 target/i386/hvf/vmx.h        | 18 +++++-----
 target/i386/hvf/x86_decode.c | 64 +++++++++++++++++++----------------
 target/i386/hvf/x86_decode.h | 20 +++++------
 target/i386/hvf/x86_emu.c    |  3 --
 target/i386/hvf/x86hvf.c     | 18 +++++-----
 6 files changed, 112 insertions(+), 76 deletions(-)

-- 
2.24.0



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2019-12-03  9:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-02 23:55 [PATCH v3 0/5] hvf: stability fixes for HVF Cameron Esfahani via
2019-12-02 23:55 ` [PATCH v3 1/5] hvf: non-RAM, non-ROMD memory ranges are now correctly mapped in Cameron Esfahani via
2019-12-02 23:55 ` [PATCH v3 2/5] hvf: remove TSC synchronization code because it isn't fully complete Cameron Esfahani via
2019-12-02 23:55 ` [PATCH v3 3/5] hvf: correctly handle REX prefix in relation to legacy prefixes Cameron Esfahani via
2019-12-02 23:55 ` [PATCH v3 4/5] hvf: more accurately match SDM when setting CR0 and PDPTE registers Cameron Esfahani via
2019-12-02 23:55 ` [PATCH v3 5/5] hvf: correctly inject VMCS_INTR_T_HWINTR versus VMCS_INTR_T_SWINTR Cameron Esfahani via
2019-12-03  9:14 ` [PATCH v3 0/5] hvf: stability fixes for HVF Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.