From: Yazen Ghannam <yazen.ghannam@amd.com>
To: "Luck, Tony" <tony.luck@intel.com>,
"linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>
Cc: yazen.ghannam@amd.com,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH 1/2] x86/mce: Disable preemption for CPER decoding
Date: Thu, 22 Jun 2023 15:23:49 -0400 [thread overview]
Message-ID: <77d51e2f-cd1c-9c30-5bd5-42b1d583db53@amd.com> (raw)
In-Reply-To: <SJ1PR11MB6083961DFCA3D90922824189FC22A@SJ1PR11MB6083.namprd11.prod.outlook.com>
On 6/22/2023 1:05 PM, Luck, Tony wrote:
>> This is the reason we search for the logical CPU number using the Local
>> APIC ID provided in the CPER. And fill in relevant data using that CPU
>> number.
>
> So you don't care which CPU number mce_setup() used because you are
> going to update it with the right one from CPER?
>
That's right.
> Then maybe the fix for part 1 is just to use raw_smp_processor_id() instead of
> smp_processor_id() to avoid the warning for calling with pre-emption enabled,
> instead of disabling premption with the get_cpu() ... put_cpu() wrap around the
> call to mce_setup()?
You mean use raw_smp_processor_id() in mce_setup()? I thought about
that, but decided against it. I figure the preemption warning is helpful
to catch issues when mce_setup() *is* supposed to run on the current CPU
but doesn't.
This BERT decoding path is the only exception AFAIK. So I didn't want to
change the common code for a single exception.
I just noticed a similar potential issue with mce_setup() in
apei_mce_report_mem_error(). How is the CPU number decided there? Is it
always "don't care", since the mce record is "fake"?
Here are another couple of solutions for the preemption issue.
1) Don't use mce_setup() at all. Instead, do the memset(), etc. in the
local function. This would result in some code duplication.
2) Split mce_setup() into global and per_cpu parts. The memset(), cpuid,
etc. would be global, and the cpu_data()* and rdmsr() would be per_cpu.
Option #2 can also be used in apei_mce_report_mem_error(), I think.
Thanks,
Yazen
next prev parent reply other threads:[~2023-06-22 19:24 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-22 13:18 [PATCH 0/2] SMCA CPER Fixes Yazen Ghannam
2023-06-22 13:18 ` [PATCH 1/2] x86/mce: Disable preemption for CPER decoding Yazen Ghannam
2023-06-22 15:35 ` Luck, Tony
2023-06-22 16:24 ` Yazen Ghannam
2023-06-22 17:05 ` Luck, Tony
2023-06-22 19:23 ` Yazen Ghannam [this message]
2023-06-22 19:42 ` Luck, Tony
2023-06-23 13:51 ` Yazen Ghannam
2023-06-23 15:44 ` Luck, Tony
2023-06-23 16:01 ` Borislav Petkov
2023-06-23 16:14 ` Yazen Ghannam
2023-06-23 16:42 ` Borislav Petkov
2023-06-26 14:47 ` Yazen Ghannam
2023-06-22 13:18 ` [PATCH 2/2] x86/mce: Set correct PPIN " 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=77d51e2f-cd1c-9c30-5bd5-42b1d583db53@amd.com \
--to=yazen.ghannam@amd.com \
--cc=linux-edac@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
/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