Jrn Engel <joern@xxxxxxxxxxxxxxx> writes: > On Tue, Aug 22, 2023 at 09:56:38AM +0800, Huang, Ying wrote: >> >> ERST is mainly used to log the hardware error. While, hardware error >> may be reported via NMI (e.g., ACPI APEI GHES NMI), so we need to call >> ERST functions in NMI handlers. Where normal spinlock cannot be used >> because they will be converted to sleepable rt_mutex in RT kernel. > > Non-sleeping spinlocks cannot be used in NMI context either. > raw_spin_lock_irqsave() will prevent regular interrupts, but not NMI. > So taking a spinlock inside an NMI can trigger a deadlock. Thanks reminding from Uday, trylock can avoid the deadlock. More details in reply to Uday's email. -- Best Regards, Huang, Ying > Am I missing something here? > > Jrn > > -- > All art is but imitation of nature. > -- Lucius Annaeus Seneca