From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Sander Eikelenboom <linux@eikelenboom.it>
Cc: Konrad Rzeszutek Wilk <konrad@darnok.org>,
Jan Beulich <JBeulich@suse.com>,
xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: Xen-unstable: xen panic RIP: dpci_softirq
Date: Tue, 18 Nov 2014 15:56:33 -0500 [thread overview]
Message-ID: <20141118205633.GB6540@laptop.dumpdata.com> (raw)
In-Reply-To: <1222042576.20141118180323@eikelenboom.it>
>
> Uhmm i thought i had these switched off (due to problems earlier and then forgot
> about them .. however looking at the earlier reports these lines were also in
> those reports).
>
> The xen-syms and these last runs are all with a prestine xen tree cloned today (staging
> branch), so the qemu-xen and seabios defined with that were also freshly cloned
> and had a new default seabios config. (just to rule out anything stale in my tree)
>
> If you don't see those messages .. perhaps your seabios and qemu trees (and at least the
> seabios config) are not the most recent (they don't get updated automatically
> when you just do a git pull on the main tree) ?
>
> In /tools/firmware/seabios-dir/.config i have:
> CONFIG_USB=y
> CONFIG_USB_UHCI=y
> CONFIG_USB_OHCI=y
> CONFIG_USB_EHCI=y
> CONFIG_USB_XHCI=y
> CONFIG_USB_MSC=y
> CONFIG_USB_UAS=y
> CONFIG_USB_HUB=y
> CONFIG_USB_KEYBOARD=y
> CONFIG_USB_MOUSE=y
>
I seem to have the same thing. Perhaps it is my XHCI controller being wonky.
> And this is all just from a:
> - git clone git://xenbits.xen.org/xen.git -b staging
> - make clean && ./configure && make -j6 && make -j6 install
Aye.
.. snip..
> > 1) test_and_[set|clear]_bit sometimes return unexpected values.
> > [But this might be invalid as the addition of the ffff8303faaf25a8
> > might be correct - as the second dpci the softirq is processing
> > could be the MSI one]
>
> Would there be an easy way to stress test this function separately in some
> debugging function to see if it indeed is returning unexpected values ?
Sadly no. But you got me looking in the right direction when you mentioned
'timeout'.
>
> > 2) INIT_LIST_HEAD operations on the same CPU are not honored.
>
> Just curious, have you also tested the patches on AMD hardware ?
Yes. To reproduce this the first thing I did was to get an AMD box.
>
>
> >> When i look at the combination of (2) and (3), It seems it could be an
> >> interaction between the two passed through devices and/or different IRQ types.
>
> > Could be - as in it is causing this issue to show up faster than
> > expected. Or it is the one that triggers more than one dpci happening
> > at the same time.
>
> Well that didn't seem to be it (see separate amendment i mailed previously)
Right, the current theory I've is that the interrupts are not being
Acked within 8 milisecond and we reset the 'state' - and at the same
time we get an interrupt and schedule it - while we are still processing
the same interrupt. This would explain why the 'test_and_clear_bit'
got the wrong value.
In regards to the list poison - following this thread of logic - with
the 'state = 0' set we open the floodgates for any CPU to put the same
'struct hvm_pirq_dpci' on its list.
We do reset the 'state' on _every_ GSI that is mapped to a guest - so
we also reset the 'state' for the MSI one (XHCI). Anyhow in your case:
CPUX: CPUY:
pt_irq_time_out:
state = 0;
[out of timer coder, the raise_softirq
pirq_dpci is on the dpci_list] [adds the pirq_dpci as state == 0]
softirq_dpci softirq_dpci:
list_del
[entries poison]
list_del <= BOOM
Is what I believe is happening.
The INTX device - once I put a load on it - does not trigger
any pt_irq_time_out, so that would explain why I cannot hit this.
But I believe your card hits these "hiccups".
next prev parent reply other threads:[~2014-11-18 20:56 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-14 13:11 Xen-unstable: xen panic RIP: dpci_softirq Sander Eikelenboom
2014-11-14 13:32 ` Andrew Cooper
2014-11-14 13:37 ` Andrew Cooper
2014-11-14 13:57 ` Jan Beulich
2014-11-14 14:34 ` Sander Eikelenboom
2014-11-14 15:09 ` Jan Beulich
2014-11-14 15:20 ` Sander Eikelenboom
2014-11-14 15:43 ` Jan Beulich
2014-11-14 16:59 ` Sander Eikelenboom
2014-11-14 17:05 ` Konrad Rzeszutek Wilk
2014-11-14 19:56 ` Sander Eikelenboom
2014-11-14 20:25 ` Konrad Rzeszutek Wilk
2014-11-14 22:09 ` Sander Eikelenboom
2014-11-17 16:34 ` Konrad Rzeszutek Wilk
2014-11-17 17:04 ` Sander Eikelenboom
2014-11-17 20:43 ` Konrad Rzeszutek Wilk
2014-11-17 22:40 ` Sander Eikelenboom
2014-11-18 8:28 ` Jan Beulich
[not found] ` <20141118024927.GA32256@andromeda.dapyr.net>
2014-11-18 11:07 ` Sander Eikelenboom
2014-11-18 15:09 ` Sander Eikelenboom
2014-11-18 16:06 ` Sander Eikelenboom
2014-11-18 16:16 ` Konrad Rzeszutek Wilk
2014-11-18 17:03 ` Sander Eikelenboom
2014-11-18 17:20 ` Jan Beulich
2014-11-18 20:34 ` Konrad Rzeszutek Wilk
2014-11-18 20:56 ` Konrad Rzeszutek Wilk [this message]
2014-11-18 22:12 ` Sander Eikelenboom
2014-11-19 1:55 ` Konrad Rzeszutek Wilk
2014-11-19 11:16 ` Sander Eikelenboom
2014-11-19 15:04 ` Konrad Rzeszutek Wilk
2014-11-19 17:27 ` Sander Eikelenboom
2014-11-17 18:01 ` Sander Eikelenboom
2014-11-18 9:30 ` Jan Beulich
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=20141118205633.GB6540@laptop.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=JBeulich@suse.com \
--cc=konrad@darnok.org \
--cc=linux@eikelenboom.it \
--cc=xen-devel@lists.xenproject.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.