From: Borislav Petkov <bp@alien8.de>
To: Yazen Ghannam <yazen.ghannam@amd.com>
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: Fri, 11 Feb 2022 20:10:43 +0100 [thread overview]
Message-ID: <Yga0s+9cqtfB3Yxu@zn.tnic> (raw)
In-Reply-To: <20220127204115.384161-2-yazen.ghannam@amd.com>
On Thu, Jan 27, 2022 at 08:40:52PM +0000, Yazen Ghannam wrote:
> Define a stub to hold operations for different Data Fabric versions.
> This will be filled in following patches.
>
> Set the operations at init-time as appropriate for each model/family
> group.
>
> Also, start a glossary of acronyms used in the translation code.
>
> Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
> ---
> Link:
> https://lore.kernel.org/r/20211028175728.121452-6-yazen.ghannam@amd.com
>
> v3->v4:
> * Started glossary.
> * Included pr_debug() for failing case.
>
> v2->v3:
> * Was patch 6 in v2.
> * "df_ops" is set at init time.
>
> v1->v2:
> * New in v2.
>
> drivers/edac/amd64_edac.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
> index fba609ada0e6..639dfbea3348 100644
> --- a/drivers/edac/amd64_edac.c
> +++ b/drivers/edac/amd64_edac.c
> @@ -988,6 +988,12 @@ static int sys_addr_to_csrow(struct mem_ctl_info *mci, u64 sys_addr)
> return csrow;
> }
>
> +/*
> + * 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.
> + */
> +
> /* 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.
> +
> +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...
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
next prev parent reply other threads:[~2022-02-11 19:10 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 [this message]
2022-03-09 21:42 ` Yazen Ghannam
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=Yga0s+9cqtfB3Yxu@zn.tnic \
--to=bp@alien8.de \
--cc=Smita.KoralahalliChannabasappa@amd.com \
--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 \
--cc=yazen.ghannam@amd.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).