On Thu, Aug 27, 2015 at 07:33:40PM +0200, Michael van Elst wrote: > On Thu, Aug 27, 2015 at 01:26:45PM +0200, Michael van Elst wrote: > > On Thu, Aug 27, 2015 at 11:48:15AM +0200, J. Hannken-Illjes wrote: > > > > > Looks racy: what if two threads run dk_strategy() -> dk_start() and > > > both get EAGAIN. Will it leak a buffer when the second thread tries > > > to save bp and dksc->sc_deferred already holds the buffer from the > > > first thread? > > > > Looks like it. sc_deferred probably needs to become a fcfs bufq. > > Currently this could happen for the ld driver (others are not MP_SAFE). > > > Maybe just this, a second thread is allowed to queue buffers, > but the loop is again single-threaded. > > Of course that prevents multiple threads to call diskstart.
does it implies that this prevents multiple outstanding transactions to the controller ? -- Manuel Bouyer <bou...@antioche.eu.org> NetBSD: 26 ans d'experience feront toujours la difference --