All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kefeng Wang <wangkefeng.wang@huawei.com>
To: Andrew Morton <akpm@linux-foundation.org>, <linux-mm@kvack.org>
Cc: Tony Luck <tony.luck@intel.com>,
	Naoya Horiguchi <naoya.horiguchi@nec.com>,
	Miaohe Lin <linmiaohe@huawei.com>,
	Matthew Wilcox <willy@infradead.org>,
	David Hildenbrand <david@redhat.com>,
	Muchun Song <muchun.song@linux.dev>,
	Benjamin LaHaise <bcrl@kvack.org>, <jglisse@redhat.com>,
	<linux-aio@kvack.org>, <linux-fsdevel@vger.kernel.org>,
	Kefeng Wang <wangkefeng.wang@huawei.com>
Subject: [PATCH rfc 2/9] mm: migrate_device: use more folio in __migrate_device_pages()
Date: Mon, 29 Jan 2024 15:09:27 +0800	[thread overview]
Message-ID: <20240129070934.3717659-3-wangkefeng.wang@huawei.com> (raw)
In-Reply-To: <20240129070934.3717659-1-wangkefeng.wang@huawei.com>

Use newfolio/folio for migrate_folio_extra()/migrate_folio() to
save three compound_head() calls.

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 mm/migrate_device.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/mm/migrate_device.c b/mm/migrate_device.c
index b6c27c76e1a0..d49a48d87d72 100644
--- a/mm/migrate_device.c
+++ b/mm/migrate_device.c
@@ -694,6 +694,7 @@ static void __migrate_device_pages(unsigned long *src_pfns,
 		struct page *newpage = migrate_pfn_to_page(dst_pfns[i]);
 		struct page *page = migrate_pfn_to_page(src_pfns[i]);
 		struct address_space *mapping;
+		struct folio *newfolio, *folio;
 		int r;
 
 		if (!newpage) {
@@ -729,13 +730,12 @@ static void __migrate_device_pages(unsigned long *src_pfns,
 		}
 
 		mapping = page_mapping(page);
+		folio = page_folio(page);
+		newfolio = page_folio(newpage);
 
-		if (is_device_private_page(newpage) ||
-		    is_device_coherent_page(newpage)) {
+		if (folio_is_device_private(newfolio) ||
+		    folio_is_device_coherent(newfolio)) {
 			if (mapping) {
-				struct folio *folio;
-
-				folio = page_folio(page);
 
 				/*
 				 * For now only support anonymous memory migrating to
@@ -749,7 +749,7 @@ static void __migrate_device_pages(unsigned long *src_pfns,
 					continue;
 				}
 			}
-		} else if (is_zone_device_page(newpage)) {
+		} else if (folio_is_zone_device(newfolio)) {
 			/*
 			 * Other types of ZONE_DEVICE page are not supported.
 			 */
@@ -758,12 +758,11 @@ static void __migrate_device_pages(unsigned long *src_pfns,
 		}
 
 		if (migrate && migrate->fault_page == page)
-			r = migrate_folio_extra(mapping, page_folio(newpage),
-						page_folio(page),
+			r = migrate_folio_extra(mapping, newfolio, folio,
 						MIGRATE_SYNC_NO_COPY, 1);
 		else
-			r = migrate_folio(mapping, page_folio(newpage),
-					page_folio(page), MIGRATE_SYNC_NO_COPY);
+			r = migrate_folio(mapping, newfolio, folio,
+					  MIGRATE_SYNC_NO_COPY);
 		if (r != MIGRATEPAGE_SUCCESS)
 			src_pfns[i] &= ~MIGRATE_PFN_MIGRATE;
 	}
-- 
2.27.0


  parent reply	other threads:[~2024-01-29  7:09 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-29  7:09 [PATCH rfc 0/9] mm: migrate: support poison recover from migrate folio Kefeng Wang
2024-01-29  7:09 ` [PATCH rfc 1/9] mm: migrate: simplify __buffer_migrate_folio() Kefeng Wang
2024-02-01 19:12   ` Matthew Wilcox
2024-01-29  7:09 ` Kefeng Wang [this message]
2024-02-01 19:27   ` [PATCH rfc 2/9] mm: migrate_device: use more folio in __migrate_device_pages() Matthew Wilcox
2024-02-02  2:44     ` Kefeng Wang
2024-01-29  7:09 ` [PATCH rfc 3/9] mm: migrate: remove migrate_folio_extra() Kefeng Wang
2024-02-01 20:09   ` Matthew Wilcox
2024-02-02  2:46     ` Kefeng Wang
2024-01-29  7:09 ` [PATCH rfc 4/9] mm: remove MIGRATE_SYNC_NO_COPY mode Kefeng Wang
2024-02-01 20:23   ` Matthew Wilcox
2024-01-29  7:09 ` [PATCH rfc 5/9] mm: add folio_mc_copy() Kefeng Wang
2024-01-29  7:09 ` [PATCH rfc 6/9] mm: migrate: support poisoned recover from migrate folio Kefeng Wang
2024-02-01 20:34   ` Matthew Wilcox
2024-02-02  3:04     ` Kefeng Wang
2024-02-02  9:06       ` Kefeng Wang
2024-01-29  7:09 ` [PATCH rfc 7/9] fs: hugetlbfs: support poison recover from hugetlbfs_migrate_folio() Kefeng Wang
2024-01-29  7:09 ` [PATCH rfc 8/9] mm: migrate: remove folio_migrate_copy() Kefeng Wang
2024-01-29  7:09 ` [PATCH rfc 9/9] fs: aio: add explicit check for large folio in aio_migrate_folio() Kefeng Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240129070934.3717659-3-wangkefeng.wang@huawei.com \
    --to=wangkefeng.wang@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=bcrl@kvack.org \
    --cc=david@redhat.com \
    --cc=jglisse@redhat.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-aio@kvack.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=muchun.song@linux.dev \
    --cc=naoya.horiguchi@nec.com \
    --cc=tony.luck@intel.com \
    --cc=willy@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.