From: Borislav Petkov <bp@alien8.de>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: Chen Yucong <slaoub@gmail.com>,
"ak@linux.intel.com" <ak@linux.intel.com>,
"aravind.gopalakrishnan@amd.com" <aravind.gopalakrishnan@amd.com>,
"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2 v2] x86, mce, severity: extend the the mce_severity
Date: Thu, 6 Nov 2014 19:22:06 +0100 [thread overview]
Message-ID: <20141106182206.GG4318@pd.tnic> (raw)
In-Reply-To: <3908561D78D1C84285E8C5FCA982C28F329240AE@ORSMSX114.amr.corp.intel.com>
On Thu, Nov 06, 2014 at 05:27:14PM +0000, Luck, Tony wrote:
> >> +int mce_severity(struct mce *m, int tolerant, char **msg, bool is_excp)
> >
> > You're adding a function argument which is carrying redundant info which
> > is already present in *m...
> >
> >> {
> >> + enum exception excp = (is_excp ? EXCP_CONTEXT : NO_EXCP);
> >
> > ... and so this should be:
> >
> > excp = ((m->mcg_status & MCG_STATUS_MCIP) ? EXCP_CONTEXT : NO_EXCP);
>
> That only works if you trust that MCG_STATUS.MCIP is correctly set to indicate whether
> we are in MCE or CMCI context. The current code doesn't do that - we check for, and flag
> it as a fatal error if we find ourselves in the MCE handler with MCIP==0. If you add the
> code you suggest, then it completely neuters the severity check:
>
> MCESEV(
> PANIC, "MCIP not set in MCA handler",
> MCGMASK(MCG_STATUS_MCIP, 0)
> ),
I was looking at the version Chen did:
MCESEV(
PANIC, "MCIP not set in MCA handler",
EXCP, MCGMASK(MCG_STATUS_MCIP, 0)
),
and then
if (s->excp && excp != s->excp)
continue;
Basically, this check is being done only for machine check exceptions
only.
> I'm also a bit worried about the check for DEFERRED errors in
> the severity table. That isn't conditional on an:
> if (intel) do_onething(); else /*amd/ do_anotherthing();
> So if we can misinterpret some bits on an Intel cpu as if
> we had a deferred error.
>
> Overall, this might have seemed like a good idea to begin with,
> but we are piling more complexity into mce_severity() [a routine
> which everyone agrees is already tough to understand].
>
> It doesn't even buy us some simple code in the polling path.
> We still have to do more checks on MCi_STATUS.MCACOD above
> and beyond what we get back from mce_severity()
>
> Boris: Do you still want to keep pushing this way? Or should
> we look back fondly at version 1 of this patch?
You mean the one which doesn't touch mce_severity() at all and decides
on deferred errors in a separate, completely unrelated function? Yeah,
that might be cleaner after all.
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
next prev parent reply other threads:[~2014-11-06 18:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-05 4:47 [PATCH 0/2 v2] RAS: add the support for handling UCNA/DEFERRED error Chen Yucong
2014-11-05 4:47 ` [PATCH 1/2 v2] x86, mce, severity: extend the the mce_severity Chen Yucong
2014-11-05 18:27 ` Tony Luck
2014-11-06 1:54 ` Chen Yucong
2014-11-06 15:41 ` Borislav Petkov
2014-11-06 15:35 ` Borislav Petkov
2014-11-06 17:27 ` Luck, Tony
2014-11-06 18:22 ` Borislav Petkov [this message]
2014-11-06 18:32 ` Luck, Tony
2014-11-06 18:56 ` Borislav Petkov
2014-11-06 21:24 ` Luck, Tony
2014-11-07 12:12 ` Borislav Petkov
2014-11-05 4:47 ` [PATCH 2/2 v2] x86, mce: support memory error recovery for both UCNA and Deferred error in machine_check_poll Chen Yucong
2014-11-06 15:48 ` Borislav Petkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20141106182206.GG4318@pd.tnic \
--to=bp@alien8.de \
--cc=ak@linux.intel.com \
--cc=aravind.gopalakrishnan@amd.com \
--cc=linux-edac@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=slaoub@gmail.com \
--cc=tony.luck@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox