Re: CVS commit: src/sys

2015-08-27 Thread Michael van Elst
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)

Re: CVS commit: src/sys

2015-08-27 Thread Manuel Bouyer
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

Re: CVS commit: src/sys

2015-08-27 Thread Michael van Elst
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

Re: CVS commit: src/sys

2015-08-27 Thread Michael van Elst
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

Re: CVS commit: src/sys

2015-08-27 Thread Michael van Elst
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

Re: CVS commit: src/sys

2015-08-27 Thread J. Hannken-Illjes
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); >> +

Re: CVS commit: src/sys

2015-08-27 Thread J. Hannken-Illjes
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); >> +

Re: CVS commit: src/sys

2015-08-27 Thread Michael van Elst
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

Re: CVS commit: src/sys

2015-08-27 Thread J. Hannken-Illjes
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