[PULL] KVM/ARM updates for 4.5
Marc Zyngier
marc.zyngier at arm.com
Thu Dec 24 03:12:08 PST 2015
Hi Paolo,
THis is the first pull request for the 4.5 merge window. Not much in
terms of features, but a rewrite of our 64bit world switch, making it
a lot nicer, maintainable, and much more likely to cope with things
like VHE. Also support 16bit VMIDs for systems that need to run that
many VMs concurrently.
I was really hoping that the PMU code would make it this time around,
but it got slightly delayed, and the holiday season didn't help. If
we're lucky enough (read: if all known issues have been addressed), I
may send you another pull request early in the new year.
In the mean time, please pull!
Happy Christmas,
M.
The following changes since commit 9f9499ae8e6415cefc4fe0a96ad0e27864353c89:
Linux 4.4-rc5 (2015-12-13 17:42:58 -0800)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvm-arm-for-4.5-1
for you to fetch changes up to c7da6fa43cb1c5e649da0f478a491feb9208cae7:
arm/arm64: KVM: Detect vGIC presence at runtime (2015-12-18 12:01:58 +0000)
----------------------------------------------------------------
KVM/ARM changes for Linux v4.5
- Complete rewrite of the arm64 world switch in C, hopefully
paving the way for more sharing with the 32bit code, better
maintainability and easier integration of new features.
Also smaller and slightly faster in some cases...
- Support for 16bit VM identifiers
- Various cleanups
----------------------------------------------------------------
Amit Tomar (1):
KVM: arm/arm64: Count guest exit due to various reasons
Fengguang Wu (1):
MAINTAINERS: add git URL for KVM/ARM
Jisheng Zhang (1):
KVM: arm/arm64: vgic: make vgic_io_ops static
Marc Zyngier (23):
arm64: KVM: Add a HYP-specific header file
arm64: KVM: Implement vgic-v2 save/restore
KVM: arm/arm64: vgic-v3: Make the LR indexing macro public
arm64: KVM: Implement vgic-v3 save/restore
arm64: KVM: Implement timer save/restore
arm64: KVM: Implement system register save/restore
arm64: KVM: Implement 32bit system register save/restore
arm64: KVM: Implement debug save/restore
arm64: KVM: Implement guest entry
arm64: KVM: Add patchable function selector
arm64: KVM: Implement the core world switch
arm64: KVM: Implement fpsimd save/restore
arm64: KVM: Implement TLB handling
arm64: KVM: HYP mode entry points
arm64: KVM: Add panic handling
arm64: KVM: Add compatibility aliases
arm64: KVM: Map the kernel RO section into HYP
arm64: KVM: Move away from the assembly version of the world switch
arm64: KVM: Turn system register numbers to an enum
arm64: KVM: Cleanup asm-offset.c
arm64: KVM: Remove weak attributes
ARM: KVM: Cleanup exception injection
arm64: KVM: debug: Remove spurious inline attributes
Mark Rutland (1):
arm64: Add macros to read/write system registers
Pavel Fedin (1):
arm/arm64: KVM: Detect vGIC presence at runtime
Vladimir Murzin (3):
arm/arm64: KVM: Remove unreferenced S2_PGD_ORDER
arm: KVM: Make kvm_arm.h friendly to assembly code
arm64: KVM: Add support for 16-bit VMID
MAINTAINERS | 1 +
arch/arm/include/asm/kvm_arm.h | 34 +-
arch/arm/include/asm/kvm_host.h | 6 +
arch/arm/include/asm/kvm_mmu.h | 5 +
arch/arm/kvm/arm.c | 40 +-
arch/arm/kvm/emulate.c | 74 +--
arch/arm/kvm/guest.c | 6 +
arch/arm/kvm/handle_exit.c | 3 +
arch/arm/kvm/mmio.c | 3 +
arch/arm/kvm/mmu.c | 6 +-
arch/arm64/include/asm/kvm_arm.h | 3 +-
arch/arm64/include/asm/kvm_asm.h | 76 ---
arch/arm64/include/asm/kvm_emulate.h | 1 -
arch/arm64/include/asm/kvm_host.h | 87 ++-
arch/arm64/include/asm/kvm_mmio.h | 1 -
arch/arm64/include/asm/kvm_mmu.h | 9 +-
arch/arm64/include/asm/sysreg.h | 21 +
arch/arm64/kernel/asm-offsets.c | 40 +-
arch/arm64/kvm/Makefile | 3 +-
arch/arm64/kvm/guest.c | 10 +-
arch/arm64/kvm/handle_exit.c | 4 +
arch/arm64/kvm/hyp-init.S | 9 +
arch/arm64/kvm/hyp.S | 1081 +---------------------------------
arch/arm64/kvm/hyp/Makefile | 14 +
arch/arm64/kvm/hyp/debug-sr.c | 140 +++++
arch/arm64/kvm/hyp/entry.S | 160 +++++
arch/arm64/kvm/hyp/fpsimd.S | 33 ++
arch/arm64/kvm/hyp/hyp-entry.S | 212 +++++++
arch/arm64/kvm/hyp/hyp.h | 90 +++
arch/arm64/kvm/hyp/switch.c | 175 ++++++
arch/arm64/kvm/hyp/sysreg-sr.c | 138 +++++
arch/arm64/kvm/hyp/timer-sr.c | 71 +++
arch/arm64/kvm/hyp/tlb.c | 80 +++
arch/arm64/kvm/hyp/vgic-v2-sr.c | 84 +++
arch/arm64/kvm/hyp/vgic-v3-sr.c | 228 +++++++
arch/arm64/kvm/sys_regs.c | 59 +-
arch/arm64/kvm/vgic-v2-switch.S | 134 -----
arch/arm64/kvm/vgic-v3-switch.S | 269 ---------
include/clocksource/arm_arch_timer.h | 6 +
include/kvm/arm_vgic.h | 6 +
virt/kvm/arm/vgic-v3.c | 11 +-
virt/kvm/arm/vgic.c | 2 +-
42 files changed, 1731 insertions(+), 1704 deletions(-)
create mode 100644 arch/arm64/kvm/hyp/Makefile
create mode 100644 arch/arm64/kvm/hyp/debug-sr.c
create mode 100644 arch/arm64/kvm/hyp/entry.S
create mode 100644 arch/arm64/kvm/hyp/fpsimd.S
create mode 100644 arch/arm64/kvm/hyp/hyp-entry.S
create mode 100644 arch/arm64/kvm/hyp/hyp.h
create mode 100644 arch/arm64/kvm/hyp/switch.c
create mode 100644 arch/arm64/kvm/hyp/sysreg-sr.c
create mode 100644 arch/arm64/kvm/hyp/timer-sr.c
create mode 100644 arch/arm64/kvm/hyp/tlb.c
create mode 100644 arch/arm64/kvm/hyp/vgic-v2-sr.c
create mode 100644 arch/arm64/kvm/hyp/vgic-v3-sr.c
delete mode 100644 arch/arm64/kvm/vgic-v2-switch.S
delete mode 100644 arch/arm64/kvm/vgic-v3-switch.S
More information about the linux-arm-kernel
mailing list