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

Re: [Xen-devel] Interrupt injection with ISR set on Intel hardware



> From: Roger Pau Monné [mailto:roger.pau@xxxxxxxxxx]
> Sent: Wednesday, December 12, 2018 7:25 PM
> 
> On Wed, Dec 12, 2018 at 10:36:44AM +0000, Tian, Kevin wrote:
> > > From: Roger Pau Monné [mailto:roger.pau@xxxxxxxxxx]
> > > Sent: Monday, October 15, 2018 6:30 PM
> > > (XEN)   [22642] POWER    TYPE 4
> > > (XEN)   [22643] IDLE     PPR 0x00000020
> > > (XEN)                    IRR
> > >
> 00000000000000000000000000000000000000000000000000000000000000
> > > 00
> > > (XEN)                    ISR
> > >
> 00000000020000000000000000000000000000000000000000000000000000
> > > 00
> > > (XEN)   [22644] WAKE     PPR 0x00000020
> > > (XEN)                    IRR
> > >
> 00000000020000000000000000000000000000000000000000000000000000
> > > 00
> > > (XEN)                    ISR
> > >
> 00000000020000000000000000000000000000000000000000000000000000
> > > 00
> >
> > looks pending IRR (0x21) doesn't always trigger a spurious interrupt?
> 
> Yes, that's correct. Having a pending IRR and going idle doesn't
> always trigger the spurious interrupt re-injection.
> 
> > is it a fixed pattern after how many rounds of Cstate enter/exit with
> > pending IRR(0x21) then you see assertion happened (in this example
> > it happens at 3rd time)?
> 
> It's not a fixed pattern, here's another trace with IRR(0x21) being
> pending just once during the Cstate transitions:

did you observe a case where such asset may occur when IRR(0x21)
is cleared but ISR (0x21) is set?

I want to understand whether pending ISR alone triggers such 
problem or another pending IRR together is necessary... 

