Re: [PATCH 1/9] ipmi: use refcount in message handler

Paul E. McKenney
2005-10-24T06:28:27Z

On Sun, Oct 23, 2005 at 11:42:17PM -0500, Matt Domsch wrote:
> On Sun, Oct 23, 2005 at 07:19:32PM -0700, Paul E. McKenney wrote:
> > My guess is that this read-side critical section can be invoked from and
> > SMI, and that SMIs can occur even if interrupts are disabled. If my guess
> > is wrong, please enlighten me. And feel free to ignore the next few
> > paragraphs in that case, along with a number of my suggested changes,
> > since they all depend critically on my guess being correct.
>
> Paul, it took me a bit to figure this out too, but Corey uses the TLA
> "SMI" to mean "Systems Management Interface", not "Systems Management
> Interrupt". From Documentation/IPMI.txt:
>
> ipmi_msghandler - This is the central piece of software for the IPMI
> system. It handles all messages, message timing, and responses. The
> IPMI users tie into this, and the IPMI physical interfaces (called
> System Management Interfaces, or SMIs) also tie in here.
>
>
> There are at least 4 basic types of physical hardware interfaces (BT,
> SMIC, KCS, and I2C), which may (or more often, may not) have their own
> hardware interrupt lines, but these are normal interrupts, not
> CPU-magic "systems management interrupts". So I think this isn't a
> problem.

OK, thank you for the tutorial on the "other SMI"!

The comments about turning synchronize_rcu() into synchronize_sched()
and rcu_read_lock() into preempt_disable() do not apply, please ignore.

However, I still do not understand how using RCU on cmd_rcvrs helps,
given that all of the accesses that I could see were already protected
by cmd_rcvrs_lock.

Any further enlightenment available?

Thanx, Paul