From: Yazen Ghannam <yazen.ghannam@amd.com>
To: Borislav Petkov <bp@alien8.de>
Cc: linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org,
mchehab@kernel.org, tony.luck@intel.com, james.morse@arm.com,
rric@kernel.org, Smita.KoralahalliChannabasappa@amd.com
Subject: Re: [PATCH v4 01/24] EDAC/amd64: Define Data Fabric operations
Date: Wed, 9 Mar 2022 21:42:21 +0000 [thread overview]
Message-ID: <YikfPWACGyWPIxKP@yaz-ubuntu> (raw)
In-Reply-To: <Yga0s+9cqtfB3Yxu@zn.tnic>
On Fri, Feb 11, 2022 at 08:10:43PM +0100, Borislav Petkov wrote:
> > +/*
> > + * Glossary of acronyms used in address translation for Zen-based systems
> > + *
> > + * DF = Data Fabric
>
> Yeah, "DF: Data Fabric" is probably easier to parse, without that weird
> spacing and equals sign.
>
Okay, will change.
> > + */
> > +
> > /* Protect the PCI config register pairs used for DF indirect access. */
> > static DEFINE_MUTEX(df_indirect_mutex);
> >
> > @@ -1058,6 +1064,14 @@ struct addr_ctx {
> > u8 inst_id;
> > };
> >
> > +struct data_fabric_ops {
> > +};
>
> I know that this is not the only example but we have struct definitions
> interspersed with functions in the .c file while former should be all in
> the header. It is a lot cleaner to have definitions and inline functions
> in the header and the actual functionality in the C file but I leave it
> up to you to decide what you prefer.
>
Makes sense. I'll make the change.
> > +
> > +struct data_fabric_ops df2_ops = {
> > +};
> > +
> > +struct data_fabric_ops *df_ops;
> > +
> > static int umc_normaddr_to_sysaddr(u64 norm_addr, u16 nid, u8 umc, u64 *sys_addr)
> > {
> > u64 dram_base_addr, dram_limit_addr, dram_hole_base;
> > @@ -1072,6 +1086,11 @@ static int umc_normaddr_to_sysaddr(u64 norm_addr, u16 nid, u8 umc, u64 *sys_addr
> >
> > struct addr_ctx ctx;
> >
> > + if (!df_ops) {
> > + pr_debug("Data Fabric Operations not set");
>
> That probably wants to be a WARN_ON_ONCE() so that it is loud and
> prominent when it happens...
>
I'd like to keep this a debug message because address translation updates will
almost certainly lag general EDAC enablement. For example, Family 19h Model
10h is enabled now, but df_ops won't be set. The translation code will return
early here, and the EDAC message will say that the tranlsation failed. But
this isn't a bug that needs a WARNing. Rather it's just that the feature isn't
enabled yet for new systems.
Thanks,
Yazen
next prev parent reply other threads:[~2022-03-09 21:42 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-27 20:40 [PATCH v4 00/24] AMD MCA Address Translation Updates Yazen Ghannam
2022-01-27 20:40 ` [PATCH v4 01/24] EDAC/amd64: Define Data Fabric operations Yazen Ghannam
2022-02-11 19:10 ` Borislav Petkov
2022-03-09 21:42 ` Yazen Ghannam [this message]
2022-01-27 20:40 ` [PATCH v4 02/24] EDAC/amd64: Define functions for DramOffset Yazen Ghannam
2022-02-11 19:23 ` Borislav Petkov
2022-03-09 21:43 ` Yazen Ghannam
2022-01-27 20:40 ` [PATCH v4 03/24] EDAC/amd64: Define function to read DRAM address map registers Yazen Ghannam
2022-01-27 20:40 ` [PATCH v4 04/24] EDAC/amd64: Define function to find interleaving mode Yazen Ghannam
2022-01-27 20:40 ` [PATCH v4 05/24] EDAC/amd64: Define function to denormalize address Yazen Ghannam
2022-01-27 20:40 ` [PATCH v4 06/24] EDAC/amd64: Define function to add DRAM base and hole Yazen Ghannam
2022-01-27 20:40 ` [PATCH v4 07/24] EDAC/amd64: Define function to dehash address Yazen Ghannam
2022-02-11 22:47 ` Borislav Petkov
2022-03-09 21:50 ` Yazen Ghannam
2022-03-10 16:01 ` Borislav Petkov
2022-01-27 20:40 ` [PATCH v4 08/24] EDAC/amd64: Define function to check DRAM limit address Yazen Ghannam
2022-02-14 10:06 ` Borislav Petkov
2022-03-09 22:03 ` Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 09/24] EDAC/amd64: Remove goto statements Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 10/24] EDAC/amd64: Define function to get Interleave Address Bit Yazen Ghannam
2022-02-14 12:10 ` Borislav Petkov
2022-03-09 22:12 ` Yazen Ghannam
2022-03-10 16:09 ` Borislav Petkov
2022-01-27 20:41 ` [PATCH v4 11/24] EDAC/amd64: Skip denormalization if no interleaving Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 12/24] EDAC/amd64: Define function to get number of interleaved channels Yazen Ghannam
2022-02-14 12:20 ` Borislav Petkov
2022-03-09 22:13 ` Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 13/24] EDAC/amd64: Define function to get number of interleaved dies Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 14/24] EDAC/amd64: Define function to get number of interleaved sockets Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 15/24] EDAC/amd64: Remove unnecessary assert Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 16/24] EDAC/amd64: Define function to make space for CS ID Yazen Ghannam
2022-02-14 12:50 ` Borislav Petkov
2022-03-09 22:25 ` Yazen Ghannam
2022-03-11 21:00 ` Borislav Petkov
2022-01-27 20:41 ` [PATCH v4 17/24] EDAC/amd64: Define function to calculate " Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 18/24] EDAC/amd64: Define function to insert CS ID into address Yazen Ghannam
2022-02-14 13:09 ` Borislav Petkov
2022-03-09 22:31 ` Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 19/24] EDAC/amd64: Define function to get CS Fabric ID Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 20/24] EDAC/amd64: Define function to find shift and mask values Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 21/24] EDAC/amd64: Update CS ID calculation to match reference code Yazen Ghannam
2022-02-14 13:42 ` Borislav Petkov
2022-03-09 22:32 ` Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 22/24] EDAC/amd64: Match hash function to " Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 23/24] EDAC/amd64: Define function to get interleave address select bit Yazen Ghannam
2022-01-27 20:41 ` [PATCH v4 24/24] EDAC/amd64: Add support for address translation on DF3 systems 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=YikfPWACGyWPIxKP@yaz-ubuntu \
--to=yazen.ghannam@amd.com \
--cc=Smita.KoralahalliChannabasappa@amd.com \
--cc=bp@alien8.de \
--cc=james.morse@arm.com \
--cc=linux-edac@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=rric@kernel.org \
--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;
as well as URLs for NNTP newsgroup(s).