[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <52a37afe-c41b-4f20-bbdc-bddc3ae26260@suse.com>
Date: Thu, 26 Jun 2025 11:03:20 +0300
From: Nikolay Borisov <nik.borisov@...e.com>
To: Yazen Ghannam <yazen.ghannam@....com>, x86@...nel.org,
Tony Luck <tony.luck@...el.com>, "Rafael J. Wysocki" <rafael@...nel.org>,
Len Brown <lenb@...nel.org>
Cc: linux-kernel@...r.kernel.org, linux-edac@...r.kernel.org,
Smita.KoralahalliChannabasappa@....com, Qiuxu Zhuo <qiuxu.zhuo@...el.com>,
linux-acpi@...r.kernel.org
Subject: Re: [PATCH v4 10/22] x86/mce: Remove __mcheck_cpu_init_early()
On 6/24/25 17:16, Yazen Ghannam wrote:
> The __mcheck_cpu_init_early() function was introduced so that some
> vendor-specific features are detected before the first MCA polling event
> done in __mcheck_cpu_init_generic().
>
> Currently, __mcheck_cpu_init_early() is only used on AMD-based systems and
> additional code will be needed to support various system configurations.
>
> However, the current and future vendor-specific code should be done during
> vendor init. This keeps all the vendor code in a common location and
> simplifies the generic init flow.
>
> Move all the __mcheck_cpu_init_early() code into mce_amd_feature_init().
>
> Also, move __mcheck_cpu_init_generic() after
> __mcheck_cpu_init_prepare_banks() so that MCA is enabled after the first
> MCA polling event.
>
> Additionally, this brings the MCA init flow closer to what is described
> in the x86 docs.
>
> The AMD PPRs say
> "The operating system must initialize the MCA_CONFIG registers prior to
> initialization of the MCA_CTL registers.
>
> The MCA_CTL registers must be initialized prior to enabling the error
> reporting banks in MCG_CTL".
>
> However, the Intel SDM "Machine-Check Initialization Pseudocode" says
> MCG_CTL first then MCi_CTL.
>
> But both agree that CR4.MCE should be set last.
>
> Reviewed-by: Qiuxu Zhuo <qiuxu.zhuo@...el.com>
> Tested-by: Tony Luck <tony.luck@...el.com>
> Reviewed-by: Tony Luck <tony.luck@...el.com>
> Signed-off-by: Yazen Ghannam <yazen.ghannam@....com>
IMO the change which moves __mcheck_cpu_init_generic should be in a
separate patch so that in the changelog it's abundantly clear that it's
a "world switch" function and its invocation timing is important.
<snip>
In any case:
Reviewed-by: Nikolay Borisov <nik.borisov@...e.com>
Powered by blists - more mailing lists