mm: add PG_dropbehind folio flag
authorJens Axboe <axboe@kernel.dk>
Thu, 7 Nov 2024 19:08:59 +0000 (12:08 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 20 Dec 2024 15:30:39 +0000 (08:30 -0700)
Add a folio flag that file IO can use to indicate that the cached IO
being done should be dropped from the page cache upon completion.

Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/page-flags.h
include/trace/events/mmflags.h

index cf46ac7208029a112aabd951d9c195601d101768..16607f02abd00bcd4a0606218ef3d7143ecaedef 100644 (file)
@@ -110,6 +110,7 @@ enum pageflags {
        PG_reclaim,             /* To be reclaimed asap */
        PG_swapbacked,          /* Page is backed by RAM/swap */
        PG_unevictable,         /* Page is "unevictable"  */
+       PG_dropbehind,          /* drop pages on IO completion */
 #ifdef CONFIG_MMU
        PG_mlocked,             /* Page is vma mlocked */
 #endif
@@ -562,6 +563,10 @@ PAGEFLAG(Reclaim, reclaim, PF_NO_TAIL)
 FOLIO_FLAG(readahead, FOLIO_HEAD_PAGE)
        FOLIO_TEST_CLEAR_FLAG(readahead, FOLIO_HEAD_PAGE)
 
+FOLIO_FLAG(dropbehind, FOLIO_HEAD_PAGE)
+       FOLIO_TEST_CLEAR_FLAG(dropbehind, FOLIO_HEAD_PAGE)
+       __FOLIO_SET_FLAG(dropbehind, FOLIO_HEAD_PAGE)
+
 #ifdef CONFIG_HIGHMEM
 /*
  * Must use a macro here due to header dependency issues. page_zone() is not
index bb8a59c6caa21971862b6f200263c74cedff3882..3bc8656c8359f1cd7bb3816841e9a44383c8c339 100644 (file)
        DEF_PAGEFLAG_NAME(head),                                        \
        DEF_PAGEFLAG_NAME(reclaim),                                     \
        DEF_PAGEFLAG_NAME(swapbacked),                                  \
-       DEF_PAGEFLAG_NAME(unevictable)                                  \
+       DEF_PAGEFLAG_NAME(unevictable),                                 \
+       DEF_PAGEFLAG_NAME(dropbehind)                                   \
 IF_HAVE_PG_MLOCK(mlocked)                                              \
 IF_HAVE_PG_HWPOISON(hwpoison)                                          \
 IF_HAVE_PG_IDLE(idle)                                                  \