From: "Kani, Toshi" <toshi.kani@hpe.com>
To: Justin He <Justin.He@arm.com>
Cc: "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
"devel@acpica.org" <devel@acpica.org>,
"Rafael J . Wysocki" <rafael@kernel.org>,
Shuai Xue <xueshuai@linux.alibaba.com>,
Jarkko Sakkinen <jarkko@kernel.org>,
"linux-efi@vger.kernel.org" <linux-efi@vger.kernel.org>,
nd <nd@arm.com>, Ard Biesheuvel <ardb@kernel.org>,
Len Brown <lenb@kernel.org>, James Morse <James.Morse@arm.com>,
Tony Luck <tony.luck@intel.com>, Borislav Petkov <bp@alien8.de>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Robert Richter <rric@kernel.org>,
Robert Moore <robert.moore@intel.com>,
Qiuxu Zhuo <qiuxu.zhuo@intel.com>,
Yazen Ghannam <yazen.ghannam@amd.com>
Subject: RE: [PATCH v2 5/7] EDAC/ghes: Prevent chipset-specific edac from loading after ghes_edac is registered
Date: Fri, 19 Aug 2022 17:48:39 +0000 [thread overview]
Message-ID: <DM4PR84MB1853B213F2F45E495D9D6446826C9@DM4PR84MB1853.NAMPRD84.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <DBBPR08MB453891E87563F1BBE291248AF76C9@DBBPR08MB4538.eurprd08.prod.outlook.com>
On Friday, August 19, 2022 4:35 AM, Justin He wrote:
> > > @@ -1382,6 +1395,7 @@ static int ghes_probe(struct platform_device
> > > *ghes_dev)
> > > platform_set_drvdata(ghes_dev, ghes);
> > >
> > > ghes->dev = &ghes_dev->dev;
> > > + set_ghes_devs_registered(false);
> >
> > This does not look right to me.
> >
> > The condition of using ghes_edac is (ghes-present) && (ghes-preferred),
> > where:
> > - ghes-present is latched on ghes_probe()
> > - ghes-preferred is true if the platform-check passes.
> >
> > ghes_get_device() introduced in the previous patch works as the
> > ghes-preferred check.
> >
> > We cannot use ghes_edac registration as the ghes-present check in this
> > scheme since it is deferred to module_init().
>
> What is the logic for ghes-present check? In this patch, I assumed it is equal to
> "ghes_edac devices have been registered". Seems it is not correct.
Using (ghes_edac-registered) is a wrong check in this scheme
since ghes_edac registration is deferred. This check is fine in
the current scheme since ghes_edac gets registered before
any other chipset-specific edac drivers.
> But should we consider the case as follows:
> What if sbridge_init () is invoked before ghes_edac_init()? i.e. Should we get
> sb_edac driver selected when ghes_edac is not loaded yet (e.g. on HPE)?
No. The point is that ghes_edac driver needs to be selected,
"regardless of the module ordering", on a system with GHES
present & preferred.
Note that this new scheme leads to the following condition
change:
- Current: (ghes-present) && (ghes-preferred) && (ghes_edac registered)
- New: (ghes-present) && (ghes-preferred)
The option I suggested previously keeps the current condition,
but this new scheme does not for better modularity.
What this means is that if ghes_edac is not enabled (but ghes
is enabled) on a system with GHES present & preferred, no edac
driver gets registered. This change is fine from my (HPE) perspective
and should be fine for other GHES systems. GHES systems have
chipset-specific edac driver in FW. OS-based chipset-specific edac
driver is not necessary and may lead to a conflict of chipset register
ownership.
> > I'd suggest the following changes:
> > - Update ghes_get_device() to check a flag latched on ghes_probe().
>
> Still need your elaborating about the details of the flag. i.e. When is this flag
> latched? When is it unlatched?
This flag is a static variable, say ghes_present, which is set to false initially.
ghes_probe() sets it to true. ghes_edac_preferred() (aka. ghes_get_device)
checks this flag at beginning and returns false if this flag is false. It does not
get unlatched since ACPI GHES table is static.
Toshi
next prev parent reply other threads:[~2022-08-19 18:04 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-17 14:34 [PATCH v2 0/7] Modularize ghes_edac driver Jia He
2022-08-17 14:34 ` [PATCH v2 1/7] efi/cper: export several helpers for ghes edac to use Jia He
2022-08-18 14:38 ` Borislav Petkov
2022-08-17 14:34 ` [PATCH v2 2/7] EDAC/ghes: Add notifier to report ghes_edac mem error Jia He
2022-08-18 15:42 ` Borislav Petkov
2022-08-17 14:34 ` [PATCH v2 3/7] EDAC/ghes: Modularize ghes_edac driver to remove the dependency on ghes Jia He
2022-08-17 14:34 ` [PATCH v2 4/7] EDAC: Get chipset-specific edac drivers selected only when ghes_edac is not enabled Jia He
2022-08-18 23:56 ` Kani, Toshi
2022-08-19 1:57 ` Justin He
2022-08-17 14:34 ` [PATCH v2 5/7] EDAC/ghes: Prevent chipset-specific edac from loading after ghes_edac is registered Jia He
2022-08-19 1:29 ` Kani, Toshi
2022-08-19 10:34 ` Justin He
2022-08-19 17:48 ` Kani, Toshi [this message]
2022-08-19 18:29 ` Borislav Petkov
2022-08-19 18:46 ` Kani, Toshi
2022-08-19 18:50 ` Borislav Petkov
2022-08-19 18:53 ` Kani, Toshi
2022-08-19 19:31 ` Borislav Petkov
2022-08-19 19:37 ` Kani, Toshi
2022-08-19 18:57 ` Elliott, Robert (Servers)
2022-08-19 19:32 ` Borislav Petkov
2022-08-17 14:34 ` [PATCH v2 6/7] apei/ghes: Use unrcu_pointer for cmpxchg Jia He
2022-08-17 15:38 ` David Laight
2022-08-18 1:22 ` Justin He
2022-08-17 14:34 ` [PATCH v2 7/7] EDAC/igen6: Keep returned errno consistent when edac mc has been enabled Jia He
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=DM4PR84MB1853B213F2F45E495D9D6446826C9@DM4PR84MB1853.NAMPRD84.PROD.OUTLOOK.COM \
--to=toshi.kani@hpe.com \
--cc=James.Morse@arm.com \
--cc=Justin.He@arm.com \
--cc=ardb@kernel.org \
--cc=bp@alien8.de \
--cc=devel@acpica.org \
--cc=jarkko@kernel.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-edac@vger.kernel.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=nd@arm.com \
--cc=qiuxu.zhuo@intel.com \
--cc=rafael@kernel.org \
--cc=robert.moore@intel.com \
--cc=rric@kernel.org \
--cc=tony.luck@intel.com \
--cc=xueshuai@linux.alibaba.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
all inboxes | Powered by JetHome®