Re: [PATCH 0/3] Support userspace irqchip with arch timers
On 30.09.16 17:43, Christoffer Dall wrote: > On Fri, Sep 30, 2016 at 05:38:11PM +0200, Alexander Graf wrote: >> >> >> On 30.09.16 16:54, Alexander Graf wrote: >>> >>> >>> On 27.09.16 21:08, Christoffer Dall wrote: Hi Alex, Marc and I have been looking at this during Linaro connect and have slightly reworked your patch into this small series. It would be good if you could have a look at it and test it out. I've tested it with your QEMU, and it works for UP, but secondary CPUs fail to come up, and it looks like the kernel never gets an IPI for those CPUs from userspace. Any chance you're willing to take a look at that? >>> >>> I still need to see whether I can come up with a prettier solution, but >>> for now this works: >>> >>> diff --git a/target-i386/kvm.c b/target-i386/kvm.c >> >> Eh, no, not in i386 code :). But the problem seems to be a missing >> mpstate sync. >> > Yeah, that looked really dodgy. Have you tested it? :) This time around tested with the correct command line parameters I hope :). I'll send a pretty patch later. diff --git a/target-arm/kvm.c b/target-arm/kvm.c index b4c8fe2..b549f00 100644 --- a/target-arm/kvm.c +++ b/target-arm/kvm.c @@ -173,6 +173,12 @@ int kvm_arch_init(MachineState *ms, KVMState *s) */ kvm_async_interrupts_allowed = true; +/* + * PSCI wakes up secondary cores, so we always need to + * have vCPUs waiting in kernel space + */ +kvm_halt_in_kernel_allowed = true; + cap_has_mp_state = kvm_check_extension(s, KVM_CAP_MP_STATE); type_register_static(&host_arm_cpu_type_info); Alex ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
Re: [PATCH 0/3] Support userspace irqchip with arch timers
On 30.09.16 17:43, Christoffer Dall wrote: > On Fri, Sep 30, 2016 at 05:38:11PM +0200, Alexander Graf wrote: >> >> >> On 30.09.16 16:54, Alexander Graf wrote: >>> >>> >>> On 27.09.16 21:08, Christoffer Dall wrote: Hi Alex, Marc and I have been looking at this during Linaro connect and have slightly reworked your patch into this small series. It would be good if you could have a look at it and test it out. I've tested it with your QEMU, and it works for UP, but secondary CPUs fail to come up, and it looks like the kernel never gets an IPI for those CPUs from userspace. Any chance you're willing to take a look at that? >>> >>> I still need to see whether I can come up with a prettier solution, but >>> for now this works: >>> >>> diff --git a/target-i386/kvm.c b/target-i386/kvm.c >> >> Eh, no, not in i386 code :). But the problem seems to be a missing >> mpstate sync. >> > Yeah, that looked really dodgy. Have you tested it? :) I have, but I ran the wrong command line and by accident used -M ...,kernel-irqchip=on :) Alex ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
Re: [PATCH 0/3] Support userspace irqchip with arch timers
On 30.09.16 16:54, Alexander Graf wrote: > > > On 27.09.16 21:08, Christoffer Dall wrote: >> Hi Alex, >> >> Marc and I have been looking at this during Linaro connect and have >> slightly reworked your patch into this small series. >> >> It would be good if you could have a look at it and test it out. >> >> I've tested it with your QEMU, and it works for UP, but secondary CPUs >> fail to come up, and it looks like the kernel never gets an IPI for >> those CPUs from userspace. Any chance you're willing to take a look at >> that? > > I still need to see whether I can come up with a prettier solution, but > for now this works: > > diff --git a/target-i386/kvm.c b/target-i386/kvm.c Eh, no, not in i386 code :). But the problem seems to be a missing mpstate sync. Alex ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
Re: [PATCH 0/3] Support userspace irqchip with arch timers
On Fri, Sep 30, 2016 at 05:38:11PM +0200, Alexander Graf wrote: > > > On 30.09.16 16:54, Alexander Graf wrote: > > > > > > On 27.09.16 21:08, Christoffer Dall wrote: > >> Hi Alex, > >> > >> Marc and I have been looking at this during Linaro connect and have > >> slightly reworked your patch into this small series. > >> > >> It would be good if you could have a look at it and test it out. > >> > >> I've tested it with your QEMU, and it works for UP, but secondary CPUs > >> fail to come up, and it looks like the kernel never gets an IPI for > >> those CPUs from userspace. Any chance you're willing to take a look at > >> that? > > > > I still need to see whether I can come up with a prettier solution, but > > for now this works: > > > > diff --git a/target-i386/kvm.c b/target-i386/kvm.c > > Eh, no, not in i386 code :). But the problem seems to be a missing > mpstate sync. > Yeah, that looked really dodgy. Have you tested it? :) -Christoffer ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
Re: [PATCH 0/3] Support userspace irqchip with arch timers
On 27.09.16 21:08, Christoffer Dall wrote: > Hi Alex, > > Marc and I have been looking at this during Linaro connect and have > slightly reworked your patch into this small series. > > It would be good if you could have a look at it and test it out. > > I've tested it with your QEMU, and it works for UP, but secondary CPUs > fail to come up, and it looks like the kernel never gets an IPI for > those CPUs from userspace. Any chance you're willing to take a look at > that? I still need to see whether I can come up with a prettier solution, but for now this works: diff --git a/target-i386/kvm.c b/target-i386/kvm.c index f1ad805..8b9a084 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -2393,7 +2393,11 @@ static int kvm_get_mp_state(X86CPU *cpu) return ret; } env->mp_state = mp_state.mp_state; +#ifdef CONFIG_ARM +if (kvm_enabled()) { +#else if (kvm_irqchip_in_kernel()) { +#endif cs->halted = (mp_state.mp_state == KVM_MP_STATE_HALTED); } return 0; Alex ___ kvmarm mailing list kvmarm@lists.cs.columbia.edu https://lists.cs.columbia.edu/mailman/listinfo/kvmarm