RE: 回复: [PATCH] ACPI: APEI: move edac_init ahead of ghes platform drv register

From: Kani, Toshi
Date: Tue Aug 09 2022 - 10:59:49 EST


On Tuesday, August 9, 2022 5:16 AM, Borislav Petkov wrote:
> bool ghes_edac_driver_is_preferred()
> {
> if (IS_ENABLED(CONFIG_X86)) {
> /* Check if safe to enable on this system */
> idx = acpi_match_platform_list(plat_list);
> } else if (ARM) {
> /* insert ARM logic here */
> }
> }
>
> That function should be called by the EDAC modules which compete with
> ghes_edac.

The logic needs to be latched on ghes presence, i.e., the condition is
(ghes-present) && (ghes-preferred). Currently, ghes_probe() calls
ghes_edac_register() for this.

> In the x86 case, that's sb_edac, skx_edac and amd64_edac, I guess.

Agree that changing all edac drivers to check with GHES is an option.
In this approach, though, they will need to check with foo_preferred()
when a new FW interface FOO is introduced.

> It all depends on what platforms Toshi wants to load it - I'm guessing
> HPE has both Intel and AMD platforms where they prefer ghes_edac.

Yes, and HPE will keep the same platform ID for GHES/FF model.

> On ARM, that's up to ARM folks.
>
> > Because I notice that lots of other edac drivers are probing like:
> > ...
> > owner = edac_get_owner();
> > if (owner && strncmp(owner, EDAC_MOD_STR,
> sizeof(EDAC_MOD_STR)))
> > return -EBUSY;
>
> No, that's a silly mechanism to allow a single EDAC driver to load on
> the system. But your test will go before it, at the very beginning of
> the init function.

Well, this check being interface independent (like GHES) is good at least.

Toshi