On 22.07.22 15:51, Peter Xu wrote: > On Fri, Jul 22, 2022 at 09:08:59AM +0200, David Hildenbrand wrote: >> On 21.07.22 20:33, Peter Xu wrote: >>> The check wanted to make sure when soft-dirty tracking is enabled we won't >>> grant write bit by accident, as a page fault is needed for dirty tracking. >>> The intention is correct but we didn't check it right because VM_SOFTDIRTY >>> set actually means soft-dirty tracking disabled. Fix it. >>> >>> There's another thing tricky about soft-dirty is that, we can't check the >>> vma flag !(vma_flags & VM_SOFTDIRTY) directly but only check it after we >>> checked CONFIG_MEM_SOFT_DIRTY because otherwise VM_SOFTDIRTY will be >>> defined as zero, and !(vma_flags & VM_SOFTDIRTY) will constantly return >>> true. To avoid misuse, introduce a helper for checking whether vma has >>> soft-dirty tracking enabled. >>> >> >> >> [...] >> >>> >>> Here we attach a Fixes to commit 64fe24a3e05e only for easy tracking, as >>> this patch won't apply to a tree before that point. However the commit >>> wasn't the source of problem, it's just that then anonymous memory will >>> also suffer from this problem with mprotect(). >> >> I'd remove that paragraph and also add >> >> Fixes: 64e455079e1b ("mm: softdirty: enable write notifications on VMAs after VM_SOFTDIRTY cleared") >> >> That introduced this wrong check for pagecache pages AFAIKS. >> >> We don't care if the patch applies before 64fe24a3e05e, if someone wants to >> backport the fix, they can just adjust it accordingly. > > IMO besides marking the culprit commit, Fixes can also provide input to > stable trees to see whether we should try pick some patch up. What I > wanted to express here is we don't need to try pick this patch up before > kernel that doesn't have 64fe24a3e05e because it won't apply. > > I can attach both Fixes with the hope that it'll help in both cases if > you're fine with it, with slight explanations. Makes sense. Thanks! -- Thanks, David / dhildenb