[PATCH v3 03/14] mm/ksm: add folio_set_stable_node

alexs@kernel.org posted 14 patches 1 year, 10 months ago
There is a newer version of this series
[PATCH v3 03/14] mm/ksm: add folio_set_stable_node
Posted by alexs@kernel.org 1 year, 10 months ago
From: "Alex Shi (tencent)" <alexs@kernel.org>

Turn set_page_stable_node() into a wrapper folio_set_stable_node, and then
use it to replace the former. we will merge them together after all
place converted to folio.

Signed-off-by: Alex Shi (tencent) <alexs@kernel.org>
Cc: Izik Eidus <izik.eidus@ravellosystems.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Chris Wright <chrisw@sous-sol.org>
---
 mm/ksm.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/mm/ksm.c b/mm/ksm.c
index ea3dabf71e47..c9b7c5701f22 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -1109,6 +1109,12 @@ static inline void set_page_stable_node(struct page *page,
 	page->mapping = (void *)((unsigned long)stable_node | PAGE_MAPPING_KSM);
 }
 
+static inline void folio_set_stable_node(struct folio *folio,
+					 struct ksm_stable_node *stable_node)
+{
+	set_page_stable_node(&folio->page, stable_node);
+}
+
 #ifdef CONFIG_SYSFS
 /*
  * Only called through the sysfs control interface:
@@ -3241,7 +3247,7 @@ void folio_migrate_ksm(struct folio *newfolio, struct folio *folio)
 		 * has gone stale (or that folio_test_swapcache has been cleared).
 		 */
 		smp_wmb();
-		set_page_stable_node(&folio->page, NULL);
+		folio_set_stable_node(folio, NULL);
 	}
 }
 #endif /* CONFIG_MIGRATION */
-- 
2.43.0
Re: [PATCH v3 03/14] mm/ksm: add folio_set_stable_node
Posted by David Hildenbrand 1 year, 10 months ago
On 25.03.24 13:48, alexs@kernel.org wrote:
> From: "Alex Shi (tencent)" <alexs@kernel.org>
> 
> Turn set_page_stable_node() into a wrapper folio_set_stable_node, and then
> use it to replace the former. we will merge them together after all
> place converted to folio.
> 
> Signed-off-by: Alex Shi (tencent) <alexs@kernel.org>
> Cc: Izik Eidus <izik.eidus@ravellosystems.com>
> Cc: Matthew Wilcox <willy@infradead.org>
> Cc: Andrea Arcangeli <aarcange@redhat.com>
> Cc: Hugh Dickins <hughd@google.com>
> Cc: Chris Wright <chrisw@sous-sol.org>
> ---
>   mm/ksm.c | 8 +++++++-
>   1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/mm/ksm.c b/mm/ksm.c
> index ea3dabf71e47..c9b7c5701f22 100644
> --- a/mm/ksm.c
> +++ b/mm/ksm.c
> @@ -1109,6 +1109,12 @@ static inline void set_page_stable_node(struct page *page,
>   	page->mapping = (void *)((unsigned long)stable_node | PAGE_MAPPING_KSM);
>   }
>   
> +static inline void folio_set_stable_node(struct folio *folio,
> +					 struct ksm_stable_node *stable_node)
> +{
> +	set_page_stable_node(&folio->page, stable_node);
> +}
> +
>   #ifdef CONFIG_SYSFS
>   /*
>    * Only called through the sysfs control interface:
> @@ -3241,7 +3247,7 @@ void folio_migrate_ksm(struct folio *newfolio, struct folio *folio)
>   		 * has gone stale (or that folio_test_swapcache has been cleared).
>   		 */
>   		smp_wmb();
> -		set_page_stable_node(&folio->page, NULL);
> +		folio_set_stable_node(folio, NULL);
>   	}
>   }
>   #endif /* CONFIG_MIGRATION */
Reviewed-by: David Hildenbrand <david@redhat.com>

-- 
Cheers,

David / dhildenb