All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 00/10] ARM: KVM: Support for vgic-v3
@ 2016-09-12 14:49 ` Vladimir Murzin
  0 siblings, 0 replies; 80+ messages in thread
From: Vladimir Murzin @ 2016-09-12 14:49 UTC (permalink / raw)
  To: kvmarm; +Cc: marc.zyngier, andre.przywara, linux-arm-kernel

Hi,

This is an attempt to make use vgic-v3 under arch/arm since
save-restore functionality got re-written in C and can be shared
between arm/arm64 like it has already been done for vgic-v2 and timer.

With this patches I'm able to get 32 core an AArch32 ARMv8 guest boot:

...
GICv3: CPU31: found redistributor 703 region 0:0x000000003ffd0000
CPU31: thread -1, cpu 3, socket 7, mpidr 80000703
Brought up 32 CPUs
SMP: Total of 32 processors activated (768.00 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
...

Additionally, quite lightweight test based on Self IPI guest test[1]
has been run with up to 255 cpus.

[1] http://www.spinics.net/lists/kvm/msg128974.html

Changelog:

    v3 -> v4   
       - rebased on v4.8-rc6
       - dropped hyp_data in preference to embedding the static key
         in kvm_vgic_global_state
       - GICv3 cpu sysreg mappings were moved out to separate patch
       - vgic patch was split into two: changes extract_bytes() and
         fixes for compiler's warnings
       - change for MPIDR_AFFINITY_LEVEL was dropped
       - 32-bit system register accessors were moved under
         CONFIG_CPU_CP15

    v2 -> v3
       - rebased on v4.8-rc5
       - commit messages are reworked to be more precise and clear (I
         hope so)
       - MPIDR_HWID_BITMASK is used to discard Aff3 in
         MPIDR_AFFINITY_LEVEL macro
       - cast to u64 is used instead of abuse of GENMASK_ULL while
         building value for typer register
       - static keys are used to select GIC backend
       - config option to guard ITS code is moved to separate patch

    v1 -> v2
       - rebased on v4.8-rc2
       - introduced guard for ITS code

Thanks!

Vladimir Murzin (10):
  arm64: KVM: Use static keys for selecting the GIC backend
  arm64: KVM: Move GIC accessors to arch_gicv3.h
  arm64: KVM: Move vgic-v3 save/restore to virt/kvm/arm/hyp
  KVM: arm64: vgic-its: Introduce config option to guard ITS specific
    code
  KVM: arm: vgic: Fix compiler warnings when built for 32-bit
  KVM: arm: vgic: Support 64-bit data manipulation on 32-bit host
    systems
  ARM: Introduce MPIDR_LEVEL_SHIFT macro
  ARM: Move system register accessors to asm/cp15.h
  ARM: gic-v3: Introduce 32-to-64-bit mappings for GICv3 cpu registers
  ARM: KVM: Support vgic-v3

 arch/arm/include/asm/arch_gicv3.h                 |   91 +++++++++++++++++----
 arch/arm/include/asm/cp15.h                       |   15 ++++
 arch/arm/include/asm/cputype.h                    |    1 +
 arch/arm/include/asm/kvm_asm.h                    |    3 +
 arch/arm/include/asm/kvm_host.h                   |    5 ++
 arch/arm/include/asm/kvm_hyp.h                    |   18 +---
 arch/arm/include/uapi/asm/kvm.h                   |    7 ++
 arch/arm/kvm/Makefile                             |    2 +
 arch/arm/kvm/coproc.c                             |   35 ++++++++
 arch/arm/kvm/hyp/Makefile                         |    1 +
 arch/arm/kvm/hyp/switch.c                         |   12 ++-
 arch/arm64/include/asm/arch_gicv3.h               |   13 +++
 arch/arm64/kvm/Kconfig                            |    4 +-
 arch/arm64/kvm/hyp/Makefile                       |    2 +-
 arch/arm64/kvm/hyp/switch.c                       |   21 ++---
 include/kvm/arm_vgic.h                            |   12 +--
 {arch/arm64/kvm => virt/kvm/arm}/hyp/vgic-v3-sr.c |   13 ---
 virt/kvm/arm/vgic/vgic-init.c                     |    4 +
 virt/kvm/arm/vgic/vgic-kvm-device.c               |   11 +--
 virt/kvm/arm/vgic/vgic-mmio-v3.c                  |    8 +-
 virt/kvm/arm/vgic/vgic-mmio.c                     |    2 -
 virt/kvm/arm/vgic/vgic-mmio.h                     |    4 +-
 virt/kvm/arm/vgic/vgic.c                          |    2 +-
 virt/kvm/arm/vgic/vgic.h                          |   54 +-----------
 24 files changed, 205 insertions(+), 135 deletions(-)
 rename {arch/arm64/kvm => virt/kvm/arm}/hyp/vgic-v3-sr.c (96%)

-- 
1.7.9.5

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

end of thread, other threads:[~2016-09-22 10:01 UTC | newest]

Thread overview: 80+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-12 14:49 [PATCH v4 00/10] ARM: KVM: Support for vgic-v3 Vladimir Murzin
2016-09-12 14:49 ` Vladimir Murzin
2016-09-12 14:49 ` [PATCH v4 01/10] arm64: KVM: Use static keys for selecting the GIC backend Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:20   ` Christoffer Dall
2016-09-13  8:20     ` Christoffer Dall
2016-09-13  9:11     ` Marc Zyngier
2016-09-13  9:11       ` Marc Zyngier
2016-09-13  9:22       ` Christoffer Dall
2016-09-13  9:22         ` Christoffer Dall
2016-09-14 15:20         ` Vladimir Murzin
2016-09-14 15:20           ` Vladimir Murzin
2016-09-14 15:47           ` Marc Zyngier
2016-09-14 15:47             ` Marc Zyngier
2016-09-15  9:03           ` Christoffer Dall
2016-09-15  9:03             ` Christoffer Dall
2016-09-22 10:01   ` Marc Zyngier
2016-09-22 10:01     ` Marc Zyngier
2016-09-12 14:49 ` [PATCH v4 02/10] arm64: KVM: Move GIC accessors to arch_gicv3.h Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-12 14:49 ` [PATCH v4 03/10] arm64: KVM: Move vgic-v3 save/restore to virt/kvm/arm/hyp Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:51   ` Christoffer Dall
2016-09-13  8:51     ` Christoffer Dall
2016-09-12 14:49 ` [PATCH v4 04/10] KVM: arm64: vgic-its: Introduce config option to guard ITS specific code Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:51   ` Christoffer Dall
2016-09-13  8:51     ` Christoffer Dall
2016-09-12 14:49 ` [PATCH v4 05/10] KVM: arm: vgic: Fix compiler warnings when built for 32-bit Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:51   ` Christoffer Dall
2016-09-13  8:51     ` Christoffer Dall
2016-09-22 10:01   ` Marc Zyngier
2016-09-22 10:01     ` Marc Zyngier
2016-09-12 14:49 ` [PATCH v4 06/10] KVM: arm: vgic: Support 64-bit data manipulation on 32-bit host systems Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:51   ` Christoffer Dall
2016-09-13  8:51     ` Christoffer Dall
2016-09-22 10:00   ` Marc Zyngier
2016-09-22 10:00     ` Marc Zyngier
2016-09-12 14:49 ` [PATCH v4 07/10] ARM: Introduce MPIDR_LEVEL_SHIFT macro Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:38   ` Christoffer Dall
2016-09-13  8:38     ` Christoffer Dall
2016-09-13  9:04     ` Vladimir Murzin
2016-09-13  9:04       ` Vladimir Murzin
2016-09-13 10:12       ` Marc Zyngier
2016-09-13 10:12         ` Marc Zyngier
2016-09-13 10:32         ` Vladimir Murzin
2016-09-13 10:32           ` Vladimir Murzin
2016-09-13 10:44           ` Marc Zyngier
2016-09-13 10:44             ` Marc Zyngier
2016-09-14 15:21             ` Vladimir Murzin
2016-09-14 15:21               ` Vladimir Murzin
2016-09-14 15:50               ` Marc Zyngier
2016-09-14 15:50                 ` Marc Zyngier
2016-09-22  9:59   ` Marc Zyngier
2016-09-22  9:59     ` Marc Zyngier
2016-09-12 14:49 ` [PATCH v4 08/10] ARM: Move system register accessors to asm/cp15.h Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:52   ` Christoffer Dall
2016-09-13  8:52     ` Christoffer Dall
2016-09-22  9:59   ` Marc Zyngier
2016-09-22  9:59     ` Marc Zyngier
2016-09-12 14:49 ` [PATCH v4 09/10] ARM: gic-v3: Introduce 32-to-64-bit mappings for GICv3 cpu registers Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:52   ` Christoffer Dall
2016-09-13  8:52     ` Christoffer Dall
2016-09-22  9:57   ` Marc Zyngier
2016-09-22  9:57     ` Marc Zyngier
2016-09-12 14:49 ` [PATCH v4 10/10] ARM: KVM: Support vgic-v3 Vladimir Murzin
2016-09-12 14:49   ` Vladimir Murzin
2016-09-13  8:52   ` Christoffer Dall
2016-09-13  8:52     ` Christoffer Dall
2016-09-22  9:58   ` Marc Zyngier
2016-09-22  9:58     ` Marc Zyngier
2016-09-15  9:13 ` [PATCH v4 00/10] ARM: KVM: Support for vgic-v3 Christoffer Dall
2016-09-15  9:13   ` Christoffer Dall
2016-09-15 10:33   ` Vladimir Murzin
2016-09-15 10:33     ` Vladimir Murzin

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.