Re: [PATCH] x86/mm/vmfault: Make vmalloc_fault() handle large pages

From: Ingo Molnar
Date: Tue Feb 09 2016 - 04:10:25 EST



* Toshi Kani <toshi.kani@xxxxxxx> wrote:

> Since 4.1, ioremap() supports large page (pud/pmd) mappings in x86_64 and PAE.
> vmalloc_fault() however assumes that the vmalloc range is limited to pte
> mappings.
>
> pgd_ctor() sets the kernel's pgd entries to user's during fork(), which makes
> user processes share the same page tables for the kernel ranges. When a call to
> ioremap() is made at run-time that leads to allocate a new 2nd level table (pud
> in 64-bit and pmd in PAE), user process needs to re-sync with the updated kernel
> pgd entry with vmalloc_fault().
>
> Following changes are made to vmalloc_fault().

So what were the effects of this shortcoming? Were large page ioremap()s unusable?
Was this harmless because no driver used this facility?

If so then the changelog needs to spell this out clearly ...

Thanks,

Ingo