Date: Sun, 08 Jul 2012 11:18:00 -0400 From: Michael Butler <imb@protected-networks.net> To: Konstantin Belousov <kostikbel@gmail.com> Cc: current@freebsd.org Subject: Re: sleeping thread panic? Message-ID: <4FF9A4A8.5050903@protected-networks.net> In-Reply-To: <20120708143113.GZ2338@deviant.kiev.zoral.com.ua> References: <4FF98128.6050607@protected-networks.net> <20120708133455.GX2338@deviant.kiev.zoral.com.ua> <4FF98F21.9060003@protected-networks.net> <20120708143113.GZ2338@deviant.kiev.zoral.com.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 07/08/12 10:31, Konstantin Belousov wrote:
> Catch it next time ? This should be quite reproducable, if real.
>
> Actually, try this.
>
> diff --git a/sys/vm/vm_pageout.c b/sys/vm/vm_pageout.c
> index 9485fdd..de33afc 100644
> --- a/sys/vm/vm_pageout.c
> +++ b/sys/vm/vm_pageout.c
> @@ -1030,7 +1030,6 @@ rescan0:
> ++pageout_lock_miss;
> if (object->flags & OBJ_MIGHTBEDIRTY)
> vnodes_skipped++;
> - vm_page_lock_queues();
> goto unlock_and_continue;
> }
> KASSERT(mp != NULL,
> @@ -1041,7 +1040,6 @@ rescan0:
> if (vget(vp, LK_EXCLUSIVE | LK_TIMELOCK,
> curthread)) {
> VM_OBJECT_LOCK(object);
> - vm_page_lock_queues();
> ++pageout_lock_miss;
> if (object->flags & OBJ_MIGHTBEDIRTY)
> vnodes_skipped++;
> @@ -1082,15 +1080,17 @@ rescan0:
> * If the page has become held it might
> * be undergoing I/O, so skip it
> */
> + KASSERT(queues_locked, ("unlocked queues 2"));
> + mtx_assert(&vm_page_queue_mtx, MA_OWNED);
> if (m->hold_count) {
> - vm_page_lock_queues();
> - queues_locked = TRUE;
> vm_page_unlock(m);
> vm_page_requeue(m);
> if (object->flags & OBJ_MIGHTBEDIRTY)
> vnodes_skipped++;
> goto unlock_and_continue;
> }
> + vm_page_unlock_queues();
> + queues_locked = FALSE;
> }
>
> /*
>
Just waiting for the second of two attached RAID arrays to finish
rebuilding and I'll give this a shot - thanks!
imb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (FreeBSD)
iEYEARECAAYFAk/5pKgACgkQQv9rrgRC1JKXAgCdEJhZIKRmLbAzIROKmN2WuZCU
mb4AnR3Z+BrN7uqwYnXwubBEBx/QlWf8
=Ne6G
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FF9A4A8.5050903>
