Hi Peter, On 27 February 2014 15:23, Peter Maydell <peter.mayd...@linaro.org> wrote: > On 27 February 2014 06:51, Pranavkumar Sawargaonkar > <pranavku...@linaro.org> 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). >
Ok, I mentioned this a hack since it is different from arm32 way. I will update patch comment and description accordingly. > Why does this only work for mach-virt? Due to re-init pc becomes zero which is fine for mach-virt but may not work for some other machine type. This brings me back to the question that are we going to allow any other machine type with KVM ARM/ARM64 ? > > thanks > -- PMM Thanks, Pranav