On Thu, Aug 27, 2015 at 07:55:39PM +0200, Manuel Bouyer wrote:
> > Of course that prevents multiple threads to call diskstart.
>
> does it implies that this prevents multiple outstanding transactions
> to the controller ?
No, it doesn't.
If I understand this correctly, then the old (non-MPSAFE)
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
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
On Thu, Aug 27, 2015 at 03:43:52PM +0200, J. Hannken-Illjes wrote:
>
> This was the intention with "bufq_peek". All current bufq strategies
> seem to keep the current buf the same over "bufq_peek .. bufq_get"
> even if more work comes in via "bufq_put".
The whole bufq_peek, use_the_buffer_for_so
On Thu, Aug 27, 2015 at 04:31:38PM +0200, J. Hannken-Illjes wrote:
> Another approach is to enqueue the buffer from dk_strategy(), use
> dk_start() without bp to notify the device. The device start
> routine would take buffers from the queue and start them until
> it gets out of resources and the
On 27 Aug 2015, at 13:26, Michael van Elst wrote:
> On Thu, Aug 27, 2015 at 11:48:15AM +0200, J. Hannken-Illjes wrote:
>
>>disk_busy(&dksc->sc_dkdev);
>> + mutex_exit(&dksc->sc_iolock);
>>error = dkd->d_diskstart(dksc->sc_dev, bp);
>> +
On 27 Aug 2015, at 13:26, Michael van Elst wrote:
> On Thu, Aug 27, 2015 at 11:48:15AM +0200, J. Hannken-Illjes wrote:
>
>>disk_busy(&dksc->sc_dkdev);
>> + mutex_exit(&dksc->sc_iolock);
>>error = dkd->d_diskstart(dksc->sc_dev, bp);
>> +
On Thu, Aug 27, 2015 at 11:48:15AM +0200, J. Hannken-Illjes wrote:
> disk_busy(&dksc->sc_dkdev);
> + mutex_exit(&dksc->sc_iolock);
> error = dkd->d_diskstart(dksc->sc_dev, bp);
> + mutex_enter(&dksc->sc_iolock);
> if (erro
On 27 Aug 2015, at 07:51, Michael van Elst wrote:
> Module Name: src
> Committed By: mlelstv
> Date: Thu Aug 27 05:51:50 UTC 2015
>
> Modified Files:
> src/sys/arch/xen/xen: xbd_xenbus.c
> src/sys/dev: cgd.c dksubr.c dkvar.h ld.c
>
> Log Message:
> Make dksubr use a spin-mu