Re: Recoverable MCA interrupts from NMI handlers? IPMI and RCU?

From: Maciej W. Rozycki
Date: Fri Jun 06 2008 - 13:36:55 EST


On Fri, 6 Jun 2008, Paul E. McKenney wrote:

> > >2. Does the IPMI subsystem make use of RCU read-side primitives
> > > from within SMI handlers? If so, we need the SMI handlers to
> > > invoke rcu_irq_enter() upon entry and rcu_irq_exit() upon exit
> > > when they are invoked from dynticks idle state. Or something
> > > similar, depending on restrictions on code within SMI handlers.
> >
> > Not sure about that one. I clearly need to look carefully into this...
> > SMI is quite "special" in that it sets up an entirely new environment;
> > the concept of executing kernel code at SMI level makes me want to run
> > away and hide.
>
> Well, as long as the SMI handlers don't include calls to rcu_read_lock()
> and rcu_read_unlock(), then they don't need to include any calls to
> rcu_irq_enter() and rcu_irq_exit(). ;-)

You can't really call any non-trivial protected mode code from the system
management mode as they run from different virtual address spaces each.
What is run in the SMM is meant to be like firmware, run transparently to
the rest of the system. In real life limitations of hardware and bugs in
software make it less transparent than one could wish, but there you go.

Maciej
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/