> 
> (XEN) *** Pending EOI error ***
> (XEN)   cpu #1, irq 30, vector 0x21, sp 1
> (XEN) Peoi stack: sp 1
> (XEN)   [ 0] irq  30, vec 0x21, ready 0, ISR 1, TMR 0, IRR 0
> (XEN) Peoi stack trace records:
> (XEN)   [ 7886] ACK_POST PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7887] POWER    TYPE 5
> (XEN)   [ 7888] IDLE     PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7889] WAKE     PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 04
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7890] ACK_PRE  PPR 0x000000f0
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 04
> (XEN)   [ 7891] ACK_POST PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7892] POWER    TYPE 5
> (XEN)   [ 7893] IDLE     PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7894] WAKE     PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 04
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7895] ACK_PRE  PPR 0x000000f0
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 04
> (XEN)   [ 7896] ACK_POST PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7897] POWER    TYPE 5
> (XEN)   [ 7898] IDLE     PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7899] WAKE     PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 04
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7900] ACK_PRE  PPR 0x000000f0
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 04
> (XEN)   [ 7901] ACK_POST PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7902] POWER    TYPE 5
> (XEN)   [ 7903] IDLE     PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7904] WAKE     PPR 0x00000010
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7905] PUSH     {sp  0, irq  30, vec 0x21}
> (XEN)   [ 7906] POWER    TYPE 3
> (XEN)   [ 7907] IDLE     PPR 0x00000020
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7908] WAKE     PPR 0x00000020
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7909] POWER    TYPE 3
> (XEN)   [ 7910] IDLE     PPR 0x00000020
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7911] WAKE     PPR 0x00000020
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7912] POWER    TYPE 3
> (XEN)   [ 7913] IDLE     PPR 0x00000020
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7914] WAKE     PPR 0x00000020
> (XEN)                    IRR
> 00000000000000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7915] POWER    TYPE 3
> (XEN)   [ 7916] IDLE     PPR 0x00000020
> (XEN)                    IRR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)   [ 7917] WAKE     PPR 0x00000020
> (XEN)                    IRR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN)                    ISR
> 00000000020000000000000000000000000000000000000000000000000000
> 00
> (XEN) All LAPIC state:
> (XEN)   [vector]      ISR      TMR      IRR
> (XEN)   [1f:00]  00000000 00000000 00000000
> (XEN)   [3f:20]  00000002 00000000 00000000
> (XEN)   [5f:40]  00000000 00000000 00000000
> (XEN)   [7f:60]  00000000 00000000 00000000
> (XEN)   [9f:80]  00000000 00000000 00000000
> (XEN)   [bf:a0]  00000000 00000000 00000000
> (XEN)   [df:c0]  00000000 00000000 00000000
> (XEN)   [ff:e0]  00000000 00000000 04000000
> (XEN) Assertion '(sp == 0) || (peoi[sp-1].vector < vector)' failed at 
> irq.c:1340
> (XEN) ----[ Xen-4.12-unstable  x86_64  debug=y   Tainted:  C   ]----
> (XEN) CPU:    1
> (XEN) RIP:    e008:[<ffff82d080288e1d>] do_IRQ+0x91c/0xb08
> (XEN) RFLAGS: 0000000000010012   CONTEXT: hypervisor
> (XEN) rax: ffff83086c67002c   rbx: 0000000000000180   rcx:
> 0000000000000000
> (XEN) rdx: ffff83086c687fff   rsi: 000000000000000a   rdi: ffff83086c601e24
> (XEN) rbp: ffff83086c687d98   rsp: ffff83086c687d38   r8:  ffff83086c690000
> (XEN) r9:  0000000000000030   r10: 0000000004000000   r11:
> 0000000000000007
> (XEN) r12: 000000000000011f   r13: 00000000ffffffff   r14: ffff83086c601e00
> (XEN) r15: ffff82cfffffb100   cr0: 0000000080050033   cr4:
> 00000000003526e0
> (XEN) cr3: 0000000855b9f000   cr2: 00007f86c9ffd708
> (XEN) fsb: 0000000000000000   gsb: 0000000000000000   gss:
> 0000000000000000
> (XEN) ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: 0000   cs: e008
> (XEN) Xen code around <ffff82d080288e1d> (do_IRQ+0x91c/0xb08):
> (XEN)  8d 7e 24 e8 6b 4c fb ff <0f> 0b 0f 0b 0f 0b 0f 0b b8 00 00 00 00 eb 4e
> 83
> (XEN) Xen stack trace from rsp=ffff83086c687d38:
> (XEN)    ffff82d000000000 ffff83086c601e24 0000000000000000
> ffff83086c6704e0
> (XEN)    ffff82d080384841 ffff82d080384835 ffff82d080384841
> 0000000000000000
> (XEN)    0000000000000000 0000000000000000 ffff83086c687fff
> 0000000000000000
> (XEN)    00007cf793978237 ffff82d0803848aa 00000002c9f5819b
> 0000000000000008
> (XEN)    ffff83086c6738d8 ffff83086c673820 ffff83086c687ec0
> 00000002c9f631f5
> (XEN)    ffff83086c6708f8 ffff83086c6704e0 ffff83086c670918
> 0000000000000180
> (XEN)    ffff83086c67002c 0000000000000000 ffff83086c687fff
> 0000000000000ffb
> (XEN)    ffff83086c673850 0000002100000000 ffff82d0802e8ba9
> 000000000000e008
> (XEN)    0000000000000202 ffff83086c687e50 0000000000000000
> ffff83086c68f000
> (XEN)    00000020ffffffff 0000000000000000 ffff83086c687ee8
> ffff82d0805a3900
> (XEN)    0000000000000000 0000000000000000 000003530000012a
> ffff82d0805ab880
> (XEN)    0000000000000001 ffff82d0805a3900 0000000000000001
> 0000000000000001
> (XEN)    ffff83085607d000 ffff83086c687ef0 ffff82d080278a68
> ffff83086c6a5000
> (XEN)    ffff83086c68f000 ffff830851580000 ffff83086c6a5000
> ffff83086c687da8
> (XEN)    0000000000000000 0000000000000000 ffff880269a39e80
> ffff880269a39e80
> (XEN)    0000000000000004 0000000000000004 0000000000000001
> 00000000000000f3
> (XEN)    0000000000000000 000000000b2777bc ffffffff816fe980
> ffff88027331a7c0
> (XEN)    ffffffff82049af8 ffff88027331a7c0 00000000cb5efd00
> 0000beef0000beef
> (XEN)    ffffffff816fec52 000000bf0000beef 0000000000000246
> ffffc90000d0be98
> (XEN)    000000000000beef 000000000000beef 000000000000beef
> 000000000000beef
> (XEN) Xen call trace:
> (XEN)    [<ffff82d080288e1d>] do_IRQ+0x91c/0xb08
> (XEN)    [<ffff82d0803848aa>] common_interrupt+0x10a/0x120
> (XEN)    [<ffff82d0802e8ba9>] mwait-idle.c#mwait_idle+0x2a5/0x381
> (XEN)    [<ffff82d080278a68>] domain.c#idle_loop+0xb3/0xb5
> (XEN)
> (XEN)
> (XEN) ****************************************
> (XEN) Panic on CPU 1:
> (XEN) Assertion '(sp == 0) || (peoi[sp-1].vector < vector)' failed at 
> irq.c:1340
> (XEN) ****************************************
> (XEN)
> (XEN) Manual reset required ('noreboot' specified)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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