Re: [PATCH] x86/cpu: Add INTEL_LUNARLAKE_M to X86_BUG_MONITOR

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Nov 08, 2024 at 08:49:31AM -0500, Len Brown wrote:
> diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
> index 766f092dab80..910cb2d72c13 100644
> --- a/arch/x86/kernel/smpboot.c
> +++ b/arch/x86/kernel/smpboot.c
> @@ -1377,6 +1377,9 @@ void smp_kick_mwait_play_dead(void)
>  		for (i = 0; READ_ONCE(md->status) != newstate && i < 1000; i++) {
>  			/* Bring it out of mwait */
>  			WRITE_ONCE(md->control, newstate);
> +			/* If MONITOR unreliable, send IPI */
> +			if (boot_cpu_has_bug(X86_BUG_MONITOR))
> +				__apic_send_IPI(cpu, RESCHEDULE_VECTOR);
>  			udelay(5);
>  		}

Going over that code again, mwait_play_dead() is doing __mwait(.exc=0)
with IRQs disabled.

So that IPI you're trying to send there won't do no nothing :-/

Now that comment there says MCE/NMI/SMI are still open (non-maskable
etc.) so perhaps prod it on the NMI vector?

This does seem to suggest the above code path wasn't actually tested.
Perhaps mark your local machine with BUG_MONITOR, remove the md->control
WRITE_ONCE() and try kexec to test it?

Thomas, any other thoughts?




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux