From: Yazen Ghannam <yazen.ghannam@amd.com>
To: Ingo Molnar <mingo@kernel.org>
Cc: Avadhut Naik <avadnaik@amd.com>,
linux-edac@vger.kernel.org, x86@kernel.org,
linux-kernel@vger.kernel.org, bp@alien8.de, tony.luck@intel.com
Subject: Re: [PATCH v1 3/3] x86/MCE/AMD: Handle reassigned bit definitions for CS SMCA
Date: Wed, 18 Jan 2023 18:31:10 +0000 [thread overview]
Message-ID: <Y8g67l4GkCEwSOg9@yaz-fattaah> (raw)
In-Reply-To: <Y8Zo+hj8qxYpZdAl@gmail.com>
On Tue, Jan 17, 2023 at 10:23:09AM +0100, Ingo Molnar wrote:
>
> * Avadhut Naik <avadnaik@amd.com> wrote:
>
> > @@ -178,6 +178,8 @@ static const struct smca_hwid smca_hwid_mcatypes[] = {
> > { SMCA_CS, HWID_MCATYPE(0x2E, 0x0) },
> > { SMCA_PIE, HWID_MCATYPE(0x2E, 0x1) },
> > { SMCA_CS_V2, HWID_MCATYPE(0x2E, 0x2) },
> > + /* Software defined SMCA bank type to handle erratum 1384*/
> > + { SMCA_CS_V2_QUIRK, HWID_MCATYPE(0x0, 0x1) },
> >
> > /* Unified Memory Controller MCA type */
> > { SMCA_UMC, HWID_MCATYPE(0x96, 0x0) },
> > @@ -259,6 +261,17 @@ static inline void fixup_hwid(unsigned int *hwid_mcatype)
> >
> > if (c->x86 == 0x19) {
> > switch (c->x86_model) {
> > + /*
> > + * Per Genoa's revision guide, erratum 1384, some SMCA Extended
> > + * Error Codes and SMCA Control bits are incorrect for SMCA CS
> > + * bank type.
> > + */
> > + case 0x10 ... 0x1F:
> > + case 0x60 ... 0x7B:
> > + case 0xA0 ... 0xAF:
> > + if (*hwid_mcatype == HWID_MCATYPE(0x2E, 0x2))
> > + *hwid_mcatype = HWID_MCATYPE(0x0, 0x1);
>
> Why are we open-coding these types?
>
> Why not use smca_hwid_mcatypes[SMCA_CS_V2], etc.?
>
> > + if (*hwid_mcatype == HWID_MCATYPE(0x2E, 0x2))
> > + *hwid_mcatype = HWID_MCATYPE(0x0, 0x1);
>
> Ditto.
>
This code runs before matching on a struct with the enums. It seems simplest
to fixup the hardware-provided value before setting things up rather than
changing things later.
Current code flow:
1) Read HWID/McaType values from hardware.
2) Loop through known types and match on the HWID_MCATYPE() tuple.
3) Continue setup based on matched type and its Linux enum.
New code flow:
1) Read HWID/McaType values from hardware.
--> Fixup HWID/McaType values due to any known hardware quirks.
2) Loop through known types and match on the HWID_MCATYPE() tuple.
3) Continue setup based on matched type and its Linux enum.
What do you think?
Also, a further update (maybe you're alluding to?) is get rid of the struct
smca_hwid and just define an enum with "NAME = HWID_MCATYPE(XXX, YYY)".
The struct smca_hwid had another field that was removed, so it seems
unnecessary at the moment.
Thanks,
Yazen
next prev parent reply other threads:[~2023-01-18 18:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-16 19:10 [PATCH v1 0/3] Update SMCA Error Decoding for AMD EPYC Processors Avadhut Naik
2023-01-16 19:11 ` [PATCH v1 1/3] EDAC/mce_amd: Update SMCA bank error descriptions Avadhut Naik
2023-01-16 19:11 ` [PATCH v1 2/3] x86/MCE/AMD: Add HWID Fixup for PCS_XGMI SMCA Avadhut Naik
2023-01-16 19:11 ` [PATCH v1 3/3] x86/MCE/AMD: Handle reassigned bit definitions for CS SMCA Avadhut Naik
2023-01-17 9:23 ` Ingo Molnar
2023-01-18 18:31 ` Yazen Ghannam [this message]
2023-02-07 19:07 ` Avadhut Naik
2023-03-17 14:33 ` Yazen Ghannam
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=Y8g67l4GkCEwSOg9@yaz-fattaah \
--to=yazen.ghannam@amd.com \
--cc=avadnaik@amd.com \
--cc=bp@alien8.de \
--cc=linux-edac@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/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