From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Alexander Graf <agraf@csgraf.de>, qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
Eduardo Habkost <ehabkost@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
Cameron Esfahani <dirty@apple.com>,
Roman Bolshakov <r.bolshakov@yadro.com>,
qemu-arm@nongnu.org, Claudio Fontana <cfontana@suse.de>,
Frank Yang <lfy@google.com>, Paolo Bonzini <pbonzini@redhat.com>,
Peter Collingbourne <pcc@google.com>
Subject: Re: [PATCH v6 03/11] hvf: Move common code out
Date: Thu, 21 Jan 2021 08:26:35 +0100 [thread overview]
Message-ID: <e1054d19-f047-bbaf-0d4d-20b8df97db44@redhat.com> (raw)
In-Reply-To: <20210120224444.71840-4-agraf@csgraf.de>
Hi Alexander,
On 1/20/21 11:44 PM, Alexander Graf wrote:
> Until now, Hypervisor.framework has only been available on x86_64 systems.
> With Apple Silicon shipping now, it extends its reach to aarch64. To
> prepare for support for multiple architectures, let's move common code out
> into its own accel directory.
>
> Signed-off-by: Alexander Graf <agraf@csgraf.de>
> Reviewed-by: Roman Bolshakov <r.bolshakov@yadro.com>
> Tested-by: Roman Bolshakov <r.bolshakov@yadro.com>
>
> ---
>
> v3 -> v4:
>
> - Use hv.h instead of Hypervisor.h for 10.15 compat
> - Remove manual inclusion of Hypervisor.h in common .c files
> ---
> MAINTAINERS | 8 +
> accel/hvf/hvf-all.c | 54 +++++
> accel/hvf/hvf-cpus.c | 462 ++++++++++++++++++++++++++++++++++++
> accel/hvf/meson.build | 7 +
> accel/meson.build | 1 +
> include/sysemu/hvf_int.h | 54 +++++
> target/i386/hvf/hvf-cpus.c | 131 ----------
> target/i386/hvf/hvf-cpus.h | 25 --
> target/i386/hvf/hvf-i386.h | 33 +--
> target/i386/hvf/hvf.c | 360 +---------------------------
> target/i386/hvf/meson.build | 1 -
> target/i386/hvf/x86hvf.c | 11 +-
> target/i386/hvf/x86hvf.h | 2 -
> 13 files changed, 596 insertions(+), 553 deletions(-)
> create mode 100644 accel/hvf/hvf-all.c
> create mode 100644 accel/hvf/hvf-cpus.c
> create mode 100644 accel/hvf/meson.build
> create mode 100644 include/sysemu/hvf_int.h
> delete mode 100644 target/i386/hvf/hvf-cpus.c
> delete mode 100644 target/i386/hvf/hvf-cpus.h
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 3216387521..e589ec02e0 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -448,7 +448,15 @@ M: Roman Bolshakov <r.bolshakov@yadro.com>
> W: https://wiki.qemu.org/Features/HVF
> S: Maintained
> F: target/i386/hvf/
> +
> +HVF
> +M: Cameron Esfahani <dirty@apple.com>
> +M: Roman Bolshakov <r.bolshakov@yadro.com>
> +W: https://wiki.qemu.org/Features/HVF
> +S: Maintained
> +F: accel/hvf/
> F: include/sysemu/hvf.h
> +F: include/sysemu/hvf_int.h
>
> WHPX CPUs
> M: Sunil Muthuswamy <sunilmut@microsoft.com>
> diff --git a/accel/hvf/hvf-all.c b/accel/hvf/hvf-all.c
> new file mode 100644
> index 0000000000..5b415eb0ed
> --- /dev/null
> +++ b/accel/hvf/hvf-all.c
> @@ -0,0 +1,54 @@
> +/*
> + * QEMU Hypervisor.framework support
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2. See
> + * the COPYING file in the top-level directory.
> + *
> + * Contributions after 2012-01-13 are licensed under the terms of the
> + * GNU GPL, version 2 or (at your option) any later version.
Maybe start with GPLv2+ directly?
> diff --git a/include/sysemu/hvf_int.h b/include/sysemu/hvf_int.h
> new file mode 100644
> index 0000000000..69de46db7d
> --- /dev/null
> +++ b/include/sysemu/hvf_int.h
> @@ -0,0 +1,54 @@
> +/*
> + * QEMU Hypervisor.framework (HVF) support
> + *
> + * This work is licensed under the terms of the GNU GPL, version 2 or later.
> + * See the COPYING file in the top-level directory.
> + *
> + */
> +
> +/* header to be included in HVF-specific code */
Can we have this header local to accel/hvf/ ?
Otherwise:
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> +
> +#ifndef HVF_INT_H
> +#define HVF_INT_H
> +
> +#include <Hypervisor/hv.h>
> +
> +/* hvf_slot flags */
> +#define HVF_SLOT_LOG (1 << 0)
> +
> +typedef struct hvf_slot {
> + uint64_t start;
> + uint64_t size;
> + uint8_t *mem;
> + int slot_id;
> + uint32_t flags;
> + MemoryRegion *region;
> +} hvf_slot;
> +
> +typedef struct hvf_vcpu_caps {
> + uint64_t vmx_cap_pinbased;
> + uint64_t vmx_cap_procbased;
> + uint64_t vmx_cap_procbased2;
> + uint64_t vmx_cap_entry;
> + uint64_t vmx_cap_exit;
> + uint64_t vmx_cap_preemption_timer;
> +} hvf_vcpu_caps;
> +
> +struct HVFState {
> + AccelState parent;
> + hvf_slot slots[32];
> + int num_slots;
> +
> + hvf_vcpu_caps *hvf_caps;
> +};
> +extern HVFState *hvf_state;
> +
> +void assert_hvf_ok(hv_return_t ret);
> +int hvf_get_registers(CPUState *cpu);
> +int hvf_put_registers(CPUState *cpu);
> +int hvf_arch_init_vcpu(CPUState *cpu);
> +void hvf_arch_vcpu_destroy(CPUState *cpu);
> +int hvf_vcpu_exec(CPUState *cpu);
> +hvf_slot *hvf_find_overlap_slot(uint64_t, uint64_t);
> +
> +#endif
next prev parent reply other threads:[~2021-01-21 7:28 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-20 22:44 [PATCH v6 00/11] hvf: Implement Apple Silicon Support Alexander Graf
2021-01-20 22:44 ` [PATCH v6 01/11] hvf: Add hypervisor entitlement to output binaries Alexander Graf
2021-02-23 11:56 ` Akihiko Odaki
2021-02-23 15:07 ` Paolo Bonzini
2021-02-25 0:06 ` [PATCH] hvf: Sign the code after installation Akihiko Odaki
2021-02-25 13:48 ` Paolo Bonzini
2021-02-26 4:58 ` Akihiko Odaki
2021-01-20 22:44 ` [PATCH v6 02/11] hvf: x86: Remove unused definitions Alexander Graf
2021-01-21 7:27 ` Philippe Mathieu-Daudé
2021-02-09 10:07 ` Roman Bolshakov
2021-01-20 22:44 ` [PATCH v6 03/11] hvf: Move common code out Alexander Graf
2021-01-21 7:26 ` Philippe Mathieu-Daudé [this message]
2021-05-16 14:12 ` Alexander Graf
2021-01-28 15:23 ` Peter Maydell
2021-01-20 22:44 ` [PATCH v6 04/11] hvf: Introduce hvf vcpu struct Alexander Graf
2021-01-20 22:44 ` [PATCH v6 05/11] arm: Set PSCI to 0.2 for HVF Alexander Graf
2021-01-28 15:25 ` Peter Maydell
2021-01-20 22:44 ` [PATCH v6 06/11] hvf: Simplify post reset/init/loadvm hooks Alexander Graf
2021-01-28 15:28 ` Peter Maydell
2021-02-10 21:34 ` Alexander Graf
2021-01-20 22:44 ` [PATCH v6 07/11] hvf: Add Apple Silicon support Alexander Graf
2021-01-28 15:52 ` Peter Maydell
2021-02-10 22:20 ` Alexander Graf
2021-02-10 22:39 ` Peter Maydell
2021-02-11 13:06 ` Alexander Graf
2021-02-11 13:16 ` Peter Maydell
2021-01-20 22:44 ` [PATCH v6 08/11] arm: Add Hypervisor.framework build target Alexander Graf
2021-01-28 16:00 ` Peter Maydell
2021-01-20 22:44 ` [PATCH v6 09/11] arm/hvf: Add a WFI handler Alexander Graf
2021-01-28 16:25 ` Peter Maydell
2021-02-10 20:25 ` Peter Collingbourne
2021-02-10 22:17 ` Peter Maydell
2021-02-11 0:33 ` Alexander Graf
2021-03-21 16:28 ` Alexander Graf
2021-01-20 22:44 ` [PATCH v6 10/11] hvf: arm: Add support for GICv3 Alexander Graf
2021-01-28 16:40 ` Peter Maydell
2021-03-21 16:36 ` Alexander Graf
2021-01-20 22:44 ` [PATCH v6 11/11] hvf: arm: Implement -cpu host Alexander Graf
2021-01-28 16:55 ` Peter Maydell
2021-05-16 11:16 ` Alexander Graf
2021-05-16 16:12 ` Peter Maydell
2021-01-20 23:03 ` [PATCH v6 00/11] hvf: Implement Apple Silicon Support no-reply
2021-01-28 16:55 ` Stefan Weil
2021-01-28 16:59 ` Peter Maydell
2021-01-28 17:12 ` Roman Bolshakov
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=e1054d19-f047-bbaf-0d4d-20b8df97db44@redhat.com \
--to=philmd@redhat.com \
--cc=agraf@csgraf.de \
--cc=cfontana@suse.de \
--cc=dirty@apple.com \
--cc=ehabkost@redhat.com \
--cc=lfy@google.com \
--cc=pbonzini@redhat.com \
--cc=pcc@google.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=r.bolshakov@yadro.com \
--cc=richard.henderson@linaro.org \
/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).