Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Feb 2021 16:10:36 GMT
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: 5c18744ea9b9 - main - vm: Honour the "noreuse" flag to vm_page_unwire_managed()
Message-ID:  <202102101610.11AGAadK093936@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by markj:

URL: https://cgit.FreeBSD.org/src/commit/?id=5c18744ea9b94cb6a9a091a900fa4999868736e1

commit 5c18744ea9b94cb6a9a091a900fa4999868736e1
Author:     Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2021-02-10 16:10:27 +0000
Commit:     Mark Johnston <markj@FreeBSD.org>
CommitDate: 2021-02-10 16:10:27 +0000

    vm: Honour the "noreuse" flag to vm_page_unwire_managed()
    
    This flag indicates that the page should be enqueued near the head of
    the inactive queue, skipping the LRU queue.  It is used when unwiring
    pages from the buffer cache following direct I/O or after I/O when
    POSIX_FADV_NOREUSE or _DONTNEED advice was specified, or when
    sendfile(SF_NOCACHE) completes.  For the direct I/O and sendfile cases
    we only enqueue the page if we decide not to free it, typically because
    it's mapped.
    
    Pass "noreuse" through to vm_page_release_toq() so that we actually
    honour the desired LRU policy for these scenarios.
    
    Reported by:    bdrewery
    Reviewed by:    alc, kib
    MFC after:      3 days
    Differential Revision:  https://reviews.freebsd.org/D28555
---
 sys/vm/vm_page.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index e668bbdc6178..c36b8cdc5762 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -3989,7 +3989,7 @@ vm_page_unwire_managed(vm_page_t m, uint8_t nqueue, bool noreuse)
 			 * (i.e., the VPRC_OBJREF bit is clear), we only need to
 			 * clear leftover queue state.
 			 */
-			vm_page_release_toq(m, nqueue, false);
+			vm_page_release_toq(m, nqueue, noreuse);
 		} else if (old == 1) {
 			vm_page_aflag_clear(m, PGA_DEQUEUE);
 		}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202102101610.11AGAadK093936>