Re: CPU hotplug with KVM(ARM)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Marc,
 
Thanks a lot for pointing me at the series.
I did apply the series and got cpu hotplug to work successfully. However, I have the following doubts.
 
1. Though the guest does not crash, when exiting the qemu, I get the following crash dump. I have not yet looked into the details.
 
 
[  547.870000] [<c00145b0>] (unmap_range+0x9c/0x2f4) from [<c0014c2c>] (kvm_free_stage2_pgd+0x30/0x4c)
[  547.880000] [<c0014c2c>] (kvm_free_stage2_pgd+0x30/0x4c) from [<c00129c8>] (kvm_arch_destroy_vm+0xc/0x38)
[  547.890000] [<c00129c8>] (kvm_arch_destroy_vm+0xc/0x38) from [<c000eb6c>] (kvm_put_kvm+0xec/0x150)
[  547.900000] [<c000eb6c>] (kvm_put_kvm+0xec/0x150) from [<c000f068>] (kvm_vcpu_release+0x10/0x18)
[  547.910000] [<c000f068>] (kvm_vcpu_release+0x10/0x18) from [<c00bebcc>] (__fput+0x88/0x1dc)
[  547.920000] [<c00bebcc>] (__fput+0x88/0x1dc) from [<c0044810>] (task_work_run+0xac/0xe8)
[  547.920000] [<c0044810>] (task_work_run+0xac/0xe8) from [<c0030cb8>] (do_exit+0x22c/0x82c)
[  547.930000] [<c0030cb8>] (do_exit+0x22c/0x82c) from [<c003132c>] (do_group_exit+0x48/0xb0)
[  547.940000] [<c003132c>] (do_group_exit+0x48/0xb0) from [<c003b618>] (get_signal_to_deliver+0x278/0x504)
[  547.950000] [<c003b618>] (get_signal_to_deliver+0x278/0x504) from [<c001c8e4>] (do_signal+0x74/0x460)
[  547.960000] [<c001c8e4>] (do_signal+0x74/0x460) from [<c001d150>] (do_work_pending+0x64/0xac)
[  547.970000] [<c001d150>] (do_work_pending+0x64/0xac) from [<c00199c0>] (work_pending+0xc/0x20)
[  547.980000] Code: e1927003 0afffff0 e7e80658 e3a0c000 (e1cc20d0)
[  547.980000] ---[ end trace 05d3020cd57fa289 ]---
[  547.990000] Fixing recursive fault but reboot is needed!
 
 
 
2. I applied kvm-arm-fixes branch from Christoffer's tree (github.com/virtualopensystems/linux-kvm-arm) and then applied the v4 series of "ARM: KVM: Revamping the HYP init code for fun and profit". I ran into some merge conflicts. So I manually edited and applied the patches. Should I be including any more dependant patches?

3. Regarding putting the secondary processors in hyp mode during cpu hotplug, you suggested this to be done in firmware. During kernel startup, u-boot used to do this job. After kernel startup, we have no u-boot to do the job. When cpu is offlined, ROM code is run and the cpu waits for an interrupt. SInce I cannot change the ROM code now, any idea where this functionality can be included ?
 
Thanks,
Giridhar
 
 
On 17 April 2013 19:04, Marc Zyngier <marc.zyngier@xxxxxxx> wrote:
On 17/04/13 14:25, Giridhar Maruthy wrote:

Hi Giridhar,

> I was trying out cpu hotplug of secondary processors when kernel has
> booted with hypervisor mode on all the processors. Though I was able
> to remove and hotplug the cpu, any running guest will crash and no
> more guests are able to bootup. I see that many of the initializations
> like cpu_init_hyp_mode() on each cpu being done during startup will not
> be done during the hotplug. Does the framework not support hotplug at the
> moment with guest OS running?

As you found out, it is utterly broken at the moment.

This patch series should hopefully solve the issue:
https://lists.cs.columbia.edu/pipermail/kvmarm/2013-April/005340.html

Please let me know if it solves your problem.

> A patch follows this email I used to put secondary processors into
> hyp mode for cpu hotplug.

You'll definitely need something like that indeed. It'd better be in
your firmware, though.

        M.
--
Jazz is not dead. It just smells funny...


_______________________________________________
kvmarm mailing list
kvmarm@xxxxxxxxxxxxxxxxxxxxx
https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm

[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux