On Thu, 21 Mar 2019 09:36:10 +0530 "Aneesh Kumar K.V" <aneesh.kumar@xxxxxxxxxxxxx> wrote: > MADV_DONTNEED is handled with mmap_sem taken in read mode. > We call page_mkclean without holding mmap_sem. > > MADV_DONTNEED implies that pages in the region are unmapped and subsequent > access to the pages in that range is handled as a new page fault. > This implies that if we don't have parallel access to the region when > MADV_DONTNEED is run we expect those range to be unallocated. > > w.r.t page_mkclean we need to make sure that we don't break the MADV_DONTNEED > semantics. MADV_DONTNEED check for pmd_none without holding pmd_lock. > This implies we skip the pmd if we temporarily mark pmd none. Avoid doing > that while marking the page clean. > > Keep the sequence same for dax too even though we don't support MADV_DONTNEED > for dax mapping What were the runtime effects of the bug? Did you consider a -stable backport?