svn commit: r308052 - user/alc/PQ_LAUNDRY/sys/vm
Alan Cox
alc at FreeBSD.org
Fri Oct 28 16:22:46 UTC 2016
Author: alc
Date: Fri Oct 28 16:22:45 2016
New Revision: 308052
URL: https://svnweb.freebsd.org/changeset/base/308052
Log:
Tweak vm_pageout_flush()'s handling of the VM_PAGER_BAD case. In
particular, don't move the page from its current queue unless it was in
the laundry. And, if it was, then we don't expect it to be reused.
Discussed with: markj
Modified:
user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c
Modified: user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c
==============================================================================
--- user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Fri Oct 28 16:21:31 2016 (r308051)
+++ user/alc/PQ_LAUNDRY/sys/vm/vm_pageout.c Fri Oct 28 16:22:45 2016 (r308052)
@@ -554,13 +554,15 @@ vm_pageout_flush(vm_page_t *mc, int coun
break;
case VM_PAGER_BAD:
/*
- * Page outside of range of object. Right now we
- * essentially lose the changes by pretending it
- * worked.
+ * The page is outside the object's range. We pretend
+ * that the page out worked and clean the page, so the
+ * changes will be lost if the page is reclaimed by
+ * the page daemon.
*/
vm_page_undirty(mt);
vm_page_lock(mt);
- vm_page_deactivate(mt);
+ if (vm_page_in_laundry(mt))
+ vm_page_deactivate_noreuse(mt);
vm_page_unlock(mt);
break;
case VM_PAGER_ERROR:
More information about the svn-src-user
mailing list