All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: linux-mm@kvack.org, linux-doc@vger.kernel.org,
	linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux.dev,
	linux-fsdevel@vger.kernel.org,
	"David Hildenbrand" <david@redhat.com>,
	"Andrew Morton" <akpm@linux-foundation.org>,
	"Jonathan Corbet" <corbet@lwn.net>,
	"Madhavan Srinivasan" <maddy@linux.ibm.com>,
	"Michael Ellerman" <mpe@ellerman.id.au>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Christophe Leroy" <christophe.leroy@csgroup.eu>,
	"Jerrin Shaji George" <jerrin.shaji-george@broadcom.com>,
	"Arnd Bergmann" <arnd@arndb.de>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Jason Wang" <jasowang@redhat.com>,
	"Xuan Zhuo" <xuanzhuo@linux.alibaba.com>,
	"Eugenio Pérez" <eperezma@redhat.com>,
	"Alexander Viro" <viro@zeniv.linux.org.uk>,
	"Christian Brauner" <brauner@kernel.org>,
	"Jan Kara" <jack@suse.cz>, "Zi Yan" <ziy@nvidia.com>,
	"Matthew Brost" <matthew.brost@intel.com>,
	"Joshua Hahn" <joshua.hahnjy@gmail.com>,
	"Rakie Kim" <rakie.kim@sk.com>,
	"Byungchul Park" <byungchul@sk.com>,
	"Gregory Price" <gourry@gourry.net>,
	"Ying Huang" <ying.huang@linux.alibaba.com>,
	"Alistair Popple" <apopple@nvidia.com>,
	"Lorenzo Stoakes" <lorenzo.stoakes@oracle.com>,
	"Liam R. Howlett" <Liam.Howlett@oracle.com>,
	"Vlastimil Babka" <vbabka@suse.cz>,
	"Mike Rapoport" <rppt@kernel.org>,
	"Suren Baghdasaryan" <surenb@google.com>,
	"Michal Hocko" <mhocko@suse.com>,
	"Matthew Wilcox (Oracle)" <willy@infradead.org>,
	"Minchan Kim" <minchan@kernel.org>,
	"Sergey Senozhatsky" <senozhatsky@chromium.org>,
	"Brendan Jackman" <jackmanb@google.com>,
	"Johannes Weiner" <hannes@cmpxchg.org>,
	"Jason Gunthorpe" <jgg@ziepe.ca>,
	"John Hubbard" <jhubbard@nvidia.com>,
	"Peter Xu" <peterx@redhat.com>, "Xu Xin" <xu.xin16@zte.com.cn>,
	"Chengming Zhou" <chengming.zhou@linux.dev>,
	"Miaohe Lin" <linmiaohe@huawei.com>,
	"Naoya Horiguchi" <nao.horiguchi@gmail.com>,
	"Oscar Salvador" <osalvador@suse.de>,
	"Rik van Riel" <riel@surriel.com>,
	"Harry Yoo" <harry.yoo@oracle.com>,
	"Qi Zheng" <zhengqi.arch@bytedance.com>,
	"Shakeel Butt" <shakeel.butt@linux.dev>
Subject: [PATCH v1 16/29] mm: rename __PageMovable() to page_has_movable_ops()
Date: Mon, 30 Jun 2025 14:59:57 +0200	[thread overview]
Message-ID: <20250630130011.330477-17-david@redhat.com> (raw)
In-Reply-To: <20250630130011.330477-1-david@redhat.com>

Let's make it clearer that we are talking about movable_ops pages.

While at it, convert a VM_BUG_ON to a VM_WARN_ON_ONCE_PAGE.

Reviewed-by: Zi Yan <ziy@nvidia.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
---
 include/linux/migrate.h    |  2 +-
 include/linux/page-flags.h |  2 +-
 mm/compaction.c            |  7 ++-----
 mm/memory-failure.c        |  4 ++--
 mm/memory_hotplug.c        |  8 +++-----
 mm/migrate.c               |  8 ++++----
 mm/page_alloc.c            |  2 +-
 mm/page_isolation.c        | 10 +++++-----
 8 files changed, 19 insertions(+), 24 deletions(-)

