This adds reporting of AER registers from PCI Express devices, exporting via records in hw.pci similar to MCA records. The goal is to be able to retrieve these error records and input them into a database or other reporting mechanism.
This adds new sysctl nodes under hw.pci:
hw.pci.pcib_error_count
hw.pci.pcib_error_records
hw.pci.pcib_probe
hw.pci.pcib_clear_error_records
Plus two tools to read and inject errors. There is also a README included.
Work done by Bo Pang <cjysqpb_AT_hotmail.com>, an intern for EMC/Isilon Storage Division . His summary follows:
Patch on pci_pci.c contains most implementation of AER on the driver. Patch on pcib_private.h adds some entry in softc. New file ReadAER.c reads AER records, compiles using gcc. New file Inject_em0.c is a hard-coded script based my hardware, to inject error into device em0. Compiles using gcc, runs under root privileges.