[patch] IPMI KCS can drop the lock while servicing a request
jhb at freebsd.org
Tue Apr 2 21:08:08 UTC 2013
On Saturday, March 23, 2013 11:11:20 pm Eric van Gyzen wrote:
> At work, we discovered that our application's IPMI thread would often
> use a lot of CPU time. The KCS thread uses DELAY to wait for the BMC,
> so it can run without sleeping for a "long" time with a slow BMC. It
> also holds the ipmi_softc.ipmi_lock during this time. When using
> adaptive mutexes, an application thread that wants to operate on the
> ipmi_pending_requests list will also spin during this same time.
> We see no reason that the KCS thread needs to hold the lock while
> servicing a request. We've been running with the attached patch for a
> few months, with no ill effects.
The lock protects against concurrent access to the registers themselves
(though the thread sort of does this already). However, even with a slow
BMC it shouldn't be waiting but so long. I had some other comments about
this patch in my reply to when it was committed.
More information about the freebsd-stable