On 02/27/2014 11:53 AM, Peter Maydell wrote:
On 27 February 2014 06:51, Pranavkumar Sawargaonkar
<pranavkumar@xxxxxxxxxx> wrote:
We need to "Feed the kernel back its initial register state" using KVM
ioctls for KVM ARM64 (just like KVM ARM). This means we need to save
the "initial register state" in kvm_arch_init_vcpu() which is not the
case for KVM ARM64 right now. In simpler work, we are depended upon
VCPU register init/save/restore for implementing kvm_arch_reset_vcpu().
This patch adds a hacky implementation of kvm_arch_reset_vcpu() which
only works for "mach-virt". As-per this hacky implemenation, we re-init
the VCPU using kvm_arch_init_vcpu() so that all registers of VCPU are
set to their reset values by in-kernel KVM code.
Re-initing the VCPU is actually the right way to do this -- it is feeding
all the register state back to KVM that is the hack. (One day I may
fix 32 bit ARM to re-init the VCPU).
I have tested the system_reset and reboot from guest for 32 bit and it
does not seem to work properly. If I have a guest with two vcpus, the
secondary CPU fails to boot. I did an experiment and changed the
implementation of kvm_arch_reset_vcpu() to re-init the vcpu (as it is
proposed for 64 bit) and in this way works.
Diana
_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm