All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Murzin <vladimir.murzin@arm.com>
To: kvmarm@lists.cs.columbia.edu
Cc: marc.zyngier@arm.com, andre.przywara@arm.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 0/8] ARM: KVM: Support for vgic-v3
Date: Fri, 9 Sep 2016 08:58:23 +0100	[thread overview]
Message-ID: <57D26B9F.7050301@arm.com> (raw)
In-Reply-To: <1473350810-10857-1-git-send-email-vladimir.murzin@arm.com>

+Christoffer

I should have checked my send-email command twice...

Vladimir

On 08/09/16 17:06, Vladimir Murzin wrote:
> 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:
> 
>     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 (8):
>   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: Support 64-bit data manipulation on 32-bit host
>     systems
>   ARM: Change MPIDR_AFFINITY_LEVEL to ignore Aff3
>   ARM: Move system register accessors to asm/cp15.h
>   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                    |    3 +-
>  arch/arm/include/asm/kvm_asm.h                    |    3 +
>  arch/arm/include/asm/kvm_host.h                   |   13 +++
>  arch/arm/include/asm/kvm_hyp.h                    |   20 +----
>  arch/arm/include/asm/virt.h                       |    8 ++
>  arch/arm/include/uapi/asm/kvm.h                   |    7 ++
>  arch/arm/kernel/vmlinux.lds.S                     |    6 ++
>  arch/arm/kvm/Makefile                             |    2 +
>  arch/arm/kvm/arm.c                                |   19 +++++
>  arch/arm/kvm/coproc.c                             |   36 ++++++++
>  arch/arm/kvm/hyp/Makefile                         |    1 +
>  arch/arm/kvm/hyp/switch.c                         |   12 ++-
>  arch/arm64/include/asm/arch_gicv3.h               |   13 +++
>  arch/arm64/include/asm/kvm_host.h                 |   15 ++++
>  arch/arm64/include/asm/kvm_hyp.h                  |    2 -
>  arch/arm64/include/asm/virt.h                     |    7 ++
>  arch/arm64/kernel/vmlinux.lds.S                   |    6 ++
>  arch/arm64/kvm/Kconfig                            |    4 +-
>  arch/arm64/kvm/hyp/Makefile                       |    2 +-
>  arch/arm64/kvm/hyp/switch.c                       |   19 ++---
>  include/kvm/arm_vgic.h                            |    8 --
>  {arch/arm64/kvm => virt/kvm/arm}/hyp/vgic-v3-sr.c |   13 ---
>  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.h                          |   54 +-----------
>  29 files changed, 265 insertions(+), 139 deletions(-)
>  rename {arch/arm64/kvm => virt/kvm/arm}/hyp/vgic-v3-sr.c (96%)
> 

WARNING: multiple messages have this Message-ID (diff)
From: vladimir.murzin@arm.com (Vladimir Murzin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 0/8] ARM: KVM: Support for vgic-v3
Date: Fri, 9 Sep 2016 08:58:23 +0100	[thread overview]
Message-ID: <57D26B9F.7050301@arm.com> (raw)
In-Reply-To: <1473350810-10857-1-git-send-email-vladimir.murzin@arm.com>

+Christoffer

I should have checked my send-email command twice...

Vladimir

