Skip site navigation (1)Skip section navigation (2)
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>