Re: [PATCH v3 2/7] mm/vmalloc: Track which page-table levels were modified

From: Andrew Morton
Date: Mon May 18 2020 - 18:18:32 EST


On Sat, 16 May 2020 14:56:41 +0200 Joerg Roedel <jroedel@xxxxxxx> wrote:

> Hi Andrew,
>
> On Fri, May 15, 2020 at 01:01:42PM -0700, Andrew Morton wrote:
> > On Fri, 15 May 2020 16:00:18 +0200 Joerg Roedel <joro@xxxxxxxxxx> wrote:
> > Lots of collisions here with Christoph's "decruft the vmalloc API" series
> > (http://lkml.kernel.org/r/20200414131348.444715-1-hch@xxxxxx).
> >
> > I attempted to fix things up.
> >
> > unmap_kernel_range_noflush() needed to be redone.
> >
> > map_kernel_range_noflush() might need the arch_sync_kernel_mappings() call?
>
> Yes, map_kernel_range_noflush() needs the arch_sync_kernel_mappings()
> call as well.
>

This?

--- a/mm/vmalloc.c~mm-vmalloc-track-which-page-table-levels-were-modified-fix
+++ a/mm/vmalloc.c
@@ -309,6 +309,9 @@ int map_kernel_range_noflush(unsigned lo
return err;
} while (pgd++, addr = next, addr != end);

+ if (mask & ARCH_PAGE_TABLE_SYNC_MASK)
+ arch_sync_kernel_mappings(start, end);
+
return 0;
}


It would be nice to get all this (ie, linux-next) retested before we
send it upstream, please.