-----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-----
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to "[email protected]"

Reply via email to