Re: [NAK] Re: [PATCH -v2 9/9] ACPI, APEI, Generic Hardware Error Source POLL/IRQ/NMI notification type support

Ingo Molnar
2010-10-26T07:56:28Z

* Huang Ying <ying.huang@intel.com> wrote:

> On Tue, 2010-10-26 at 15:22 +0800, Ingo Molnar wrote:
> > * Thomas Gleixner <tglx@linutronix.de> wrote:
> >
> > > >From Kconfig:
> > >
> > > EDAC is designed to report errors in the core system.
> > > These are low-level errors that are reported in the CPU or
> > > supporting chipset or other subsystems:
> > > memory errors, cache errors, PCI errors, thermal throttling, etc..
> > > If unsure, select 'Y'.
> > >
> > > So please explain why your error reporting is so different from the above that it
> > > justifies a separate facility. And you better come up with a real good explanation
> > > other than we looked at EDAC and it did not fit our needs.
> >
> > Btw., it's not just about EDAC - the firmware can store Linux events
> > persistently (beyond allowing the firmware to insert its own RAS events), that
> > is obviously _hugely_ useful for kernel debugging in general. We could inject
> > debugging events there and recover them after a crash, etc.
>
> Yes. It can be used by other kernel subsystems other than RAS. A kernel API is
> provided already. The design of the kernel API makes it easy to be used by various
> kernel subsystems. As the first step, we plan to support saving kernel log before
> panic and reading it back after reboot.

And that's the problem: we have good facilities already that deal with similar
things. We have NMI-safe event logging, event enumeration, dump-on-panic code and
all sorts of goodies there.

But what did Andi's guidance/design lead you to do instead?

You stuck a useful hw feature into a vendor specific area of the kernel and exported
it to /dev/erst-dbg via a crappy ABI. You also did it in the worst possible
imaginable way: you avoided talking to the people who maintain and know the
RAS/EDAC/debugging/instrumentation code, and you tried to create an ABI to export it
in the most raw form possible - limiting our future options.

All that done so that dealing with those pesky RAS/EDAC, instrumentation and core
kernel people can be avoided? ;-)

Sucks IMHO.

Thanks,

Ingo