diff mbox series

[v2,3/3] x86/mce: Make mce_notify_irq() depend on CONFIG_X86_MCELOG_LEGACY

Message ID 20250210154707.114219-4-nik.borisov@suse.com (mailing list archive)
State New
Headers show
Series Simpify mce code somewhat | expand

Commit Message

Nikolay Borisov Feb. 10, 2025, 3:47 p.m. UTC
mce_notify_irq() really depends on the legacy mcelog being enabled as
otherwise mce_work_trigger() will never schedule the trigger work as
mce_helper can't be set unless CONFIG_X86_MCELOG_LEGACY is defined.

Signed-off-by: Nikolay Borisov <nik.borisov@suse.com>
---
 arch/x86/kernel/cpu/mce/core.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Qiuxu Zhuo Feb. 11, 2025, 7:20 a.m. UTC | #1
> From: Nikolay Borisov <nik.borisov@suse.com>
> [...]
> Subject: [PATCH v2 3/3] x86/mce: Make mce_notify_irq() depend on
> CONFIG_X86_MCELOG_LEGACY
> 
> mce_notify_irq() really depends on the legacy mcelog being enabled as
> otherwise mce_work_trigger() will never schedule the trigger work as
> mce_helper can't be set unless CONFIG_X86_MCELOG_LEGACY is defined.
> 
> Signed-off-by: Nikolay Borisov <nik.borisov@suse.com>
> ---
>  arch/x86/kernel/cpu/mce/core.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
> index d55b1903fde6..8b8553e144ce 100644
> --- a/arch/x86/kernel/cpu/mce/core.c
> +++ b/arch/x86/kernel/cpu/mce/core.c
> @@ -591,11 +591,13 @@ EXPORT_SYMBOL_GPL(mce_is_correctable);
>   */
>  static int mce_notify_irq(void)
>  {
> +#ifdef CONFIG_X86_MCELOG_LEGACY
> +
>  	if (test_and_clear_bit(0, &mce_need_notify)) {
>  		mce_work_trigger();
>  		return 1;
>  	}
> -
> +#endif
>  	return 0;
>  }

The empty stub function below can also be removed from the file: arch/x86/kernel/cpu/mce/internal.h

         static inline void mce_work_trigger(void)       { }
Nikolay Borisov Feb. 11, 2025, 10:18 a.m. UTC | #2
On 11.02.25 г. 9:20 ч., Zhuo, Qiuxu wrote:
>> From: Nikolay Borisov <nik.borisov@suse.com>
>> [...]
>> Subject: [PATCH v2 3/3] x86/mce: Make mce_notify_irq() depend on
>> CONFIG_X86_MCELOG_LEGACY
>>
>> mce_notify_irq() really depends on the legacy mcelog being enabled as
>> otherwise mce_work_trigger() will never schedule the trigger work as
>> mce_helper can't be set unless CONFIG_X86_MCELOG_LEGACY is defined.
>>
>> Signed-off-by: Nikolay Borisov <nik.borisov@suse.com>
>> ---
>>   arch/x86/kernel/cpu/mce/core.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
>> index d55b1903fde6..8b8553e144ce 100644
>> --- a/arch/x86/kernel/cpu/mce/core.c
>> +++ b/arch/x86/kernel/cpu/mce/core.c
>> @@ -591,11 +591,13 @@ EXPORT_SYMBOL_GPL(mce_is_correctable);
>>    */
>>   static int mce_notify_irq(void)
>>   {
>> +#ifdef CONFIG_X86_MCELOG_LEGACY
>> +
>>   	if (test_and_clear_bit(0, &mce_need_notify)) {
>>   		mce_work_trigger();
>>   		return 1;
>>   	}
>> -
>> +#endif
>>   	return 0;
>>   }
> 
> The empty stub function below can also be removed from the file: arch/x86/kernel/cpu/mce/internal.h
> 
>           static inline void mce_work_trigger(void)       { }


Actually I think this patch is better off being dropped. With it 
mce_notify_irq will always return false, causing mce_timer_fn() to 
always increase the polling interval until it stabilizes at around 
check_interval.

I will wait a bit for some more feedback and will repost v3 which will 
consist of only patches 1 and 2.
Borislav Petkov Feb. 25, 2025, 1:12 p.m. UTC | #3
On Mon, Feb 10, 2025 at 05:47:06PM +0200, Nikolay Borisov wrote:
> mce_notify_irq() really depends on the legacy mcelog being enabled as
> otherwise mce_work_trigger() will never schedule the trigger work as
> mce_helper can't be set unless CONFIG_X86_MCELOG_LEGACY is defined.
> 
> Signed-off-by: Nikolay Borisov <nik.borisov@suse.com>
> ---
>  arch/x86/kernel/cpu/mce/core.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
> index d55b1903fde6..8b8553e144ce 100644
> --- a/arch/x86/kernel/cpu/mce/core.c
> +++ b/arch/x86/kernel/cpu/mce/core.c
> @@ -591,11 +591,13 @@ EXPORT_SYMBOL_GPL(mce_is_correctable);
>   */
>  static int mce_notify_irq(void)
>  {
> +#ifdef CONFIG_X86_MCELOG_LEGACY

You can't do that - I see mce_notify_irq() in mce_timer_fn().
diff mbox series

Patch

diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index d55b1903fde6..8b8553e144ce 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -591,11 +591,13 @@  EXPORT_SYMBOL_GPL(mce_is_correctable);
  */
 static int mce_notify_irq(void)
 {
+#ifdef CONFIG_X86_MCELOG_LEGACY
+
 	if (test_and_clear_bit(0, &mce_need_notify)) {
 		mce_work_trigger();
 		return 1;
 	}
-
+#endif
 	return 0;
 }