]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: add PG_dropbehind folio flag
authorJens Axboe <axboe@kernel.dk>
Fri, 20 Dec 2024 15:47:42 +0000 (08:47 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 26 Jan 2025 04:22:42 +0000 (20:22 -0800)
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.

Link: https://lkml.kernel.org/r/20241220154831.1086649-5-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Brian Foster <bfoster@redhat.com>
Cc: Chris Mason <clm@meta.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/page-flags.h
include/trace/events/mmflags.h

index 616b57ddc3fe9b61a3109b5bda40402e5d2f0da0..36d283552f80e9e969a29d00fe627c453d24c2ab 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)                                                  \