Re: [PATCH 1/6] mm: ksm: use more folio api in ksm_might_need_to_copy()

From: Matthew Wilcox
Date: Tue Nov 07 2023 - 09:24:32 EST


On Tue, Nov 07, 2023 at 09:52:11PM +0800, Kefeng Wang wrote:
> struct page *ksm_might_need_to_copy(struct page *page,
> - struct vm_area_struct *vma, unsigned long address)
> + struct vm_area_struct *vma, unsigned long addr)
> {
> struct folio *folio = page_folio(page);
> struct anon_vma *anon_vma = folio_anon_vma(folio);
> - struct page *new_page;
> + struct folio *new_folio;
>
> - if (PageKsm(page)) {
> - if (page_stable_node(page) &&
> + if (folio_test_ksm(folio)) {
> + if (folio_stable_node(folio) &&
> !(ksm_run & KSM_RUN_UNMERGE))
> return page; /* no need to copy it */
> } else if (!anon_vma) {
> return page; /* no need to copy it */
> - } else if (page->index == linear_page_index(vma, address) &&
> + } else if (page->index == linear_page_index(vma, addr) &&

Hmm. page->index is going away. What should we do here instead?

The rest of this looks good.