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>,
	Zi Yan <ziy@nvidia.com>, Jiaqi Yan <jiaqiyan@google.com>,
	Hugh Dickins <hughd@google.com>,
	Kefeng Wang <wangkefeng.wang@huawei.com>
Subject: [PATCH v1 03/11] mm: migrate_device: unify migrate folio for MIGRATE_SYNC_NO_COPY
Date: Thu, 21 Mar 2024 11:27:39 +0800	[thread overview]
Message-ID: <20240321032747.87694-4-wangkefeng.wang@huawei.com> (raw)
In-Reply-To: <20240321032747.87694-1-wangkefeng.wang@huawei.com>

The __migrate_device_pages() won't copy page so MIGRATE_SYNC_NO_COPY
passed into migrate_folio()/migrate_folio_extra(), actually a easy
way is just to call folio_migrate_mapping()/folio_migrate_flags(),
converting it to unify and simplify the migrate device pages, which
also remove the only call for MIGRATE_SYNC_NO_COPY.

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

diff --git a/mm/migrate_device.c b/mm/migrate_device.c
index ee4d60951670..c0547271eaaa 100644
--- a/mm/migrate_device.c
+++ b/mm/migrate_device.c
@@ -695,7 +695,7 @@ static void __migrate_device_pages(unsigned long *src_pfns,
 		struct page *page = migrate_pfn_to_page(src_pfns[i]);
 		struct address_space *mapping;
 		struct folio *newfolio, *folio;
-		int r;
+		int r, extra_cnt = 0;
 
 		if (!newpage) {
 			src_pfns[i] &= ~MIGRATE_PFN_MIGRATE;
@@ -757,14 +757,15 @@ static void __migrate_device_pages(unsigned long *src_pfns,
 			continue;
 		}
 
+		BUG_ON(folio_test_writeback(folio));
+
 		if (migrate && migrate->fault_page == page)
-			r = migrate_folio_extra(mapping, newfolio, folio,
-						MIGRATE_SYNC_NO_COPY, 1);
-		else
-			r = migrate_folio(mapping, newfolio, folio,
-					  MIGRATE_SYNC_NO_COPY);
+			extra_cnt = 1;
+		r = folio_migrate_mapping(mapping, newfolio, folio, extra_cnt);
 		if (r != MIGRATEPAGE_SUCCESS)
 			src_pfns[i] &= ~MIGRATE_PFN_MIGRATE;
+		else
+			folio_migrate_flags(newfolio, folio);
 	}
 
 	if (notified)
-- 
2.27.0


  parent reply	other threads:[~2024-03-21  3:28 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-21  3:27 [PATCH v1 00/11] mm: migrate: support poison recover from migrate folio Kefeng Wang
2024-03-21  3:27 ` [PATCH v1 01/11] mm: migrate: simplify __buffer_migrate_folio() Kefeng Wang
2024-04-01 17:54   ` Vishal Moola
2024-04-16  9:28   ` Miaohe Lin
2024-03-21  3:27 ` [PATCH v1 02/11] mm: migrate_device: use more folio in __migrate_device_pages() Kefeng Wang
2024-04-01 18:22   ` Vishal Moola
2024-04-02  6:21     ` Kefeng Wang
2024-04-02 15:54       ` Vishal Moola
2024-04-03  1:23         ` Kefeng Wang
2024-04-16 12:13   ` Miaohe Lin
2024-03-21  3:27 ` Kefeng Wang [this message]
2024-03-21  3:27 ` [PATCH v1 04/11] mm: migrate: remove migrate_folio_extra() Kefeng Wang
2024-04-16 12:40   ` Miaohe Lin
2024-04-17  1:43     ` Kefeng Wang
2024-04-18  2:32       ` Miaohe Lin
2024-03-21  3:27 ` [PATCH v1 05/11] mm: remove MIGRATE_SYNC_NO_COPY mode Kefeng Wang
2024-03-21  3:27 ` [PATCH v1 06/11] mm: migrate: split folio_migrate_mapping() Kefeng Wang
2024-03-21  3:27 ` [PATCH v1 07/11] mm: add folio_mc_copy() Kefeng Wang
2024-03-21  3:27 ` [PATCH v1 08/11] mm: migrate: support poisoned recover from migrate folio Kefeng Wang
2024-03-21  3:27 ` [PATCH v1 09/11] fs: hugetlbfs: support poison recover from hugetlbfs_migrate_folio() Kefeng Wang
2024-03-21  3:27 ` [PATCH v1 10/11] mm: migrate: remove folio_migrate_copy() Kefeng Wang
2024-03-21  3:27 ` [PATCH v1 11/11] fs: aio: add explicit check for large folio in aio_migrate_folio() Kefeng Wang
2024-03-21  3:35   ` Matthew Wilcox
2024-03-21  5:40     ` Kefeng Wang
2024-03-28 13:30 ` [PATCH v1 00/11] mm: migrate: support poison recover from 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=20240321032747.87694-4-wangkefeng.wang@huawei.com \
    --to=wangkefeng.wang@huawei.com \
    --cc=akpm@linux-foundation.org \
    --cc=bcrl@kvack.org \
    --cc=david@redhat.com \
    --cc=hughd@google.com \
    --cc=jglisse@redhat.com \
    --cc=jiaqiyan@google.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 \
    --cc=ziy@nvidia.com \
    /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.