From: Paolo Bonzini <pbonzini@redhat.com>
To: Sergio Andres Gomez Del Real <sergio.g.delreal@gmail.com>,
qemu-devel@nongnu.org
Cc: stefanha@gmail.com
Subject: Re: [Qemu-devel] [PATCH v4 00/14] add support for Hypervisor.framework in QEMU
Date: Tue, 3 Oct 2017 15:47:06 +0200 [thread overview]
Message-ID: <be749b52-b0f9-64ef-bf9d-606df0609a30@redhat.com> (raw)
In-Reply-To: <20170913090522.4022-1-Sergio.G.DelReal@gmail.com>
On 13/09/2017 11:05, Sergio Andres Gomez Del Real wrote:
> ================
> Changes in v4:
> (1) Use g_new0 instead of g_malloc.
> (2) hvf TODO's in cpu.c explained: in-kernel irqchip.
> (3) Introduce ins_len field in patch where actually used.
> (4) Remove outdated comment "/* Definition of hvf_state is here */"
> (5) Treat vcpu_dirty as boolean throughout.
> (6) checkpatch.pl patch only does styling changes.
> (8) Add comment documenting meaning of -1 returned by
> apic_get_highest_priority_irr.
> (9) Add TODO to move hvf's synchronization functions inside
> cpu_synchronize_*, along with kvm's and hax's.
> ================
Thanks Sergio, this is a good start. I have done a few more cleanup and
sent my patches which, however, I could not test. In any case, it seems
feasible to get this done for 2.11!
Regards,
Paolo
> ================
> Changes in v3:
> (1) Fixed licensing issues in patch 3.
> (2) Revert to late adding of compilation rules in Makefile.objs (patch 8/14);
> files aren't ready to compile earlier.
> (3) Make a single patch just for fixing style (patch 4/14).
> (4) Fix data type for hvf_fd field.
> (5) Add comment that return value of -1 in apic function added in 7/14 means
> "no interrupt".
> ================
>
> ================
> Changes in v2:
> (1) Removed legacy option "-enable-hvf" in favor of "-M accel=hvf"
> (2) Added missing copyright headers; replace fprintfs for error_report;
> improved commit description.
> (3) Moved patch that adds compilation rules in Makefile.objs right after
> the patch that adds the new files from Google's repo.
> (4) Removed conditional macros from cpus.c and cpu.c
> (5) Moved patch that fixes coding style to patch # 3
> (6) Fix commit message in apic patch
> (7) Squash some commits to avoid code churn
> ================
>
> The following patchset adds to QEMU the supporting for macOS's native
> hypervisor, Hypervisor.framework (hvf). The code base is taken from
> Google's Android emulator at
> https://android.googlesource.com/platform/external/qemu/+/emu-master-dev.
> Notably missing is support for live migration.
>
> Apart from general code refactoring, some additional features were implemented:
> retrieve the set of features supported by host cpu and hvf (cpuid);
> dirty page tracking for VGA memory area; reimplementation of the event
> injection mechanism to allow injection of exceptions during vmexits, which is
> exemplified by the injection of a GP fault when the guest vmexits due to
> execution of the vmcall instruction; changing the emulator's use of CPUState
> structure in favor of CPUX86State, so as to in the future remove data structures
> that are uselessly specific to hvf and unified some of the state between kvm/tcg
> and hvf.
> Some features initially planned to implement that didn't make it include:
> page fault handling in the emulator and implementing the dummy_signal to handle
> the SIG_IPI signal without race conditions. Hopefully these can be implemented
> in the near future.
> Event injection was tested through the eventinj kvm test. The latest Debian and
> Damn Small Linux images were executed, although by now ways it was an
> exhaustive testing.
>
> Sergio Andres Gomez Del Real (14):
> hvf: add support for Hypervisor.framework in the configure script
> hvf: add code base from Google's QEMU repository
> hvf: fix licensing issues; isolate task handling code (GPL v2-only)
> hvf: run hvf code through checkpatch.pl and fix style issues
> hvf: add code to cpus.c and do refactoring in preparation for
> compiling
> hvf: handle fields from CPUState and CPUX86State
> apic: add function to apic that will be used by hvf
> hvf: add compilation rules to Makefile.objs
> hvf: use new helper functions for put/get xsave
> hvf: implement hvf_get_supported_cpuid
> hvf: refactor cpuid code
> hvf: implement vga dirty page tracking
> hvf: refactor event injection code for hvf
> hvf: inject General Protection Fault when vmexit through vmcall
>
> configure | 38 +
> cpus.c | 89 ++
> hw/intc/apic.c | 12 +
> include/hw/i386/apic.h | 1 +
> include/qom/cpu.h | 2 +
> include/sysemu/hvf.h | 181 +++
> qemu-options.hx | 10 +-
> target/i386/Makefile.objs | 1 +
> target/i386/cpu-qom.h | 4 +-
> target/i386/cpu.c | 80 +-
> target/i386/cpu.h | 34 +-
> target/i386/hvf-all.c | 963 +++++++++++++++
> target/i386/hvf-i386.h | 50 +
> target/i386/hvf-utils/Makefile.objs | 1 +
> target/i386/hvf-utils/README.md | 7 +
> target/i386/hvf-utils/vmcs.h | 371 ++++++
> target/i386/hvf-utils/vmx.h | 222 ++++
> target/i386/hvf-utils/x86.c | 184 +++
> target/i386/hvf-utils/x86.h | 394 +++++++
> target/i386/hvf-utils/x86_cpuid.c | 417 +++++++
> target/i386/hvf-utils/x86_cpuid.h | 52 +
> target/i386/hvf-utils/x86_decode.c | 2186 +++++++++++++++++++++++++++++++++++
> target/i386/hvf-utils/x86_decode.h | 325 ++++++
> target/i386/hvf-utils/x86_descr.c | 124 ++
> target/i386/hvf-utils/x86_descr.h | 55 +
> target/i386/hvf-utils/x86_emu.c | 1536 ++++++++++++++++++++++++
> target/i386/hvf-utils/x86_emu.h | 49 +
> target/i386/hvf-utils/x86_flags.c | 333 ++++++
> target/i386/hvf-utils/x86_flags.h | 243 ++++
> target/i386/hvf-utils/x86_gen.h | 53 +
> target/i386/hvf-utils/x86_mmu.c | 273 +++++
> target/i386/hvf-utils/x86_mmu.h | 45 +
> target/i386/hvf-utils/x86_task.c | 201 ++++
> target/i386/hvf-utils/x86_task.h | 18 +
> target/i386/hvf-utils/x86hvf.c | 463 ++++++++
> target/i386/hvf-utils/x86hvf.h | 39 +
> target/i386/kvm.c | 2 -
> 37 files changed, 9025 insertions(+), 33 deletions(-)
> create mode 100644 include/sysemu/hvf.h
> create mode 100644 target/i386/hvf-all.c
> create mode 100644 target/i386/hvf-i386.h
> create mode 100644 target/i386/hvf-utils/Makefile.objs
> create mode 100644 target/i386/hvf-utils/README.md
> create mode 100644 target/i386/hvf-utils/vmcs.h
> create mode 100644 target/i386/hvf-utils/vmx.h
> create mode 100644 target/i386/hvf-utils/x86.c
> create mode 100644 target/i386/hvf-utils/x86.h
> create mode 100644 target/i386/hvf-utils/x86_cpuid.c
> create mode 100644 target/i386/hvf-utils/x86_cpuid.h
> create mode 100644 target/i386/hvf-utils/x86_decode.c
> create mode 100644 target/i386/hvf-utils/x86_decode.h
> create mode 100644 target/i386/hvf-utils/x86_descr.c
> create mode 100644 target/i386/hvf-utils/x86_descr.h
> create mode 100644 target/i386/hvf-utils/x86_emu.c
> create mode 100644 target/i386/hvf-utils/x86_emu.h
> create mode 100644 target/i386/hvf-utils/x86_flags.c
> create mode 100644 target/i386/hvf-utils/x86_flags.h
> create mode 100644 target/i386/hvf-utils/x86_gen.h
> create mode 100644 target/i386/hvf-utils/x86_mmu.c
> create mode 100644 target/i386/hvf-utils/x86_mmu.h
> create mode 100644 target/i386/hvf-utils/x86_task.c
> create mode 100644 target/i386/hvf-utils/x86_task.h
> create mode 100644 target/i386/hvf-utils/x86hvf.c
> create mode 100644 target/i386/hvf-utils/x86hvf.h
>
prev parent reply other threads:[~2017-10-03 13:47 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-13 9:05 [Qemu-devel] [PATCH v4 00/14] add support for Hypervisor.framework in QEMU Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 01/14] hvf: add support for Hypervisor.framework in the configure script Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 02/14] hvf: add code base from Google's QEMU repository Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 03/14] hvf: fix licensing issues; isolate task handling code (GPL v2-only) Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 04/14] hvf: run hvf code through checkpatch.pl and fix style issues Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 05/14] hvf: add code to cpus.c and do refactoring in preparation for compiling Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 07/14] apic: add function to apic that will be used by hvf Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 08/14] hvf: add compilation rules to Makefile.objs Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 09/14] hvf: use new helper functions for put/get xsave Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 10/14] hvf: implement hvf_get_supported_cpuid Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 11/14] hvf: refactor cpuid code Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 12/14] hvf: implement vga dirty page tracking Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 13/14] hvf: refactor event injection code for hvf Sergio Andres Gomez Del Real
2017-09-13 9:05 ` [Qemu-devel] [PATCH v4 14/14] hvf: inject General Protection Fault when vmexit through vmcall Sergio Andres Gomez Del Real
2017-10-03 13:47 ` Paolo Bonzini [this message]
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=be749b52-b0f9-64ef-bf9d-606df0609a30@redhat.com \
--to=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sergio.g.delreal@gmail.com \
--cc=stefanha@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).