linux_dsm_epyc7002/arch/arm/kvm
AKASHI Takahiro 67f6919766 arm64: kvm: allows kvm cpu hotplug
The current kvm implementation on arm64 does cpu-specific initialization
at system boot, and has no way to gracefully shutdown a core in terms of
kvm. This prevents kexec from rebooting the system at EL2.

This patch adds a cpu tear-down function and also puts an existing cpu-init
code into a separate function, kvm_arch_hardware_disable() and
kvm_arch_hardware_enable() respectively.
We don't need the arm64 specific cpu hotplug hook any more.

Since this patch modifies common code between arm and arm64, one stub
definition, __cpu_reset_hyp_mode(), is added on arm side to avoid
compilation errors.

Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org>
[Rebase, added separate VHE init/exit path, changed resets use of
 kvm_call_hyp() to the __version, en/disabled hardware in init_subsystems(),
 added icache maintenance to __kvm_hyp_reset() and removed lr restore, removed
 guest-enter after teardown handling]
Signed-off-by: James Morse <james.morse@arm.com>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2016-04-28 12:05:46 +01:00
..
hyp ARM: KVM: Use common version of timer-sr.c 2016-02-29 18:34:19 +00:00
arm.c arm64: kvm: allows kvm cpu hotplug 2016-04-28 12:05:46 +01:00
coproc_a7.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
coproc_a15.c arm/arm64: KVM: Use set/way op trapping to track the state of the caches 2015-01-29 23:24:56 +01:00
coproc.c ARM: KVM: Switch the CP reg search to be a binary search 2016-02-29 18:34:22 +00:00
coproc.h ARM: KVM: Rename struct coproc_reg::is_64 to is_64bit 2016-02-29 18:34:22 +00:00
emulate.c ARM: KVM: Move GP registers into the CPU context structure 2016-02-29 18:34:12 +00:00
guest.c One of the largest releases for KVM... Hardly any generic improvement, 2016-03-16 09:55:35 -07:00
handle_exit.c ARM: KVM: Remove handling of ARM_EXCEPTION_DATA/PREF_ABORT 2016-02-29 18:34:15 +00:00
init.S ARM: KVM: Switch to C-based stage2 init 2016-02-29 18:34:14 +00:00
interrupts.S ARM: KVM: Remove the old world switch 2016-02-29 18:34:14 +00:00
Kconfig arm/arm64: KVM : Enable vhost device selection under KVM config menu 2015-10-22 23:01:45 +02:00
Makefile ARM: KVM: Add TLB invalidation code 2016-02-29 18:34:13 +00:00
mmio.c arm/arm64: KVM: Feed initialized memory to MMIO accesses 2016-02-24 11:53:09 +00:00
mmu.c arm64: kvm: allows kvm cpu hotplug 2016-04-28 12:05:46 +01:00
perf.c ARM: KVM: add support for minimal host vs guest profiling 2013-04-28 21:44:01 -07:00
psci.c KVM: Use simple waitqueue for vcpu->wq 2016-02-25 11:27:16 +01:00
reset.c ARM: KVM: Move GP registers into the CPU context structure 2016-02-29 18:34:12 +00:00
trace.h arm/arm64: KVM: Improve kvm_exit tracepoint 2015-10-22 23:01:47 +02:00