Re: [PATCH v2 07/19] mm/fork: Accept huge pfnmap entries

From: Andrew Morton
Date: Mon Sep 09 2024 - 18:25:55 EST


On Tue, 3 Sep 2024 17:23:38 -0400 Peter Xu <peterx@xxxxxxxxxx> wrote:

> > > @@ -1686,8 +1706,11 @@ int copy_huge_pud(struct mm_struct *dst_mm, struct mm_struct *src_mm,
> > > * TODO: once we support anonymous pages, use
> > > * folio_try_dup_anon_rmap_*() and split if duplicating fails.
> > > */
> > > - pudp_set_wrprotect(src_mm, addr, src_pud);
> > > - pud = pud_mkold(pud_wrprotect(pud));
> > > + if (is_cow_mapping(vma->vm_flags) && pud_write(pud)) {
> > > + pudp_set_wrprotect(src_mm, addr, src_pud);
> > > + pud = pud_wrprotect(pud);
> > > + }
> > Do we need the logic to clear dirty bit in the child as that in
> > __copy_present_ptes()? (and also for the pmd's case).
> >
> > e.g.
> > if (vma->vm_flags & VM_SHARED)
> > pud = pud_mkclean(pud);
>
> Yeah, good question. I remember I thought about that when initially
> working on these lines, but I forgot the details, or maybe I simply tried
> to stick with the current code base, as the dirty bit used to be kept even
> in the child here.
>
> I'd expect there's only performance differences, but still sounds like I'd
> better leave that to whoever knows the best on the implications, then draft
> it as a separate patch but only when needed.

Sorry, but this vaguensss simply leaves me with nowhere to go.

I'll drop the series - let's revisit after -rc1 please.