[RFC PATCH 0/5] arm/arm64: Making HYP vgic/timer save/restore common
flat view
STALE3904d
From: Christoffer Dall <hidden>
Date: 2016-02-09 19:06:16
Also in:
kvm, kvmarm
Revision rfc of 2 in this series.
Revisions (2)
- rfc current
- rfc
On Thu, Jan 28, 2016 at 03:56:00PM +0000, Marc Zyngier wrote:
With the current state of the C conversion of arm and arm64 world switches, we are still unable to share some of the most obvious candidates (GIC and timer save/restore). In order to reduce the bloat, let's move these files to a common location (virt/kvm/arm/hyp). The changes are extremely mechanical, with a small hack to deal with system register names on the 32bit side (I've decided to align on the 64bit names). I'd like to know what people think of the common location. Does it makes sense to have a "hyp" subdirectory to indicate that this is not "normal" kernel code?
I think so, it means to me typically executing in "hyp/el2" or just low-level hypervisor logic, in the case of VHE.
These patches are on top of 4.5-rc1, plus the VHE and 32bit WS rewrite
patches, and I've pushed out a branch at
git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git kvm-arm64/mov-hyp
Marc Zyngier (5):
arm64: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h
arm64: KVM: Move vgic-v2 and timer save/restore to virt/kvm/arm/hyp
ARM: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h
ARM: KVM: Use common version of vgic-v2-sr.c
ARM: KVM: Use common version of timer-sr.c
arch/arm/{kvm/hyp/hyp.h => include/asm/kvm_hyp.h} | 9 +++
arch/arm/kvm/hyp/Makefile | 7 +-
arch/arm/kvm/hyp/banked-sr.c | 2 +-
arch/arm/kvm/hyp/cp15-sr.c | 2 +-
arch/arm/kvm/hyp/switch.c | 2 +-
arch/arm/kvm/hyp/timer-sr.c | 71 ------------------
arch/arm/kvm/hyp/tlb.c | 2 +-
arch/arm/kvm/hyp/vgic-v2-sr.c | 84 ----------------------
.../arm64/{kvm/hyp/hyp.h => include/asm/kvm_hyp.h} | 0
arch/arm64/kvm/hyp/Makefile | 7 +-
arch/arm64/kvm/hyp/debug-sr.c | 4 +-
arch/arm64/kvm/hyp/switch.c | 3 +-
arch/arm64/kvm/hyp/sysreg-sr.c | 4 +-
arch/arm64/kvm/hyp/tlb.c | 2 +-
arch/arm64/kvm/hyp/vgic-v3-sr.c | 4 +-
{arch/arm64/kvm => virt/kvm/arm}/hyp/timer-sr.c | 4 +-
{arch/arm64/kvm => virt/kvm/arm}/hyp/vgic-v2-sr.c | 4 +-
17 files changed, 30 insertions(+), 181 deletions(-)
rename arch/arm/{kvm/hyp/hyp.h => include/asm/kvm_hyp.h} (93%)
delete mode 100644 arch/arm/kvm/hyp/timer-sr.c
delete mode 100644 arch/arm/kvm/hyp/vgic-v2-sr.c
rename arch/arm64/{kvm/hyp/hyp.h => include/asm/kvm_hyp.h} (100%)
rename {arch/arm64/kvm => virt/kvm/arm}/hyp/timer-sr.c (97%)
rename {arch/arm64/kvm => virt/kvm/arm}/hyp/vgic-v2-sr.c (98%)
--
2.1.4