Messages in this thread | | | Date | Fri, 6 Jun 2008 18:04:12 +0100 (BST) | From | "Maciej W. Rozycki" <> | Subject | Re: Recoverable MCA interrupts from NMI handlers? IPMI and RCU? |
| |
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
| |