Re: [RFCv2 4/6] mm: factor out madvise's core functionality
From: Minchan Kim <minchan@kernel.org>
Date: 2019-06-10 10:12:58
Also in:
linux-mm, lkml
Hi Oleksandr, On Wed, Jun 05, 2019 at 03:27:28PM +0200, Oleksandr Natalenko wrote: < snip >
quoted
quoted
quoted
quoted
quoted
write = madvise_need_mmap_write(behavior); if (write) { - if (down_write_killable(¤t->mm->mmap_sem)) + if (down_write_killable(&mm->mmap_sem)) return -EINTR;Do you still need that trick with mmget_still_valid() here? Something like:Since MADV_COLD|PAGEOUT doesn't change address space layout or vma->vm_flags, technically, we don't need it if I understand correctly. Right?I'd expect so, yes. But. Since we want this interface to be universal and to be able to cover various needs, and since my initial intention with working in this direction involved KSM, I'd ask you to enable KSM hints too, and once (and if) that happens, the work there is done under write lock, and you'll need this trick to be applied. Of course, I can do that myself later in a subsequent patch series once (and, again, if) your series is merged, but, maybe, we can cover this already especially given the fact that KSM hinting is a relatively easy task in this pile. I did some preliminary tests with it, and so far no dragons have started to roar.Then, do you mind sending a patch based upon this series to expose MADV_MERGEABLE to process_madvise? It will have the right description why you want to have such feature which I couldn't provide since I don't have enough material to write the motivation. And the patch also could include the logic to prevent coredump race, which is more proper since finally we need to hold mmap_sem write-side lock, finally. I will pick it up and will rebase since then.Sure, I can. Would you really like to have it being based on this exact revision, or I should wait till you deal with MADV_COLD & Co and re-iterate this part again?
I'm okay you to send your patch against this revision. I'm happy to include it when I start a new thread for process_madvise discussion after resolving MADV_COLD|PAGEOUT. Thanks.