Message ID | 20250210154707.114219-4-nik.borisov@suse.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Simpify mce code somewhat | expand |
> 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) { }
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.
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 --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; }
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(-)