On 08/09/16 17:06, Vladimir Murzin wrote:
> 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:
> 
>     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 (8):
>   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: Support 64-bit data manipulation on 32-bit host
>     systems
>   ARM: Change MPIDR_AFFINITY_LEVEL to ignore Aff3
>   ARM: Move system register accessors to asm/cp15.h
>   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                    |    3 +-
>  arch/arm/include/asm/kvm_asm.h                    |    3 +
>  arch/arm/include/asm/kvm_host.h                   |   13 +++
>  arch/arm/include/asm/kvm_hyp.h                    |   20 +----
>  arch/arm/include/asm/virt.h                       |    8 ++
>  arch/arm/include/uapi/asm/kvm.h                   |    7 ++
>  arch/arm/kernel/vmlinux.lds.S                     |    6 ++
>  arch/arm/kvm/Makefile                             |    2 +
>  arch/arm/kvm/arm.c                                |   19 +++++
>  arch/arm/kvm/coproc.c                             |   36 ++++++++
>  arch/arm/kvm/hyp/Makefile                         |    1 +
>  arch/arm/kvm/hyp/switch.c                         |   12 ++-
>  arch/arm64/include/asm/arch_gicv3.h               |   13 +++
>  arch/arm64/include/asm/kvm_host.h                 |   15 ++++
>  arch/arm64/include/asm/kvm_hyp.h                  |    2 -
>  arch/arm64/include/asm/virt.h                     |    7 ++
>  arch/arm64/kernel/vmlinux.lds.S                   |    6 ++
>  arch/arm64/kvm/Kconfig                            |    4 +-
>  arch/arm64/kvm/hyp/Makefile                       |    2 +-
>  arch/arm64/kvm/hyp/switch.c                       |   19 ++---
>  include/kvm/arm_vgic.h                            |    8 --
>  {arch/arm64/kvm => virt/kvm/arm}/hyp/vgic-v3-sr.c |   13 ---
>  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.h                          |   54 +-----------
>  29 files changed, 265 insertions(+), 139 deletions(-)
>  rename {arch/arm64/kvm => virt/kvm/arm}/hyp/vgic-v3-sr.c (96%)
> 

  parent reply	other threads:[~2016-09-09  7:50 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-09-08 16:06 [PATCH v3 0/8] ARM: KVM: Support for vgic-v3 Vladimir Murzin
2016-09-08 16:06 ` Vladimir Murzin
2016-09-08 16:06 ` [PATCH v3 1/8] arm64: KVM: Use static keys for selecting the GIC backend Vladimir Murzin
2016-09-08 16:06   ` Vladimir Murzin
2016-09-09  9:19   ` Marc Zyngier
2016-09-09  9:19     ` Marc Zyngier
2016-09-09  9:33     ` Vladimir Murzin
2016-09-09  9:33       ` Vladimir Murzin
2016-09-09 13:45       ` Vladimir Murzin
2016-09-09 13:45         ` Vladimir Murzin
2016-09-09 14:17         ` Marc Zyngier
2016-09-09 14:17           ` Marc Zyngier
2016-09-09 15:14           ` Vladimir Murzin
2016-09-09 15:14             ` Vladimir Murzin
2016-09-09 15:25             ` Marc Zyngier
2016-09-09 15:25               ` Marc Zyngier
2016-09-09 16:18               ` Vladimir Murzin
2016-09-09 16:18                 ` Vladimir Murzin
2016-09-09 17:06                 ` Marc Zyngier
2016-09-09 17:06                   ` Marc Zyngier
2016-09-08 16:06 ` [PATCH v3 2/8] arm64: KVM: Move GIC accessors to arch_gicv3.h Vladimir Murzin
2016-09-08 16:06   ` Vladimir Murzin
2016-09-09 16:32   ` Marc Zyngier
2016-09-09 16:32     ` Marc Zyngier
2016-09-12  9:18     ` Vladimir Murzin
2016-09-12  9:18       ` Vladimir Murzin
2016-09-08 16:06 ` [PATCH v3 3/8] arm64: KVM: Move vgic-v3 save/restore to virt/kvm/arm/hyp Vladimir Murzin
2016-09-08 16:06   ` Vladimir Murzin
2016-09-09 16:33   ` Marc Zyngier
2016-09-09 16:33     ` Marc Zyngier
2016-09-12  9:18     ` Vladimir Murzin
2016-09-12  9:18       ` Vladimir Murzin
2016-09-08 16:06 ` [PATCH v3 4/8] KVM: arm64: vgic-its: Introduce config option to guard ITS specific code Vladimir Murzin
2016-09-08 16:06   ` Vladimir Murzin
2016-09-09 16:46   ` Marc Zyngier
2016-09-09 16:46     ` Marc Zyngier
2016-09-12  9:23     ` Vladimir Murzin
2016-09-12  9:23       ` Vladimir Murzin
2016-09-08 16:06 ` [PATCH v3 5/8] KVM: arm: vgic: Support 64-bit data manipulation on 32-bit host systems Vladimir Murzin
2016-09-08 16:06   ` Vladimir Murzin
2016-09-09 16:55   ` Marc Zyngier
2016-09-09 16:55     ` Marc Zyngier
2016-09-12  9:25     ` Vladimir Murzin
2016-09-12  9:25       ` Vladimir Murzin
2016-09-08 16:06 ` [PATCH v3 6/8] ARM: Change MPIDR_AFFINITY_LEVEL to ignore Aff3 Vladimir Murzin
2016-09-08 16:06   ` Vladimir Murzin
2016-09-09 16:59   ` Marc Zyngier
2016-09-09 16:59     ` Marc Zyngier
2016-09-12  9:39     ` Vladimir Murzin
2016-09-12  9:39       ` Vladimir Murzin
2016-09-12  9:48       ` Marc Zyngier
2016-09-12  9:48         ` Marc Zyngier
2016-09-12  9:51         ` Vladimir Murzin
2016-09-12  9:51           ` Vladimir Murzin
2016-09-08 16:06 ` [PATCH v3 7/8] ARM: Move system register accessors to asm/cp15.h Vladimir Murzin
2016-09-08 16:06   ` Vladimir Murzin
2016-09-09 17:05   ` Marc Zyngier
2016-09-09 17:05     ` Marc Zyngier
2016-09-12  9:42     ` Vladimir Murzin
2016-09-12  9:42       ` Vladimir Murzin
2016-09-12  9:44     ` Vladimir Murzin
2016-09-12  9:44       ` Vladimir Murzin
2016-09-08 16:06 ` [PATCH v3 8/8] ARM: KVM: Support vgic-v3 Vladimir Murzin
2016-09-08 16:06   ` Vladimir Murzin
2016-09-09 16:45   ` Marc Zyngier
2016-09-09 16:45     ` Marc Zyngier
2016-09-12  9:23     ` Vladimir Murzin
2016-09-12  9:23       ` Vladimir Murzin
2016-09-09  7:58 ` Vladimir Murzin [this message]
2016-09-09  7:58   ` [PATCH v3 0/8] ARM: KVM: Support for vgic-v3 Vladimir Murzin
2016-09-09 11:26   ` Christoffer Dall
2016-09-09 11:26     ` Christoffer Dall

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=57D26B9F.7050301@arm.com \
    --to=vladimir.murzin@arm.com \
    --cc=andre.przywara@arm.com \
    --cc=kvmarm@lists.cs.columbia.edu \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=marc.zyngier@arm.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.