From: Sinan Kaya <okaya@codeaurora.org>
To: Keith Busch <keith.busch@intel.com>, Bjorn Helgaas <helgaas@kernel.org>
Cc: linux-pci@vger.kernel.org, Bjorn Helgaas <bhelgaas@google.com>,
Maik Broemme <mbroemme@libmpq.org>
Subject: Re: [PATCH 4/4] PCI/DPC: Print AER status in DPC event handling
Date: Mon, 15 Jan 2018 09:32:59 -0500 [thread overview]
Message-ID: <667d35b4-ded0-ec30-305f-d378bd2e3b2f@codeaurora.org> (raw)
In-Reply-To: <20180114013517.GA12167@localhost.localdomain>
On 1/13/2018 8:35 PM, Keith Busch wrote:
> On Fri, Jan 12, 2018 at 05:03:03PM -0600, Bjorn Helgaas wrote:
>> Hi Keith,
>>
>> On Tue, Dec 19, 2017 at 02:06:43PM -0700, Keith Busch wrote:
>>> A DPC enabled device will suppress sending ERR_FATAL and ERR_NONFATAL,
>>> which prevents the AER handler from reporting the details of the
>>> error. This patch will have the DPC driver get the AER status registers
>>> from the downstream port that detected the uncorrectable error, and
>>> print out additional information.
>>>
>>> Signed-off-by: Keith Busch <keith.busch@intel.com>
>>> ---
>>> drivers/pci/pcie/pcie-dpc.c | 8 ++++++++
>>> 1 file changed, 8 insertions(+)
>>>
>>> diff --git a/drivers/pci/pcie/pcie-dpc.c b/drivers/pci/pcie/pcie-dpc.c
>>> index ef71a472592c..aefc4fbdcef0 100644
>>> --- a/drivers/pci/pcie/pcie-dpc.c
>>> +++ b/drivers/pci/pcie/pcie-dpc.c
>>> @@ -44,6 +44,7 @@ struct dpc_dev {
>>> int cap_pos;
>>> bool rp;
>>> u32 rp_pio_status;
>>> + struct aer_err_info info;
>>> };
>>>
>>> static const char * const rp_pio_error_string[] = {
>>> @@ -111,6 +112,9 @@ static void interrupt_event_handler(struct work_struct *work)
>>> struct pci_dev *dev, *temp, *pdev = dpc->dev->port;
>>> struct pci_bus *parent = pdev->subordinate;
>>>
>>> + if (aer_get_device_error_info(pdev, &dpc->info))
>>> + aer_print_error(pdev, &dpc->info);
>>
>> I'm confused about this. "pdev" is the DPC-enabled Port, i.e., the
>> Port that received an ERR_FATAL or ERR_NONFATAL Message. The Message
>> was generated by something below "pdev", and that's where the
>> interesting AER logging would have been done.
>>
>> This patch suggests that the DPC port itself would have something
>> interesting logged in its AER capability. Is that really true? I see
>> in sec 6.2.10 (PCIe r4.0) that the DPC port should log the Trigger
>> Reason and the Error Source ID from the Message, but I don't see
>> anything about logging anything in its AER registers.
>
> If the trigger reason is "unmasked uncorrectable error", then the DPC
> AER register has useful information. All other reasons would not provide
> useful data in the AER register.
>
>
> I would assume that aer_get_device_error_info would return false if
> it's one of other reasons, but I can fix this up to check the trigger
> reasoning rather than unconditionally reading the AER status
>
https://pcisig.com/sites/default/files/specification_documents/ECN_DPC_2012-02-09_finalized.pdf
If you look at figure 6-2, AER errors are always logged regardless of the DPC
presence.
That's why, I was suggesting Keith that code should also clear the AER information
when such an event happens. Otherwise, same event won't trigger again.
--
Sinan Kaya
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
next prev parent reply other threads:[~2018-01-15 14:32 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-19 21:06 [PATCH 1/4] PCI/AER: Return approrpiate value when AER is not supported Keith Busch
2017-12-19 21:06 ` [PATCH 2/4] PCI/AER: Provide API for getting AER information Keith Busch
2017-12-19 21:06 ` [PATCH 3/4] PCI/DPC: Enable DPC in conjuction with AER Keith Busch
2018-01-15 14:43 ` Sinan Kaya
2018-01-16 1:33 ` Keith Busch
2018-01-16 3:04 ` Sinan Kaya
2017-12-19 21:06 ` [PATCH 4/4] PCI/DPC: Print AER status in DPC event handling Keith Busch
2017-12-21 4:43 ` Sinan Kaya
2017-12-21 5:12 ` Keith Busch
2018-01-10 15:52 ` Sinan Kaya
2018-01-16 2:47 ` Keith Busch
2018-01-17 0:56 ` Bjorn Helgaas
2018-01-17 1:34 ` Keith Busch
2018-01-17 13:36 ` Sinan Kaya
2018-01-12 23:03 ` Bjorn Helgaas
2018-01-14 1:35 ` Keith Busch
2018-01-15 14:32 ` Sinan Kaya [this message]
2018-01-17 0:36 ` Bjorn Helgaas
2018-01-17 0:14 ` Bjorn Helgaas
2017-12-21 1:04 ` [PATCH 1/4] PCI/AER: Return approrpiate value when AER is not supported Bjorn Helgaas
2017-12-21 3:53 ` Dongdong Liu
2017-12-21 14:59 ` Keith Busch
2018-03-20 23:02 ` Bjorn Helgaas
2018-03-21 22:27 ` Keith Busch
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=667d35b4-ded0-ec30-305f-d378bd2e3b2f@codeaurora.org \
--to=okaya@codeaurora.org \
--cc=bhelgaas@google.com \
--cc=helgaas@kernel.org \
--cc=keith.busch@intel.com \
--cc=linux-pci@vger.kernel.org \
--cc=mbroemme@libmpq.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox