From: "Michael S. Tsirkin" <mst@redhat.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: xen-devel@lists.xensource.com, pmatouse@redhat.com,
Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
qemu-devel@nongnu.org,
Malcolm Crossley <malcolm.crossley@citrix.com>
Subject: Re: [Qemu-devel] [Xen-devel] [PATCH][XSA-126] xen: limit guest control of PCI command register
Date: Mon, 8 Jun 2015 11:36:10 +0200 [thread overview]
Message-ID: <20150608113130-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <557576760200007800081DC8@mail.emea.novell.com>
On Mon, Jun 08, 2015 at 10:03:18AM +0100, Jan Beulich wrote:
> >>> On 08.06.15 at 10:09, <malcolm.crossley@citrix.com> wrote:
> > On 08/06/15 08:42, Jan Beulich wrote:
> >> Not really. All we concluded so far is that _maybe_ the bridge, upon
> >> seeing the UR, generates a Master Abort, rendering the whole thing
> >> fatal. Otoh the respective root port also has
> >> - Received Master Abort set in its Secondary Status register (but
> >> that's also already the case in the log that we have before the UR
> >> occurs, i.e. that doesn't mean all that much),
> >> - Received System Error set in its Secondary Status register (and
> >> after the UR the sibling endpoint [UR originating from 83:00.0,
> >> sibling being 83:00.1] also shows Signaled System Error set).
> >>
> >
> > Disabling the Memory decode in the command register could also result in a
> > completion timeout on the
> > root port issuing a transaction towards the PCI device in question. PCIE
> > completion timeouts can be
> > escalated to Fatal AER errors which trigger system firmware to inject NMI's
> > into the host.
>
> And how does all that play with PC compatibility (where writes into
> no-where get dropped, and reads from no-where get all ones
> returned)? Remember - we#re talking about CPU side accesses
> here.
>
> > Here is an example AER setup for a PCIE root port. You can see UnsupReq
> > errors are masked and so do
> > not trigger errors. CmpltTO ( completion timeout) errors are not masked and
> > the errors are treated
> > as Fatal because the corresponding bit in the Uncorrectable Severity
> > register is set.
> >
> > Capabilities: [148 v1] Advanced Error Reporting
> > UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq-
> > ACSViol-
> > UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt+ UnxCmplt+ RxOF- MalfTLP- ECRC-
> > UnsupReq+ ACSViol+
> > UESvrt: DLP+ SDES+ TLP+ FCP+ CmpltTO+ CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC-
> > UnsupReq- ACSViol-
> > CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
> > CEMsk: RxErr+ BadTLP+ BadDLLP+ Rollover+ Timeout+ NonFatalErr+
> > AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> >
> > A root port completion timeout will also result in the master abort bit
> > being set.
> >
> > Typically system firmware clears the error in the AER registers after it's
> > processed it. So the
> > operating system may not be able to determine what error triggered the NMI
> > in the first place.
>
> Right, but in the case at hand we have an ITP log available, which
> increases the hope that we see a reasonably complete picture.
>
> >>> Do we can chalk this up to hardware bugs on a specific box?
> >>
> >> I have to admit that I'm still very uncertain whether to consider all
> >> this correct behavior, a firmware flaw, or a hardware bug.
> > I believe the correct behaviour is happening but a PCIE completion timeout
> > is occurring instead of a
> > unsupported request.
>
> Might it be that with the supposedly correct device returning UR
> the root port reissues the request to the sibling device, which then
> fails it in a more dramatic way (albeit the sibling's Uncorrectable
> Error Status Register also has only Unsupported Request Error
> Status set)?
>
> Jan
Isn't the sibling a function on the same device?
And is the request causing the UR a memory read?
If so doesn't this use address routing?
What does it mean that the request is "to the sibling device" then?
Does the sibling device have a BAR overlapping the address?
--
MST
next prev parent reply other threads:[~2015-06-08 9:36 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-31 14:18 [Qemu-devel] [PATCH][XSA-126] xen: limit guest control of PCI command register Stefano Stabellini
2015-04-01 9:01 ` Michael S. Tsirkin
2015-04-01 9:20 ` Stefano Stabellini
2015-04-01 9:32 ` Michael S. Tsirkin
2015-04-01 9:41 ` [Qemu-devel] [Xen-devel] " Andrew Cooper
2015-04-01 9:59 ` Michael S. Tsirkin
2015-04-13 8:17 ` Jan Beulich
2015-04-13 11:19 ` Michael S. Tsirkin
2015-04-13 11:34 ` Jan Beulich
2015-04-13 11:47 ` Michael S. Tsirkin
2015-04-13 12:40 ` Jan Beulich
2015-04-13 12:47 ` Michael S. Tsirkin
2015-04-13 12:51 ` Jan Beulich
2015-04-20 13:43 ` Michael S. Tsirkin
2015-04-20 14:08 ` Jan Beulich
2015-04-20 14:32 ` Michael S. Tsirkin
2015-04-20 14:57 ` Jan Beulich
2015-06-07 6:23 ` Michael S. Tsirkin
2015-06-08 7:42 ` Jan Beulich
2015-06-08 8:09 ` Malcolm Crossley
2015-06-08 8:59 ` Michael S. Tsirkin
2015-06-08 9:03 ` Jan Beulich
2015-06-08 9:36 ` Michael S. Tsirkin [this message]
2015-06-08 10:55 ` Jan Beulich
2015-06-08 11:28 ` Michael S. Tsirkin
2015-06-08 11:44 ` Jan Beulich
2015-06-10 7:00 ` Jan Beulich
2015-06-10 11:43 ` Michael S. Tsirkin
2015-06-10 12:06 ` Jan Beulich
2015-06-10 13:35 ` Michael S. Tsirkin
2015-06-08 9:30 ` Michael S. Tsirkin
2015-06-08 10:38 ` Jan Beulich
2015-06-10 7:08 ` Jan Beulich
2015-06-10 11:46 ` Michael S. Tsirkin
2015-06-10 12:10 ` Jan Beulich
2015-04-01 9:50 ` Ian Campbell
2015-04-01 10:12 ` Michael S. Tsirkin
2015-04-09 18:10 ` [Qemu-devel] " Peter Maydell
2015-04-10 11:45 ` Peter Maydell
2015-04-10 11:49 ` Peter Maydell
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=20150608113130-mutt-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=malcolm.crossley@citrix.com \
--cc=pmatouse@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).