Re: [Linux-kernel-mentees] [RFC PATCH 00/35] Move all PCIBIOS* definitions into arch/x86
From: David Laight <hidden>
Date: 2020-07-16 08:07:46
Also in:
linux-pci, linuxppc-dev, lkml, sparclinux
From: Benjamin Herrenschmidt
Sent: 15 July 2020 23:49 On Wed, 2020-07-15 at 17:12 -0500, Bjorn Helgaas wrote:quoted
quoted
I've 'played' with PCIe error handling - without much success. What might be useful is for a driver that has just read ~0u to be able to ask 'has there been an error signalled for this device?'.In many cases a driver will know that ~0 is not a valid value for the register it's reading. But if ~0 *could* be valid, an interface like you suggest could be useful. I don't think we have anything like that today, but maybe we could. It would certainly be nice if the PCI core noticed, logged, and cleared errors. We have some of that for AER, but that's an optional feature, and support for the error bits in the garden-variety PCI_STATUS register is pretty haphazard. As you note below, this sort of SERR/PERR reporting is frequently hard-wired in ways that takes it out of our purview.We do have pci_channel_state (via pci_channel_offline()) which covers the cases where the underlying error handling (such as EEH or unplug) results in the device being offlined though this tend to be asynchronous so it might take a few ~0's before you get it.
On one of my systems I don't think the error TLP from the target made its way past the first bridge - I could see the error in it's status registers. But I couldn't find any of the AER status registers in the root bridge. So I think you'd need a software poll of the bridge registers to find out (and clear) the error. The NMI on the dell system (which is supposed to meet some special NEBS? server requirements) is just stupid. Too late to be synchronous and impossible for the OS to handle. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales) _______________________________________________ Linux-kernel-mentees mailing list Linux-kernel-mentees@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees