[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [Qemu-devel] [RFC PATCH 0/9] ISA 3.00 KVM guest support
From: |
Alexey Kardashevskiy |
Subject: |
Re: [Qemu-ppc] [Qemu-devel] [RFC PATCH 0/9] ISA 3.00 KVM guest support |
Date: |
Thu, 9 Feb 2017 14:21:01 +1100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0 |
On 07/02/17 13:56, Sam Bobroff wrote:
> Because KVM will soon provide the necessary infrastructure for KVM guests to
> run on POWER9 CPUs, we can now start exploiting this new functionality from
> QEMU. See:
> https://lists.ozlabs.org/pipermail/linuxppc-dev/2017-January/153433.html
>
> This work is not yet complete but it is functional and is presented for early
> review. It overlaps in some places with current work supporting the same
> guests
> under full emulation.
>
> This set aims to support only the following scenarios:
> * A POWER9 host running in radix mode, running a guest in radix mode.
> * A POWER9 host running in hash mode, running a guest in hash mode.
> * A POWER9 host running in hash mode, running a guest in legacy(+) mode.
> (+) Where legacy means that the guest does not support ISA 3.00.
>
> Hash or radix mode for the host is controlled via the "disable_radix" kernel
> command line parameter: the host will use radix unless disable_radix is given.
> For the guest it should be automatically selected to match the host.
>
> Bad legacy guests: There are some recent kernels (e.g. 4.9) that will, when
> run
> as a KVM guest and if the ibm,pa-features entry in the device tree has the
> Radix MMU bit set, attempt to initialize the MMU as if they were a host (which
> will cause them to crash). To avoid exposing this problem, the Radix MMU bit
> is removed from ibm,pa-features when a legacy guest is detected.
>
> Prerequsites:
> * This set is based on current QEMU master, but relies on some work already
> posted here:
> https://lists.gnu.org/archive/html/qemu-devel/2017-01/msg02527.html
> Specifically patches 1..4 which set up the new CPU and MMU models.
It would help if you pushed this as a tree with all prerequisites somewhere
(github?); same about the kernel which has bits which this patchset is
using. Thanks.
>
> Notes:
> * Migration/snapshots are not yet investigated.
> * If the host cannot support the guest (e.g. radix host and a legacy
> guest)
> then the guest will crash but QEMU should probably terminate with a
> descriptive message.
>
>
> Sam Bobroff (9):
> spapr: fix off-by-one error in spapr_ovec_populate_dt()
> Update headers using update-linux-headers.sh
> spapr: Add ibm,processor-radix-AP-encodings to the device tree
> target-ppc: support KVM_CAP_PPC_MMU_RADIX, KVM_CAP_PPC_MMU_HASH_V3
> spapr: Only setup HTP if necessary.
> spapr: Add h_register_process_table() hypercall
> spapr: Set ISA 3.00 radix and hash bits in OV5
> spapr: Advertise ISA 3.0 MMU features in pa_features
> spapr: Small cleanup of PPC MMU enums
>
> hw/ppc/spapr.c | 152 +++++---
> hw/ppc/spapr_hcall.c | 52 ++-
> hw/ppc/spapr_ovec.c | 2 +-
> include/hw/ppc/spapr.h | 4 +-
> include/hw/ppc/spapr_ovec.h | 6 +
> include/standard-headers/linux/input-event-codes.h | 2 +-
> include/standard-headers/linux/pci_regs.h | 8 +
> include/standard-headers/linux/virtio_ids.h | 1 +
> linux-headers/asm-arm/kvm.h | 2 +
> linux-headers/asm-arm/unistd.h | 419
> +--------------------
> linux-headers/asm-powerpc/kvm.h | 25 ++
> linux-headers/asm-powerpc/unistd.h | 1 +
> linux-headers/asm-x86/kvm_para.h | 4 +-
> linux-headers/linux/kvm.h | 11 +-
> linux-headers/linux/vfio.h | 10 +
> target/ppc/cpu-qom.h | 12 +-
> target/ppc/cpu.h | 5 +
> target/ppc/kvm.c | 66 +++-
> target/ppc/kvm_ppc.h | 13 +
> target/ppc/mmu-hash64.c | 10 +-
> target/ppc/mmu_helper.c | 67 ++--
> target/ppc/translate.c | 12 +-
> 22 files changed, 346 insertions(+), 538 deletions(-)
>
--
Alexey
- [Qemu-ppc] [RFC PATCH 8/9] spapr: Advertise ISA 3.0 MMU features in pa_features, (continued)
- [Qemu-ppc] [RFC PATCH 8/9] spapr: Advertise ISA 3.0 MMU features in pa_features, Sam Bobroff, 2017/02/06
- [Qemu-ppc] [RFC PATCH 9/9] spapr: Small cleanup of PPC MMU enums, Sam Bobroff, 2017/02/06
- [Qemu-ppc] [RFC PATCH 6/9] spapr: Add h_register_process_table() hypercall, Sam Bobroff, 2017/02/06
- [Qemu-ppc] [RFC PATCH 7/9] spapr: Set ISA 3.00 radix and hash bits in OV5, Sam Bobroff, 2017/02/06
- Re: [Qemu-ppc] [RFC PATCH 0/9] ISA 3.00 KVM guest support, David Gibson, 2017/02/08
- Re: [Qemu-ppc] [Qemu-devel] [RFC PATCH 0/9] ISA 3.00 KVM guest support,
Alexey Kardashevskiy <=