diff options
author | Will Deacon <[email protected]> | 2018-08-23 21:01:46 +0100 |
---|---|---|
committer | Will Deacon <[email protected]> | 2018-09-04 11:08:27 +0100 |
commit | a6d60245d6d9b1caf66b0d94419988c4836980af (patch) | |
tree | 7c09c92c42b987a72d5c1c2410cd0918d2c76c17 /tools/perf/scripts/python/export-to-postgresql.py | |
parent | 22a61c3c4f1379ef8b0ce0d5cb78baf3178950e2 (diff) |
asm-generic/tlb: Track which levels of the page tables have been cleared
It is common for architectures with hugepage support to require only a
single TLB invalidation operation per hugepage during unmap(), rather than
iterating through the mapping at a PAGE_SIZE increment. Currently,
however, the level in the page table where the unmap() operation occurs
is not stored in the mmu_gather structure, therefore forcing
architectures to issue additional TLB invalidation operations or to give
up and over-invalidate by e.g. invalidating the entire TLB.
Ideally, we could add an interval rbtree to the mmu_gather structure,
which would allow us to associate the correct mapping granule with the
various sub-mappings within the range being invalidated. However, this
is costly in terms of book-keeping and memory management, so instead we
approximate by keeping track of the page table levels that are cleared
and provide a means to query the smallest granule required for invalidation.
Acked-by: Peter Zijlstra (Intel) <[email protected]>
Acked-by: Nicholas Piggin <[email protected]>
Signed-off-by: Will Deacon <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions