[patch] IPMI KCS can drop the lock while servicing a request

Eric van Gyzen eric at vangyzen.net
Sun Mar 24 03:17:41 UTC 2013


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.

Eric
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipmi_kcs.c.patch
Type: text/x-patch
Size: 429 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20130323/35d3ca08/attachment.bin>


More information about the freebsd-stable mailing list