On Tue, Jun 12, 2018 at 4:09 PM Nicholas Piggin <npiggin@xxxxxxxxx> wrote: > > Sorry I mean Intel needs the existing behaviour of range flush expanded > to cover page table pages.... right? Right. Intel depends on the current thing, ie if a page table *itself* is freed, we will will need to do a flush, but it's the exact same flush as if there had been a regular page there. That's already handled by (for example) pud_free_tlb() doing the __tlb_adjust_range(). Again, I may be missing entirely what you're talking about, because it feels like we're talking across each other. My argument is that your new patches in (2-3 in the series - patch #1 looks ok) seem to be fundamentally specific to things that have a *different* tlb invalidation for the directory entries than for the leaf entries. But that's not what at least x86 has, and not what the generic code has done. I think it might be fine to introduce a few new helpers that end up being no-ops for the traditional cases. I just don't think it makes sense to maintain a set of range values that then aren't actually used in the general case. Linus