Re: [PATCH v2 2/4] PCI/DPC/AER: Address Concurrency between AER and DPC

From: Keith Busch
Date: Fri Dec 29 2017 - 13:10:04 EST

On Fri, Dec 29, 2017 at 11:30:02PM +0530, poza@xxxxxxxxxxxxxx wrote:
> On 2017-12-29 22:53, Keith Busch wrote:
> > 2. A DPC event suppresses the error message required for the Linux
> > AER driver to run. How can AER and DPC run concurrently?
> I afraid I could not grasp the first line completely.

A DPC capable and enabled port discards error messages; the ERR_FATAL
or ERR_NONFATAL message required to trigger AER handling won't exist in
such a setup.

This behavior is defined in the specification 6.2.10 for Downstream
Port Containment:

When DPC is triggered due to receipt of an uncorrectable error Message,
the Requester ID from the Message is recorded in the DPC Error
Source ID register and that Message is discarded and not forwarded
Upstream. When DPC is triggered by an unmasked uncorrectable error,
that error will not be signaled with an uncorrectable error Message,
even if otherwise enabled.