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

Re: [Xen-devel] Resend: Linux 4.11-rc7: kernel BUG at drivers/xen/events/events_base.c:1221



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.

--
Sander



> diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
> index 7ff2f1b..fb42e82 100644
> --- a/arch/x86/xen/smp.c
> +++ b/arch/x86/xen/smp.c
> @@ -136,6 +136,7 @@ void xen_smp_intr_free(unsigned int cpu)
>         if (xen_hvm_domain())
>                 return;
>  
> +       printk("HHH %s:%d cpu%d irq=%d\n", __FUNCTION__, __LINE__, cpu,
> per_cpu(xen_irq_work, cpu).irq);
>         if (per_cpu(xen_irq_work, cpu).irq >= 0) {
>                 unbind_from_irqhandler(per_cpu(xen_irq_work, cpu).irq,
> NULL);
>                 per_cpu(xen_irq_work, cpu).irq = -1;
> @@ -217,6 +218,7 @@ int xen_smp_intr_init(unsigned int cpu)
>         if (rc < 0)
>                 goto fail;
>         per_cpu(xen_irq_work, cpu).irq = rc;
> +        printk("HHH %s:%d cpu%d irq=%d\n", __FUNCTION__, __LINE__, cpu,
> rc);
>         per_cpu(xen_irq_work, cpu).name = callfunc_name;
>  
>         if (is_xen_pmu(cpu)) {
> @@ -615,6 +617,7 @@ static inline int xen_map_vector(int vector)
>                 break;
>         case IRQ_WORK_VECTOR:
>                 xen_vector = XEN_IRQ_WORK_VECTOR;
> +               printk("HHH %s:%d work interrupt on CPU%d\n",
> __FUNCTION__, __LINE__, smp_processor_id());
>                 break;
>  #ifdef CONFIG_X86_64
>         case NMI_VECTOR:
> diff --git a/drivers/xen/events/events_base.c
> b/drivers/xen/events/events_base.c
> index 6a53577..c1f16f2 100644
> --- a/drivers/xen/events/events_base.c
> +++ b/drivers/xen/events/events_base.c
> @@ -627,6 +627,7 @@ static void __unbind_from_irq(unsigned int irq)
>                         per_cpu(virq_to_irq, cpu)[virq_from_irq(irq)] = -1;
>                         break;
>                 case IRQT_IPI:
> +                       printk("HHH %s:%d cpu%d irq=%d ipi_to_irq=%d\n",
> __FUNCTION__, __LINE__, cpu, irq, per_cpu(ipi_to_irq,
> cpu)[ipi_from_irq(irq)]);
>                         per_cpu(ipi_to_irq, cpu)[ipi_from_irq(irq)] = -1;
>                         break;
>                 default:
> 
> 
> 
>>
>> --
>> Sander
>>
>> On 24/04/17 16:17, Boris Ostrovsky wrote:
>>> On 04/24/2017 06:06 AM, Sander Eikelenboom wrote:
>>>> Resend: Sorry copy and pasted a wrong mailadress for the xen-devel list.
>>>>
>>>>
>>>> Hi Boris / Juergen,
>>>>
>>>> This morning i got this dom0 kernel crash (it occurred sporadically
>>>> before (during 4.11), but i didn't have serial console enabled at that
>>>> time so i had no stacktrace, only sporadic reboots).
>>>>
>>>> It's running on an AMD phenom X6:
>>>> Kernel 4.11.0-rc7 with as latest commit:
>>>> 94836ecf1e7378b64d37624fbb81fe48fbd4c772.
>>>> Xen-unstable with as latest commit:
>>>> 94836ecf1e7378b64d37624fbb81fe48fbd4c772.
>>>>
>>>> If you need more info please ask, testing will be difficult as i don't
>>>> have a clear testcase and
>>>> it can also run for days without trouble.
>>> Any cpu onlining/offlining during the test?
>>>
>>> XEN_IRQ_WORK_VECTOR vector is allocated for all PV VCPUs in
>>> xen_smp_intr_init() so it's somewhat odd that we fail to find it.
>>>
>>> -boris
>>>
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.