On 24/04/17 22:15, Boris Ostrovsky wrote: > On 04/24/2017 12:10 PM, Sander Eikelenboom wrote: >> On 24/04/17 17:49, Boris Ostrovsky wrote: >>> On 04/24/2017 10:20 AM, Sander Eikelenboom wrote: >>>> Hi Boris, >>>> >>>> Nope, not that i am aware of. >>> If you can keep console while running this, can you add these changes >>> and see if we ever unbind the work vector (you can even add dump_stack() >>> in __unbind_from_irq() for good measure)? (I added HHH for easy grepping) >>> >>> Also do 'grep -i work /proc/interrupts' so that we know which IRQ the >>> work interrupt is. >>> >>> -boris >> Hmmm i f*cked up and accidently compiled a tree with "for linus 4.12" >> pulled in and ran that instead of the vanilla 4.11-rc7 (while not naming >> it "xen-next" as i normally do. >> So 4.11-rc7 is most probably fine, sorry for that noise. >> >> Since your patch doesn't apply the smp part is changed. Seems the >> problem somewhere lies in there (Vitaly's patches, general x86 stuff >> being pulled in to base that on). I can see if i can adapt the patch >> to for linus 4.12 and retest, instead of waiting for it to be pulled in >> into Linus his tree in the next merge window. > > This is trivially reproduced on 4.12 branch with > > diff --git a/drivers/xen/sys-hypervisor.c b/drivers/xen/sys-hypervisor.c > index 84106f9..065728f 100644 > --- a/drivers/xen/sys-hypervisor.c > +++ b/drivers/xen/sys-hypervisor.c > @@ -148,7 +148,7 @@ static int __init xen_sysfs_uuid_init(void) > } > > /* xen compilation attributes */ > - > +void arch_irq_work_raise(void ); > static ssize_t compiler_show(struct hyp_sysfs_attr *attr, char *buffer) > { > int ret = -ENOMEM; > @@ -161,7 +161,7 @@ static ssize_t compiler_show(struct hyp_sysfs_attr > *attr, char *buffer) > ret = sprintf(buffer, "%s\n", info->compiler); > kfree(info); > } > - > + arch_irq_work_raise(); > return ret; > } > > > and then (if you manage to boot): > > [root@vm-0238 ~]# grep proc /proc/cpuinfo > processor : 0 > [root@vm-0238 ~]# > [root@vm-0238 ~]# cat /sys/hypervisor/compilation/compiler > [ 502.160472] ------------[ cut here ]------------ > [ 502.160491] kernel BUG at drivers/xen/events/events_base.c:1221! > > > > and the fix is > > diff --git a/arch/x86/xen/smp_pv.c b/arch/x86/xen/smp_pv.c > index c0e3b96..aae3253 100644 > --- a/arch/x86/xen/smp_pv.c > +++ b/arch/x86/xen/smp_pv.c > @@ -249,7 +249,7 @@ static void __init xen_pv_smp_prepare_cpus(unsigned > int max_cpus) > > xen_pmu_init(0); > > - if (xen_smp_intr_init(0)) > + if (xen_smp_intr_init(0) || xen_smp_intr_init_pv(0)) > BUG(); > > if (!alloc_cpumask_var(&xen_cpu_initialized_map, GFP_KERNEL))
Indeed. Can you please send a proper patch with your S-o-b? Juergen _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel