On 23 March 2013 20:11, Eric van Gyzen <[email protected]> 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.
Typically holding a lock is to serialise both program state and hardware state. The whole "unlock; do blocking work or sleep; lock" thing needs to be very carefully thought out. Adrian _______________________________________________ [email protected] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "[email protected]"
