From: Lukas Wunner <lukas@wunner.de>
To: Linas Vepstas <linasvepstas@gmail.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
Terry Bowman <terry.bowman@amd.com>,
Ilpo Jarvinen <ilpo.jarvinen@linux.intel.com>,
Sathyanarayanan Kuppuswamy
<sathyanarayanan.kuppuswamy@linux.intel.com>,
Niklas Schnelle <schnelle@linux.ibm.com>,
Mahesh J Salgaonkar <mahesh@linux.ibm.com>,
Oliver OHalloran <oohall@gmail.com>,
linuxppc-dev@lists.ozlabs.org, linux-pci@vger.kernel.org,
linux-doc@vger.kernel.org,
Brian Norris <briannorris@chromium.org>
Subject: Re: [PATCH 3/4] PCI/ERR: Amend documentation with DPC and AER specifics
Date: Sat, 30 Aug 2025 10:12:44 +0200 [thread overview]
Message-ID: <aLKyfNHC2hz__BCS@wunner.de> (raw)
In-Reply-To: <CAHrUA364QSpcJOu=96JV-3hR9G5M0FSUPNhb4AspULAcXvQP6w@mail.gmail.com>
On Fri, Aug 29, 2025 at 06:25:08PM -0500, Linas Vepstas wrote:
> On Fri, Aug 29, 2025 at 2:41AM Lukas Wunner <lukas@wunner.de> wrote:
> >
> > + On platforms supporting Downstream Port Containment, the link to the
> > + sub-hierarchy with the faulting device is re-enabled in STEP 3 (Link
> > + Reset). Hence devices in the sub-hierarchy are inaccessible until
> > + STEP 4 (Slot Reset).
>
> I'm confused. In the good old days, w/EEH, a slot reset was literally turning
> the power off and on again to the device, for that slot. So it's not so much
> that the device becomes "accessible again", but that it is now fresh, clean
> but also unconfigured. I have not studied DPC, but the way this is worded
> here makes me think that something else is happening.
With DPC, when a Downstream Port (or Root Port) detects an error,
it immediately disables the downstream link, thereby preventing
corrupted data from reaching the rest of the system. So the error
is "contained" at the Downstream Port.
It is then necessary for system software (i.e. drivers/pci/pcie/dpc.c)
to "release" the Downstream Port out of containment by re-enabling the
link. This happens in dpc_reset_link() by writing (and thus clearing)
the PCI_EXP_DPC_STATUS_TRIGGER bit in the PCI_EXP_DPC_STATUS register.
In-between, the devices downstream are inaccessible.
Disabling the link results in a Hot Reset being propagated down the
hierarchy below the Downstream Port. So there's no power cycle
involved. After the link is re-enabled, devices are in power state
D0_uninitialized and need to be re-initialized by the driver in
->slot_reset() and/or ->resume().
If you feel the above-quoted paragraph isn't accurate or complete
or doesn't capture this sequence of events properly, please let me
know what specifically should be rephrased / amended.
Thanks for taking a look!
Lukas
next prev parent reply other threads:[~2025-08-30 8:12 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-29 7:25 [PATCH 0/4] PCI: Update error recovery documentation Lukas Wunner
2025-08-29 7:25 ` [PATCH 1/4] PCI/AER: Sync documentation with code Lukas Wunner
2025-08-29 7:25 ` [PATCH 2/4] PCI/ERR: " Lukas Wunner
2025-08-29 7:25 ` [PATCH 3/4] PCI/ERR: Amend documentation with DPC and AER specifics Lukas Wunner
2025-08-29 8:38 ` Niklas Schnelle
2025-08-29 23:25 ` Linas Vepstas
2025-08-30 8:12 ` Lukas Wunner [this message]
2025-08-29 7:25 ` [PATCH 4/4] PCI/ERR: Tidy documentation's PCIe nomenclature Lukas Wunner
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=aLKyfNHC2hz__BCS@wunner.de \
--to=lukas@wunner.de \
--cc=briannorris@chromium.org \
--cc=corbet@lwn.net \
--cc=helgaas@kernel.org \
--cc=ilpo.jarvinen@linux.intel.com \
--cc=linasvepstas@gmail.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mahesh@linux.ibm.com \
--cc=oohall@gmail.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
--cc=schnelle@linux.ibm.com \
--cc=terry.bowman@amd.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).