mbox series

[v6,0/9] Add Error Disconnect Recover (EDR) support

Message ID cover.1564177080.git.sathyanarayanan.kuppuswamy@linux.intel.com
Headers show
Series Add Error Disconnect Recover (EDR) support | expand

Message

Kuppuswamy Sathyanarayanan July 26, 2019, 9:43 p.m. UTC
From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>

This patchset adds support for following features:

1. Error Disconnect Recover (EDR) support.
2. _OSC based negotiation support for DPC.

You can find EDR spec in the following link.

https://members.pcisig.com/wg/PCI-SIG/document/12614

Changes since v5:
 * Addressed Keith's comments.
 * Added additional check for FF mode in pci_aer_init().
 * Updated commit history of "PCI/DPC: Add support for DPC recovery on NON_FATAL errors" patch.

Changes since v4:
 * Rebased on top of v5.3-rc1
 * Fixed lock/unlock issue in edr_handle_event().
 * Merged "Update error status after reset_link()" patch into this patchset.

Changes since v3:
 * Moved EDR related ACPI functions/definitions to pci-acpi.c
 * Modified commit history in few patches to include spec reference.
 * Added support to handle DPC triggered by NON_FATAL errors.
 * Added edr_lock to protect PCI device receiving duplicate EDR notifications.
 * Addressed Bjorn comments.

Changes since v2:
 * Split EDR support patch into multiple patches.
 * Addressed Bjorn comments.

Changes since v1:
 * Rebased on top of v5.1-rc1

Kuppuswamy Sathyanarayanan (9):
  PCI/ERR: Update error status after reset_link()
  PCI/ACPI: Add _OSC based negotiation support for DPC
  PCI/ACPI: Expose EDR support via _OSC to BIOS
  PCI/DPC: Allow dpc_probe() even if firmware first mode is enabled
  PCI/DPC: Add dpc_process_error() wrapper function
  PCI/DPC: Add Error Disconnect Recover (EDR) support
  PCI/AER: Allow clearing Error Status Register in FF mode
  PCI/DPC: Update comments related to DPC recovery on NON_FATAL errors
  PCI/DPC: Clear AER registers in EDR mode

 drivers/acpi/pci_root.c         |   9 ++
 drivers/pci/pci-acpi.c          |  91 +++++++++++++++
 drivers/pci/pcie/Kconfig        |  10 ++
 drivers/pci/pcie/aer.c          |  12 +-
 drivers/pci/pcie/dpc.c          | 196 +++++++++++++++++++++++++++++---
 drivers/pci/pcie/err.c          |  11 +-
 drivers/pci/pcie/portdrv_core.c |   8 +-
 drivers/pci/probe.c             |   1 +
 include/linux/acpi.h            |   4 +-
 include/linux/pci-acpi.h        |  11 ++
 include/linux/pci.h             |   2 +-
 11 files changed, 322 insertions(+), 33 deletions(-)

Comments

Keith Busch July 26, 2019, 9:53 p.m. UTC | #1
On Fri, Jul 26, 2019 at 02:43:10PM -0700, sathyanarayanan.kuppuswamy@linux.intel.com wrote:
> From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
> 
> This patchset adds support for following features:
> 
> 1. Error Disconnect Recover (EDR) support.
> 2. _OSC based negotiation support for DPC.
> 
> You can find EDR spec in the following link.
> 
> https://members.pcisig.com/wg/PCI-SIG/document/12614

Thank you for sticking with this. I've reviewed the series and I think
this looks good for the next merge window.

Acked-by: Keith Busch <keith.busch@intel.com>
Kuppuswamy Sathyanarayanan July 26, 2019, 11:31 p.m. UTC | #2
+Austin , Huong

On 7/26/19 2:53 PM, Keith Busch wrote:
> On Fri, Jul 26, 2019 at 02:43:10PM -0700, sathyanarayanan.kuppuswamy@linux.intel.com wrote:
>> From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
>>
>> This patchset adds support for following features:
>>
>> 1. Error Disconnect Recover (EDR) support.
>> 2. _OSC based negotiation support for DPC.
>>
>> You can find EDR spec in the following link.
>>
>> https://members.pcisig.com/wg/PCI-SIG/document/12614
> Thank you for sticking with this. I've reviewed the series and I think
> this looks good for the next merge window.
>
> Acked-by: Keith Busch <keith.busch@intel.com>
>
Austin.Bolen@dell.com July 27, 2019, 12:34 a.m. UTC | #3
On 7/26/2019 6:33 PM, sathyanarayanan kuppuswamy wrote:
> +Austin , Huong
>
> On 7/26/19 2:53 PM, Keith Busch wrote:
>> On Fri, Jul 26, 2019 at 02:43:10PM -0700, sathyanarayanan.kuppuswamy@linux.intel.com wrote:
>>> From: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
>>>
>>> This patchset adds support for following features:
>>>
>>> 1. Error Disconnect Recover (EDR) support.
>>> 2. _OSC based negotiation support for DPC.
>>>
>>> You can find EDR spec in the following link.
>>>
>>> https://members.pcisig.com/wg/PCI-SIG/document/12614
>> Thank you for sticking with this. I've reviewed the series and I think
>> this looks good for the next merge window.
>>
>> Acked-by: Keith Busch <keith.busch@intel.com>

Tested on a DPC-enabled PCIe switch (Broadcom PEX9733) in a Dell
PowerEdge R740xd.  Injected fatal and non-fatal errors on an NVMe
endpoint below the switch and on the switch downstream port itself and
verified errors were contained and then recovered at the PCIe level.

Tested-by: Austin Bolen <Austin.Bolen@dell.com‎>

>>
Huong.Nguyen@dell.com July 28, 2019, 4:10 p.m. UTC | #4
-----Original Message-----
From: sathyanarayanan kuppuswamy <sathyanarayanan.kuppuswamy@linux.intel.com> 
Sent: Friday, July 26, 2019 6:31 PM
To: Keith Busch
Cc: bhelgaas@google.com; linux-pci@vger.kernel.org; linux-kernel@vger.kernel.org; ashok.raj@intel.com; keith.busch@intel.com; Bolen, Austin; Nguyen, Huong
Subject: Re: [PATCH v6 0/9] Add Error Disconnect Recover (EDR) support


[EXTERNAL EMAIL] 

+Austin , Huong

On 7/26/19 2:53 PM, Keith Busch wrote:
> On Fri, Jul 26, 2019 at 02:43:10PM -0700, sathyanarayanan.kuppuswamy@linux.intel.com wrote:
>> From: Kuppuswamy Sathyanarayanan 
>> <sathyanarayanan.kuppuswamy@linux.intel.com>
>>
>> This patchset adds support for following features:
>>
>> 1. Error Disconnect Recover (EDR) support.
>> 2. _OSC based negotiation support for DPC.
>>
>> You can find EDR spec in the following link.
>>
>> https://members.pcisig.com/wg/PCI-SIG/document/12614
> Thank you for sticking with this. I've reviewed the series and I think 
> this looks good for the next merge window.
>
> Acked-by: Keith Busch <keith.busch@intel.com>

Tested on a DPC-enabled PCIe switch (Broadcom PEX9733) in a Dell PowerEdge R740xd.  Injected fatal and non-fatal errors on an NVMe endpoint below the switch and on the switch downstream port itself and verified errors were contained and then recovered at the PCIe level.

Tested-by: Huong Nguyen <huong.nguyen@dell.com‎>
>
--
Sathyanarayanan Kuppuswamy
Linux kernel developer