* [merged mm-stable] gup-use-folios-for-gup_devmap.patch removed from -mm tree
@ 2024-05-06 0:58 Andrew Morton
0 siblings, 0 replies; only message in thread
From: Andrew Morton @ 2024-05-06 0:58 UTC (permalink / raw
To: mm-commits, willy, akpm
The quilt patch titled
Subject: gup: use folios for gup_devmap
has been removed from the -mm tree. Its filename was
gup-use-folios-for-gup_devmap.patch
This patch was dropped because it was merged into the mm-stable branch
of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Subject: gup: use folios for gup_devmap
Date: Wed, 24 Apr 2024 20:19:10 +0100
Use try_grab_folio() instead of try_grab_page() so we get the folio back
that we calculated, and then use folio_set_referenced() instead of
SetPageReferenced(). Correspondingly, use gup_put_folio() to put any
unneeded references.
Link: https://lkml.kernel.org/r/20240424191914.361554-6-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
mm/gup.c | 17 ++++++++---------
1 file changed, 8 insertions(+), 9 deletions(-)
--- a/mm/gup.c~gup-use-folios-for-gup_devmap
+++ a/mm/gup.c
@@ -2877,13 +2877,10 @@ static void __maybe_unused gup_fast_undo
unsigned int flags, struct page **pages)
{
while ((*nr) - nr_start) {
- struct page *page = pages[--(*nr)];
+ struct folio *folio = page_folio(pages[--(*nr)]);
- ClearPageReferenced(page);
- if (flags & FOLL_PIN)
- unpin_user_page(page);
- else
- put_page(page);
+ folio_clear_referenced(folio);
+ gup_put_folio(folio, 1, flags);
}
}
@@ -3024,6 +3021,7 @@ static int gup_fast_devmap_leaf(unsigned
struct dev_pagemap *pgmap = NULL;
do {
+ struct folio *folio;
struct page *page = pfn_to_page(pfn);
pgmap = get_dev_pagemap(pfn, pgmap);
@@ -3037,12 +3035,13 @@ static int gup_fast_devmap_leaf(unsigned
break;
}
- SetPageReferenced(page);
- pages[*nr] = page;
- if (unlikely(try_grab_page(page, flags))) {
+ folio = try_grab_folio(page, 1, flags);
+ if (!folio) {
gup_fast_undo_dev_pagemap(nr, nr_start, flags, pages);
break;
}
+ folio_set_referenced(folio);
+ pages[*nr] = page;
(*nr)++;
pfn++;
} while (addr += PAGE_SIZE, addr != end);
_
Patches currently in -mm which might be from willy@infradead.org are
squashfs-convert-squashfs_symlink_read_folio-to-use-folio-apis.patch
squashfs-remove-calls-to-set-the-folio-error-flag.patch
nilfs2-remove-calls-to-folio_set_error-and-folio_clear_error.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-05-06 0:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-06 0:58 [merged mm-stable] gup-use-folios-for-gup_devmap.patch removed from -mm tree Andrew Morton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).