Re: [v2,2/5] userfaultfd: non-cooperative: add event for memory unmaps

From: Andrew Morton
Date: Mon Feb 06 2017 - 18:52:56 EST


On Sun, 5 Feb 2017 10:46:29 -0800 Guenter Roeck <linux@xxxxxxxxxxxx> wrote:

> On Fri, Jan 27, 2017 at 08:44:30PM +0200, Mike Rapoport wrote:
> > When a non-cooperative userfaultfd monitor copies pages in the background,
> > it may encounter regions that were already unmapped. Addition of
> > UFFD_EVENT_UNMAP allows the uffd monitor to track precisely changes in the
> > virtual memory layout.
> >
> > Since there might be different uffd contexts for the affected VMAs, we
> > first should create a temporary representation for the unmap event for each
> > uffd context and then notify them one by one to the appropriate userfault
> > file descriptors.
> >
> > The event notification occurs after the mmap_sem has been released.
> >
> > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxxxxxxx>
> > Acked-by: Hillf Danton <hillf.zj@xxxxxxxxxxxxxxx>
>
> Just in case 0day didn't report it yet, this patch causes build errors
> with various architectures.
>
> mm/nommu.c:1201:15: error: conflicting types for 'do_mmap'
> unsigned long do_mmap(struct file *file,
> ^
> In file included from mm/nommu.c:19:0:
> include/linux/mm.h:2095:22: note:
> previous declaration of 'do_mmap' was here
>
> mm/nommu.c:1580:5: error: conflicting types for 'do_munmap'
> int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
> ^
> In file included from mm/nommu.c:19:0:
> include/linux/mm.h:2099:12: note:
> previous declaration of 'do_munmap' was here

This was fixed in
http://ozlabs.org/~akpm/mmots/broken-out/userfaultfd-non-cooperative-add-event-for-memory-unmaps-fix.patch?