Date: Tue, 2 Apr 2013 15:43:25 -0700 From: Adrian Chadd <adrian@freebsd.org> To: Eric van Gyzen <eric@vangyzen.net> Cc: stable@freebsd.org Subject: Re: [patch] IPMI KCS can drop the lock while servicing a request Message-ID: <CAJ-Vmokopw=PRC-v8H4hb8La2jZG-vLRWEhdhzem9r9oqj-sww@mail.gmail.com> In-Reply-To: <514E6ED8.9040305@vangyzen.net> References: <514E6ED8.9040305@vangyzen.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On 23 March 2013 20:11, Eric van Gyzen <eric@vangyzen.net> 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmokopw=PRC-v8H4hb8La2jZG-vLRWEhdhzem9r9oqj-sww>