Date: Thu, 23 Nov 2006 22:36:57 -0000 From: "Steven Hartland" <killing@multiplay.co.uk> To: "Kostik Belousov" <kostikbel@gmail.com> Cc: freebsd-fs@freebsd.org, Mike Jakubik <mikej@rogers.com>, freebsd-stable@freebsd.org Subject: Re: md deadlocks on wdrain. Was: [Re: quota and snapshotsin6.1-RELEASE] Message-ID: <076f01c70f4f$e6b96050$b3db87d4@multiplay.co.uk> References: <447366AD.30203@rogers.com><20060701034922.GA37822@deviant.kiev.zoral.com.ua><027b01c70e6c$6c879470$b3db87d4@multiplay.co.uk> <20061123101246.GM1841@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks for that, from our point of view its required as without the machine deadlocks without even trying. One real strange thing was that if I created a copy of the vnode file, this particular task ( installworld ) would succeed but given the nature of the bug ( timing critical ) that seem to make sence. With this still being a potential issue I think we have no choice but to migrate away from using any vnode backed jails. That said I thank you for this as it certainly help us. Steve ----- Original Message ----- From: "Kostik Belousov" <kostikbel@gmail.com> This is not a fix, this is only a way to make the deadlock less frequent (I would not ever call it workaround). I have got a reports of deadlocks with this change applied, and I think that I understand the cause of it. Also, I have an idea of how to fix it, but not got around to even start coding. > ? sys/dev/md/.arch-ids > Index: sys/dev/md/md.c > =================================================================== > RCS file: /usr/local/arch/ncvs/src/sys/dev/md/md.c,v > retrieving revision 1.164 > diff -u -r1.164 md.c > --- sys/dev/md/md.c 28 Mar 2006 21:25:11 -0000 1.164 > +++ sys/dev/md/md.c 1 Jul 2006 03:48:41 -0000 > @@ -650,6 +650,8 @@ > mtx_lock_spin(&sched_lock); > sched_prio(curthread, PRIBIO); > mtx_unlock_spin(&sched_lock); > + if (sc->type == MD_VNODE) > + curthread->td_pflags |= TDP_NORUNNINGBUF; > > for (;;) { > mtx_lock(&sc->queue_mtx); ================================================ This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. In the event of misdirection, illegible or incomplete transmission please telephone +44 845 868 1337 or return the E.mail to postmaster@multiplay.co.uk.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?076f01c70f4f$e6b96050$b3db87d4>