On 09.04.24 11:28, alexs@xxxxxxxxxx wrote:
From: "Alex Shi (tencent)" <alexs@xxxxxxxxxx>
In ksm stable tree all page are single, let's convert them to use and
folios as well as stable_tree_insert/stable_tree_search funcs.
And replace get_ksm_page() by ksm_get_folio() since there is no more
needs.
It could save a few compound_head calls.
Signed-off-by: Alex Shi (tencent) <alexs@xxxxxxxxxx>
Cc: Izik Eidus <izik.eidus@xxxxxxxxxxxxxxxxxx>
Cc: Matthew Wilcox <willy@xxxxxxxxxxxxx>
Cc: Andrea Arcangeli <aarcange@xxxxxxxxxx>
Cc: Hugh Dickins <hughd@xxxxxxxxxx>
Cc: Chris Wright <chrisw@xxxxxxxxxxxx>
Reviewed-by: David Hildenbrand <david@xxxxxxxxxx>
I don't recall giving that yet :)
You could have kept some get_ksm_page()->ksm_get_folio() into a separate
patch.
i.e., "[PATCH v3 11/14] mm/ksm: remove get_ksm_page and related info"
from your old series could have mostly stayed separately.
[...]
/*
@@ -1829,7 +1821,7 @@ static __always_inline struct page *chain(struct ksm_stable_node **s_n_d,
* This function returns the stable tree node of identical content if found,
* NULL otherwise.
*/
-static struct page *stable_tree_search(struct page *page)
+static void *stable_tree_search(struct page *page)
There is one caller of stable_tree_search() in cmp_and_merge_page().
Why the change from page* to void* ?
I suspect cmp_and_merge_page() could similarly be converted to some
degree to let kpage be a folio (separate patch).
--
Cheers,
David / dhildenb