git: 34182e597b2a - stable/14 - swap_pager: Ensure that swapoff puts swapped-in pages in page queues
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 28 Nov 2024 14:38:58 UTC
The branch stable/14 has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=34182e597b2aee9c82744d70aca5b410f85e3219
commit 34182e597b2aee9c82744d70aca5b410f85e3219
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2024-11-13 14:02:20 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2024-11-28 14:38:17 +0000
swap_pager: Ensure that swapoff puts swapped-in pages in page queues
Readahead/behind pages are handled by the swap pager, but the get_pages
caller is responsible for putting fetched pages into queues (or wiring
them beforehand).
Note that the VM object lock prevents the newly queued page from being
immediately reclaimed in the window before it is marked dirty by
swap_pager_swapoff_object().
Reported by: pho
Tested by: pho
Reviewed by: dougm, alc, kib
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D47526
(cherry picked from commit d11d407aee4835fd50811a5980125bb46748fa0b)
---
sys/vm/swap_pager.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c
index ce578cc4fd8b..53cd8294e299 100644
--- a/sys/vm/swap_pager.c
+++ b/sys/vm/swap_pager.c
@@ -1895,6 +1895,7 @@ swap_pager_swapoff_object(struct swdevt *sp, vm_object_t object)
__func__, rv);
VM_OBJECT_WLOCK(object);
vm_object_pip_wakeupn(object, 1);
+ vm_page_deactivate_noreuse(m);
vm_page_xunbusy(m);
/*