-----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 > _at__at_ -1030,7 +1030,6 _at__at_ rescan0: > ++pageout_lock_miss; > if (object->flags & OBJ_MIGHTBEDIRTY) > vnodes_skipped++; > - vm_page_lock_queues(); > goto unlock_and_continue; > } > KASSERT(mp != NULL, > _at__at_ -1041,7 +1040,6 _at__at_ 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++; > _at__at_ -1082,15 +1080,17 _at__at_ 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-----Received on Sun Jul 08 2012 - 13:18:03 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:28 UTC