On Tue, Nov 4, 2014 at 6:29 AM, Catalin Marinas <catalin.mari...@arm.com> wrote: > > This would work on arm64 but is the PAGE_SIZE range enough for all > architectures even when we flush a huge page or a pmd/pud table entry?
It pretty much had *better* be. For things like page tables caches (ie caching addresses "inside" the page tables, like x86 does), for legacy reasons, flushing an individual page had better flush the page table caches behind it. This is definitely how x86 works, for example. And if you have an architected non-legacy page table cache (which I'm not aware of anybody actually doing), you're going to have some architecturally explicit flushing for that, likely *separate* from a regular TLB entry flush, and thus you'd need more than just some range expansion.. And the logic is very similar for things like hugepages. Either a normal "TLB invalidate" insutrction anywhere in the hugepage will invalidate the whole hugepage), or you would have special instructions or rules for invalidating hugepages and you'd need more than just some range expansion. So in neither case does it make sense to expand the range, afaik. And it would hurt normal architectures. So if we ever find an architecture that would want something that odd, I think it is up to that architecture to do its own odd thing, not cause pain for others. Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/