[+cc Huang, author of both aer_inject and apei/einj] On Wed, Feb 17, 2016 at 7:33 AM, Jean Delvare <jdelvare@xxxxxxx> wrote: > Hi all, > > I am looking for some guidance regarding AER testing. I see that we > have two different drivers for error injection in the kernel: > aer_inject and apei/einj. The user-space aer-inject tool seems to only > care about the former. > > How does one know which driver should be used on a given system? I > suppose that only one of them will work on a given system? > > My impression is that aer_inject is for "native" AER handling while > apei/einj is for ACPI-driven AER. Is it correct? If not I would > appreciate some pointers explaining when aer_inject should be used and > when apei/einj should be used. My understanding is that: - aer_inject does not actually write to any hardware registers itself (though I do see it writes to some masks). It works by replacing the PCI config accessors with new ones that make it look like the AER registers have errors logged. - apei/einj runs ACPI methods that apparently seed errors. These might use hardware support for seeding errors, which would of course be platform-dependent. So aer_inject should work on any system at all. I think apei/einj will only work if the platform supplies an EINJ table, and even when it does, I suspect different platforms probably have different injection capabilities. Huang probably can give a much better response. Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html