diff --git a/include/linux/migrate.h b/include/linux/migrate.h
index 25659a685e2aa..e04035f70e36f 100644
--- a/include/linux/migrate.h
+++ b/include/linux/migrate.h
@@ -115,7 +115,7 @@ static inline void __SetPageMovable(struct page *page,
 static inline
 const struct movable_operations *page_movable_ops(struct page *page)
 {
-	VM_BUG_ON(!__PageMovable(page));
+	VM_WARN_ON_ONCE_PAGE(!page_has_movable_ops(page), page);
 
 	return (const struct movable_operations *)
 		((unsigned long)page->mapping - PAGE_MAPPING_MOVABLE);
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h
index 4fe5ee67535b2..c67163b73c5ec 100644
--- a/include/linux/page-flags.h
+++ b/include/linux/page-flags.h
@@ -750,7 +750,7 @@ static __always_inline bool __folio_test_movable(const struct folio *folio)
 			PAGE_MAPPING_MOVABLE;
 }
 
-static __always_inline bool __PageMovable(const struct page *page)
+static __always_inline bool page_has_movable_ops(const struct page *page)
 {
 	return ((unsigned long)page->mapping & PAGE_MAPPING_FLAGS) ==
 				PAGE_MAPPING_MOVABLE;
diff --git a/mm/compaction.c b/mm/compaction.c
index 5c37373017014..41fd6a1fe9a33 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1056,11 +1056,8 @@ isolate_migratepages_block(struct compact_control *cc, unsigned long low_pfn,
 		 * Skip any other type of page
 		 */
 		if (!PageLRU(page)) {
-			/*
-			 * __PageMovable can return false positive so we need
-			 * to verify it under page_lock.
-			 */
-			if (unlikely(__PageMovable(page)) &&
+			/* Isolation code will deal with any races. */
+			if (unlikely(page_has_movable_ops(page)) &&
 					!PageIsolated(page)) {
 				if (locked) {
 					unlock_page_lruvec_irqrestore(locked, flags);
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index b91a33fb6c694..9e2cff1999347 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -1388,8 +1388,8 @@ static inline bool HWPoisonHandlable(struct page *page, unsigned long flags)
 	if (PageSlab(page))
 		return false;
 
-	/* Soft offline could migrate non-LRU movable pages */
-	if ((flags & MF_SOFT_OFFLINE) && __PageMovable(page))
+	/* Soft offline could migrate movable_ops pages */
+	if ((flags & MF_SOFT_OFFLINE) && page_has_movable_ops(page))
 		return true;
 
 	return PageLRU(page) || is_free_buddy_page(page);
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 62d45752f9f44..5fad126949d08 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -1739,8 +1739,8 @@ bool mhp_range_allowed(u64 start, u64 size, bool need_mapping)
 
 #ifdef CONFIG_MEMORY_HOTREMOVE
 /*
- * Scan pfn range [start,end) to find movable/migratable pages (LRU pages,
- * non-lru movable pages and hugepages). Will skip over most unmovable
+ * Scan pfn range [start,end) to find movable/migratable pages (LRU and
+ * hugetlb folio, movable_ops pages). Will skip over most unmovable
  * pages (esp., pages that can be skipped when offlining), but bail out on
  * definitely unmovable pages.
  *
@@ -1759,9 +1759,7 @@ static int scan_movable_pages(unsigned long start, unsigned long end,
 		struct folio *folio;
 
 		page = pfn_to_page(pfn);
-		if (PageLRU(page))
-			goto found;
-		if (__PageMovable(page))
+		if (PageLRU(page) || page_has_movable_ops(page))
 			goto found;
 
 		/*
diff --git a/mm/migrate.c b/mm/migrate.c
index 040484230aebc..587af35b7390d 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -94,7 +94,7 @@ bool isolate_movable_ops_page(struct page *page, isolate_mode_t mode)
 	 * Note that once a page has movable_ops, it will stay that way
 	 * until the page was freed.
 	 */
-	if (unlikely(!__PageMovable(page)))
+	if (unlikely(!page_has_movable_ops(page)))
 		goto out_putfolio;
 
 	/*
@@ -111,7 +111,7 @@ bool isolate_movable_ops_page(struct page *page, isolate_mode_t mode)
 	if (unlikely(!folio_trylock(folio)))
 		goto out_putfolio;
 
-	VM_WARN_ON_ONCE_PAGE(!__PageMovable(page), page);
+	VM_WARN_ON_ONCE_PAGE(!page_has_movable_ops(page), page);
 	if (PageIsolated(page))
 		goto out_no_isolated;
 
@@ -153,7 +153,7 @@ static void putback_movable_ops_page(struct page *page)
 	 */
 	struct folio *folio = page_folio(page);
 
-	VM_WARN_ON_ONCE_PAGE(!__PageMovable(page), page);
+	VM_WARN_ON_ONCE_PAGE(!page_has_movable_ops(page), page);
 	VM_WARN_ON_ONCE_PAGE(!PageIsolated(page), page);
 	folio_lock(folio);
 	page_movable_ops(page)->putback_page(page);
@@ -192,7 +192,7 @@ static int migrate_movable_ops_page(struct page *dst, struct page *src,
 {
 	int rc = MIGRATEPAGE_SUCCESS;
 
-	VM_WARN_ON_ONCE_PAGE(!__PageMovable(src), src);
+	VM_WARN_ON_ONCE_PAGE(!page_has_movable_ops(src), src);
 	VM_WARN_ON_ONCE_PAGE(!PageIsolated(src), src);
 	rc = page_movable_ops(src)->migrate_page(dst, src, mode);
 	if (rc == MIGRATEPAGE_SUCCESS)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 44e56d31cfeb1..a134b9fa9520e 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2005,7 +2005,7 @@ static bool prep_move_freepages_block(struct zone *zone, struct page *page,
 			 * migration are movable. But we don't actually try
 			 * isolating, as that would be expensive.
 			 */
-			if (PageLRU(page) || __PageMovable(page))
+			if (PageLRU(page) || page_has_movable_ops(page))
 				(*num_movable)++;
 			pfn++;
 		}
diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index ece3bfc56bcd5..b97b965b3ed01 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -21,9 +21,9 @@
  * consequently belong to a single zone.
  *
  * PageLRU check without isolation or lru_lock could race so that
- * MIGRATE_MOVABLE block might include unmovable pages. And __PageMovable
- * check without lock_page also may miss some movable non-lru pages at
- * race condition. So you can't expect this function should be exact.
+ * MIGRATE_MOVABLE block might include unmovable pages. Similarly, pages
+ * with movable_ops can only be identified some time after they were
+ * allocated. So you can't expect this function should be exact.
  *
  * Returns a page without holding a reference. If the caller wants to
  * dereference that page (e.g., dumping), it has to make sure that it
@@ -133,7 +133,7 @@ static struct page *has_unmovable_pages(unsigned long start_pfn, unsigned long e
 		if ((mode == PB_ISOLATE_MODE_MEM_OFFLINE) && PageOffline(page))
 			continue;
 
-		if (__PageMovable(page) || PageLRU(page))
+		if (PageLRU(page) || page_has_movable_ops(page))
 			continue;
 
 		/*
@@ -421,7 +421,7 @@ static int isolate_single_pageblock(unsigned long boundary_pfn,
 			 * proper free and split handling for them.
 			 */
 			VM_WARN_ON_ONCE_PAGE(PageLRU(page), page);
-			VM_WARN_ON_ONCE_PAGE(__PageMovable(page), page);
+			VM_WARN_ON_ONCE_PAGE(page_has_movable_ops(page), page);
 
 			goto failed;
 		}
-- 
2.49.0


  parent reply	other threads:[~2025-06-30 13:01 UTC|newest]

Thread overview: 138+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-30 12:59 [PATCH v1 00/29] mm/migration: rework movable_ops page migration (part 1) David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 01/29] mm/balloon_compaction: we cannot have isolated pages in the balloon list David Hildenbrand
2025-06-30 14:45   ` Lorenzo Stoakes
2025-06-30 12:59 ` [PATCH v1 02/29] mm/balloon_compaction: convert balloon_page_delete() to balloon_page_finalize() David Hildenbrand
2025-06-30 15:15   ` Lorenzo Stoakes
2025-07-01  7:58     ` David Hildenbrand
2025-07-01  9:01       ` Lorenzo Stoakes
2025-07-01  9:59         ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 03/29] mm/zsmalloc: drop PageIsolated() related VM_BUG_ONs David Hildenbrand
2025-06-30 15:17   ` Lorenzo Stoakes
2025-07-01  8:03     ` David Hildenbrand
2025-07-01  8:57       ` Lorenzo Stoakes
2025-06-30 12:59 ` [PATCH v1 04/29] mm/page_alloc: let page freeing clear any set page type David Hildenbrand
2025-06-30 15:27   ` Lorenzo Stoakes
2025-07-01  8:17     ` David Hildenbrand
2025-07-01  8:27       ` Lorenzo Stoakes
2025-07-01  8:34         ` David Hildenbrand
2025-07-01  8:37           ` Lorenzo Stoakes
2025-07-01 10:02             ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 05/29] mm/balloon_compaction: make PageOffline sticky until the page is freed David Hildenbrand
2025-06-30 16:01   ` Lorenzo Stoakes
2025-06-30 16:14     ` Zi Yan
2025-06-30 16:17       ` Lorenzo Stoakes
2025-07-01  6:13       ` Harry Yoo
2025-07-01  8:11         ` David Hildenbrand
2025-07-01  8:12       ` David Hildenbrand
2025-07-01  8:21     ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 06/29] mm/zsmalloc: make PageZsmalloc() " David Hildenbrand
2025-06-30 16:03   ` Lorenzo Stoakes
2025-07-01  8:27     ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 07/29] mm/migrate: rename isolate_movable_page() to isolate_movable_ops_page() David Hildenbrand
2025-06-30 16:24   ` Lorenzo Stoakes
2025-07-01  8:29     ` David Hildenbrand
2025-07-01  9:11       ` Lorenzo Stoakes
2025-06-30 12:59 ` [PATCH v1 08/29] mm/migrate: rename putback_movable_folio() to putback_movable_ops_page() David Hildenbrand
2025-06-30 16:29   ` Lorenzo Stoakes
2025-07-01  6:04   ` Harry Yoo
2025-07-01 14:42   ` Zi Yan
2025-06-30 12:59 ` [PATCH v1 09/29] mm/migrate: factor out movable_ops page handling into migrate_movable_ops_page() David Hildenbrand
2025-06-30 17:05   ` Lorenzo Stoakes
2025-07-01  9:24     ` David Hildenbrand
2025-07-01 10:10       ` David Hildenbrand
2025-07-01  7:05   ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 10/29] mm/migrate: remove folio_test_movable() and folio_movable_ops() David Hildenbrand
2025-06-30 17:07   ` Lorenzo Stoakes
2025-07-01 10:15     ` David Hildenbrand
2025-07-01 10:25       ` Lorenzo Stoakes
2025-07-01  6:31   ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 11/29] mm/migrate: move movable_ops page handling out of move_to_new_folio() David Hildenbrand
2025-07-01  7:14   ` Harry Yoo
2025-07-01  9:37   ` Lorenzo Stoakes
2025-06-30 12:59 ` [PATCH v1 12/29] mm/zsmalloc: stop using __ClearPageMovable() David Hildenbrand
2025-07-01  8:20   ` Harry Yoo
2025-07-01  9:40   ` Lorenzo Stoakes
2025-07-02  8:11   ` Sergey Senozhatsky
2025-07-02  8:25     ` David Hildenbrand
2025-07-02 10:10       ` Sergey Senozhatsky
2025-07-02 10:55         ` David Hildenbrand
2025-07-03  2:28           ` Sergey Senozhatsky
2025-07-03  3:22             ` Sergey Senozhatsky
2025-07-03  7:45               ` David Hildenbrand
2025-07-03  7:49                 ` Sergey Senozhatsky
2025-06-30 12:59 ` [PATCH v1 13/29] mm/balloon_compaction: " David Hildenbrand
2025-07-01 10:03   ` Lorenzo Stoakes
2025-07-01 10:19     ` David Hildenbrand
2025-07-01 10:40       ` Lorenzo Stoakes
2025-07-01 12:24         ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 14/29] mm/migrate: remove __ClearPageMovable() David Hildenbrand
2025-07-01  8:36   ` Harry Yoo
2025-07-01 10:43   ` Lorenzo Stoakes
2025-07-01 12:25     ` David Hildenbrand
2025-06-30 12:59 ` [PATCH v1 15/29] mm/migration: remove PageMovable() David Hildenbrand
2025-07-01 10:50   ` Lorenzo Stoakes
2025-07-01 12:27     ` David Hildenbrand
2025-07-02  9:20   ` Harry Yoo
2025-06-30 12:59 ` David Hildenbrand [this message]
2025-07-01 10:59   ` [PATCH v1 16/29] mm: rename __PageMovable() to page_has_movable_ops() Lorenzo Stoakes
2025-07-01 12:29     ` David Hildenbrand
2025-07-02  9:29   ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 17/29] mm/page_isolation: drop __folio_test_movable() check for large folios David Hildenbrand
2025-07-01 11:03   ` Lorenzo Stoakes
2025-07-01 12:32     ` David Hildenbrand
2025-07-02  9:54       ` Harry Yoo
2025-07-02  9:48   ` Harry Yoo
2025-06-30 12:59 ` [PATCH v1 18/29] mm: remove __folio_test_movable() David Hildenbrand
2025-07-01 11:30   ` Lorenzo Stoakes
2025-07-01 12:36     ` David Hildenbrand
2025-07-02 10:20   ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 19/29] mm: stop storing migration_ops in page->mapping David Hildenbrand
2025-07-01 12:12   ` Lorenzo Stoakes
2025-07-01 12:41     ` David Hildenbrand
2025-07-02 10:34   ` Harry Yoo
2025-07-02 11:04     ` David Hildenbrand
2025-07-02 11:43       ` Harry Yoo
2025-07-02 11:51         ` David Hildenbrand
2025-07-02 11:57           ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 20/29] mm: convert "movable" flag in page->mapping to a page flag David Hildenbrand
2025-07-01 12:44   ` Lorenzo Stoakes
2025-07-01 12:49     ` David Hildenbrand
2025-07-02 11:54   ` Harry Yoo
2025-07-02 12:01     ` David Hildenbrand
2025-07-02 13:01       ` Harry Yoo
2025-07-02 15:25         ` David Hildenbrand
2025-06-30 13:00 ` [PATCH v1 21/29] mm: rename PG_isolated to PG_movable_ops_isolated David Hildenbrand
2025-07-01 12:51   ` Lorenzo Stoakes
2025-07-01 16:19     ` David Hildenbrand
2025-07-02 13:04   ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 22/29] mm/page-flags: rename PAGE_MAPPING_MOVABLE to PAGE_MAPPING_ANON_KSM David Hildenbrand
2025-07-01 12:54   ` Lorenzo Stoakes
2025-07-01 19:31     ` David Hildenbrand
2025-07-02  9:06       ` Lorenzo Stoakes
2025-07-02 13:11   ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 23/29] mm/page-alloc: remove PageMappingFlags() David Hildenbrand
2025-07-01 13:02   ` Lorenzo Stoakes
2025-07-01 19:34     ` David Hildenbrand
2025-07-02  8:49       ` Lorenzo Stoakes
2025-07-02  9:02         ` David Hildenbrand
2025-07-02  9:09           ` Lorenzo Stoakes
2025-07-02  9:16             ` David Hildenbrand
2025-07-02 13:20   ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 24/29] mm/page-flags: remove folio_mapping_flags() David Hildenbrand
2025-07-01 13:03   ` Lorenzo Stoakes
2025-07-02 13:23   ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 25/29] mm: simplify folio_expected_ref_count() David Hildenbrand
2025-07-01 13:15   ` Lorenzo Stoakes
2025-07-02 13:40   ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 26/29] mm: rename PAGE_MAPPING_* to FOLIO_MAPPING_* David Hildenbrand
2025-07-01 13:17   ` Lorenzo Stoakes
2025-07-02 14:10   ` Harry Yoo
2025-06-30 13:00 ` [PATCH v1 27/29] docs/mm: convert from "Non-LRU page migration" to "movable_ops page migration" David Hildenbrand
2025-07-01 13:19   ` Lorenzo Stoakes
2025-07-02 14:23   ` Harry Yoo
2025-07-02 14:52     ` David Hildenbrand
2025-06-30 13:00 ` [PATCH v1 28/29] mm/balloon_compaction: "movable_ops" doc updates David Hildenbrand
2025-07-01 13:20   ` Lorenzo Stoakes
2025-06-30 13:00 ` [PATCH v1 29/29] mm/balloon_compaction: provide single balloon_page_insert() and balloon_mapping_gfp_mask() David Hildenbrand
2025-07-01 13:22   ` Lorenzo Stoakes
2025-07-01 19:38 ` [PATCH v1 00/29] mm/migration: rework movable_ops page migration (part 1) David Hildenbrand

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=20250630130011.330477-17-david@redhat.com \
    --to=david@redhat.com \
    --cc=Liam.Howlett@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=apopple@nvidia.com \
    --cc=arnd@arndb.de \
    --cc=brauner@kernel.org \
    --cc=byungchul@sk.com \
    --cc=chengming.zhou@linux.dev \
    --cc=christophe.leroy@csgroup.eu \
    --cc=corbet@lwn.net \
    --cc=eperezma@redhat.com \
    --cc=gourry@gourry.net \
    --cc=gregkh@linuxfoundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=harry.yoo@oracle.com \
    --cc=jack@suse.cz \
    --cc=jackmanb@google.com \
    --cc=jasowang@redhat.com \
    --cc=jerrin.shaji-george@broadcom.com \
    --cc=jgg@ziepe.ca \
    --cc=jhubbard@nvidia.com \
    --cc=joshua.hahnjy@gmail.com \
    --cc=linmiaohe@huawei.com \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=lorenzo.stoakes@oracle.com \
    --cc=maddy@linux.ibm.com \
    --cc=matthew.brost@intel.com \
    --cc=mhocko@suse.com \
    --cc=minchan@kernel.org \
    --cc=mpe@ellerman.id.au \
    --cc=mst@redhat.com \
    --cc=nao.horiguchi@gmail.com \
    --cc=npiggin@gmail.com \
    --cc=osalvador@suse.de \
    --cc=peterx@redhat.com \
    --cc=rakie.kim@sk.com \
    --cc=riel@surriel.com \
    --cc=rppt@kernel.org \
    --cc=senozhatsky@chromium.org \
    --cc=shakeel.butt@linux.dev \
    --cc=surenb@google.com \
    --cc=vbabka@suse.cz \
    --cc=viro@zeniv.linux.org.uk \
    --cc=virtualization@lists.linux.dev \
    --cc=willy@infradead.org \
    --cc=xu.xin16@zte.com.cn \
    --cc=xuanzhuo@linux.alibaba.com \
    --cc=ying.huang@linux.alibaba.com \
    --cc=zhengqi.arch@bytedance.com \
    --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.