Re: [PATCH 0/5] PCI: Reduce AER / EEH deviations

From
Linas Vepstas <linasvepstas@gmail.com>
Date
2025-08-14 00:30:31
Reply to
Lukas Wunner, 2025-08-13
FWIW
Reviewed-by: Linas Vepstas <linasvepstas@gmail.com>

*** Notes: I wrote the original EEH handler, and three or four ethernet and
scsi EEH recovery drivers (including lpfc and qla, if I recall correctly).
I've been inactive in kernel development for more than a decade; I did read
this patch series (carefully); it seems excellent, from my rather distant
viewpoint. My apologies if this email feels like noise to anyone on the cc
list; I feel obliged to respond. -- Linas

On Wed, Aug 13, 2025 at 12:11 AM Lukas Wunner [off-list ref] wrote:
The kernel supports three different PCI error recovery mechanisms:

* AER per PCIe r7.0 sec 6.2 (drivers/pci/pcie/aer.c + err.c)
* EEH on PowerPC (arch/powerpc/kernel/eeh_driver.c)
* zPCI on s390 (arch/s390/pci/pci_event.c)

In theory, they should all follow Documentation/PCI/pci-error-recovery.rst
to afford uniform behavior to drivers across platforms.

In practice, there are deviations which this series seeks to reduce.

One particular pain point is AER not allowing drivers to opt in to a
Bus Reset on Non-Fatal Errors (patch [1/5]).  EEH allows this and the
"xe" graphics driver would like to take advantage of it on AER-capable
platforms.  Patches [2/5] to [4/5] address various other deviations,
while patch [5/5] cleans up old gunk in code comments.

I've gone through all drivers implementing pci_error_handlers to ascertain
that no regressions are introduced by these changes.  Nevertheless further
reviewing and testing would be appreciated to raise the confidence.
Thanks!

Lukas Wunner (5):
  PCI/AER: Allow drivers to opt in to Bus Reset on Non-Fatal Errors
  PCI/ERR: Fix uevent on failure to recover
  PCI/ERR: Notify drivers on failure to recover
  PCI/ERR: Update device error_state already after reset
  PCI/ERR: Remove remnants of .link_reset() callback

 .../ethernet/qlogic/qlcnic/qlcnic_83xx_hw.c   |  1 -
 .../net/ethernet/qlogic/qlcnic/qlcnic_main.c  |  2 -
 drivers/net/ethernet/sfc/efx_common.c         |  3 --
 drivers/net/ethernet/sfc/falcon/efx.c         |  3 --
 drivers/net/ethernet/sfc/siena/efx_common.c   |  3 --
 drivers/pci/pcie/err.c                        | 40 ++++++++++++++-----
 drivers/scsi/lpfc/lpfc_init.c                 |  2 +-
 drivers/scsi/qla2xxx/qla_os.c                 |  5 ---
 8 files changed, 32 insertions(+), 27 deletions(-)

--
2.47.2
-- 
Patrick: Are they laughing at us?
Sponge Bob: No, Patrick, they are laughing next to us.
Thread (23 messages) 23 messages, 5 authors, last reply 2025-08-18
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help