From: Cameron Esfahani via <qemu-devel@nongnu.org>
To: qemu-devel@nongnu.org
Cc: pbonzini@redhat.com
Subject: [PATCH v3 0/5] hvf: stability fixes for HVF
Date: Mon, 02 Dec 2019 15:55:36 -0800 [thread overview]
Message-ID: <cover.1575330463.git.dirty@apple.com> (raw)
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
next reply other threads:[~2019-12-02 23:58 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-02 23:55 Cameron Esfahani via [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1575330463.git.dirty@apple.com \
--to=qemu-devel@nongnu.org \
--cc=dirty@apple.com \
--cc=pbonzini@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.