Excerpts from Matthew Wilcox's message of April 13, 2020 11:41 pm: > On Mon, Apr 13, 2020 at 10:53:03PM +1000, Nicholas Piggin wrote: >> +static int vmap_pages_range_noflush(unsigned long start, unsigned long end, >> + pgprot_t prot, struct page **pages, >> + unsigned int page_shift) >> +{ >> + if (page_shift == PAGE_SIZE) { > > ... I think you meant 'page_shift == PAGE_SHIFT' Thanks, good catch. I obviously didn't test the fallback path (the other path works for small pages, it just goes one at a time). > Overall I like this series, although it's a bit biased towards CPUs > which have page sizes which match PMD/PUD sizes. It doesn't offer the > possibility of using 64kB page sizes on ARM, for example. No, it's just an incremental step on existing huge vmap stuff in tree, so such a thing would be out of scope. > But it's a > step in the right direction. > I don't know about moving kernel maps away from a generic Linux page table format. I quite like moving to it and making it as generic as possible. On the other hand, I also would like to make some arch-specific allowances for certain special cases that may not fit within the standard page table format, but it might be a much more specific and limited interface than the general vmalloc stuff. Thanks, Nick