Re: [RFC] RAS/CEC: Should cec_notifier() set MCE_HANDLED_CEC after a soft-offline?

From: Kyle Meyer
Date: Tue Oct 01 2024 - 14:45:48 EST


On Tue, Oct 01, 2024 at 06:24:19PM +0000, Luck, Tony wrote:
> > I noticed CEC should indicate whether it took action to log or handle an error
> > by setting MCE_HANDLED_CEC (commit 1de08dc) and that EDAC and dev-mcelog should
> > skip errors that have been processed by CEC (commit 23ba710).
> >
> > cec_notifier() does not set MCE_HANDLED_CEC when the offlining threshold
> > is reached in cec_add_elem() because the return code is not zero. Is that
> > intentional?
>
> Kyle,
>
> It seems a bit murky. You are right that cec_add_elem() appears to expect three
> different actions from its caller based on the return value being <0, 0, >0. But
> cec_notifier() only has two actions (0 and !0).
>
> But I think this may be OK. The main purpose of CEC is to avoid over-reacting
> to simple corrected memory errors. Many (most?) are due to particle bit flips and
> no action is needed. So setting MCE_HANDLED_CEC for the case where CEC
> counted the error, but took no action feels like the right thing to do.
>
> Conversely, if action was taken (because this was an error that repeated
> enough to hit the threshold) the we do want mcelog/EDAC to give additional
> reporting.

That makes sense. Thank you for the explanation.

Thanks,
Kyle Meyer