All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: xen-devel@lists.xen.org
Subject: Re: [BUG] Assertion '(sp == 0) || (peoi[sp-1].vector < vector)' failed at irq.c:1163
Date: Sun, 17 Jan 2016 15:25:44 +0000	[thread overview]
Message-ID: <569BB278.8080603@citrix.com> (raw)
In-Reply-To: <569BB05B.1000801@citrix.com>

On 17/01/16 15:16, Andrew Cooper wrote:
>
>>> This isn't the first time we have seen this on Haswell processors. Do
>>> you have microcode loading set up?
>>>
>>> ~Andrew
>>>
>> Still happening with kernel-genkernel-x86_64-4.1.15-gentoo and updated
>> cpu microcode, using microcode from 20151106.
> Ok - I previously investigated this issue, but my repro evaporated from
> under my feet with a firmware update, and I never got to the bottom of it.
>
> Please can you start with the following patch which will dump some more
> information on crash.
>
> ---8<---
> diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
> index 1228568..588b562 100644
> --- a/xen/arch/x86/irq.c
> +++ b/xen/arch/x86/irq.c
> @@ -1165,6 +1165,13 @@ static void __do_IRQ_guest(int irq)
>      if ( action->ack_type == ACKTYPE_EOI )
>      {
>          sp = pending_eoi_sp(peoi);
> +        if ( unlikely(!((sp == 0) || (peoi[sp-1].vector < vector))) )
> +        {
> +            int p;
> +            for ( p = sp; p > 0; --p )
> +                printk("**peoi[%d] = {%d, 0x%u, %d}\n",
> +                       p-1, peoi[p-1].irq, peoi[p-1].vector,
> peoi[p-1].ready);
> +        }
>          ASSERT((sp == 0) || (peoi[sp-1].vector < vector));
>          ASSERT(sp < (NR_DYNAMIC_VECTORS-1));
>          peoi[sp].irq = irq;

Actually, this will be more useful:

diff --git a/xen/arch/x86/irq.c b/xen/arch/x86/irq.c
index 1228568..4e75b03 100644
--- a/xen/arch/x86/irq.c
+++ b/xen/arch/x86/irq.c
@@ -1165,6 +1165,15 @@ static void __do_IRQ_guest(int irq)
     if ( action->ack_type == ACKTYPE_EOI )
     {
         sp = pending_eoi_sp(peoi);
+        if ( unlikely(!((sp == 0) || (peoi[sp-1].vector < vector))) )
+        {
+            int p;
+
+            printk("** sp %d, irq %d, vec %#x\n", sp, irq, vector);
+            for ( p = sp; p > 0; --p )
+                printk("**peoi[%d] = {%d, %#x, %d}\n",
+                       p-1, peoi[p-1].irq, peoi[p-1].vector,
peoi[p-1].ready);
+        }
         ASSERT((sp == 0) || (peoi[sp-1].vector < vector));
         ASSERT(sp < (NR_DYNAMIC_VECTORS-1));
         peoi[sp].irq = irq;

  reply	other threads:[~2016-01-17 15:25 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-15 10:58 [BUG] Assertion '(sp == 0) || (peoi[sp-1].vector < vector)' failed at irq.c:1163 Håkon Alstadheim
2016-01-15 11:05 ` Andrew Cooper
2016-01-15 12:32   ` Håkon Alstadheim
2016-01-15 12:42     ` Jan Beulich
2016-01-15 12:49       ` Håkon Alstadheim
2016-01-15 13:09         ` Ian Campbell
2016-01-15 13:20           ` Håkon Alstadheim
2016-01-15 14:34         ` Håkon Alstadheim
2016-01-17 14:50   ` Håkon Alstadheim
2016-01-17 15:16     ` Andrew Cooper
2016-01-17 15:25       ` Andrew Cooper [this message]
2016-01-22  8:57         ` Håkon Alstadheim
2016-01-22  9:20           ` Andrew Cooper
2016-01-22 10:06             ` Jan Beulich
2016-01-17 16:30       ` Håkon Alstadheim
2016-01-17 23:07         ` Håkon Alstadheim
2016-01-17 23:12           ` Andrew Cooper
2016-01-18 10:31           ` Jan Beulich
2016-01-18 10:35             ` Andrew Cooper
2016-01-18 10:54               ` Jan Beulich
2016-01-18 16:35             ` Håkon Alstadheim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=569BB278.8080603@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=xen-devel@lists.xen.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.