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

Corey Minyard
2005-10-24T12:53:03Z

Paul E. McKenney wrote:

>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"!
>
>
Yeah, I've really misnamed this, unfortunately. Too many TLAs.

>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?
>
>
The calls in handle_ipmb_get_msg_cmd and handle_lan_get_msg_cmd don't
need spinlock protection, just an RCU read lock. Kind of the point of
the RCU list. Thanks for spotting this.

Thanks,

-Corey