iommu: msm: flush page tables at the end after map/unmap
Flushing the cache for each PTE update could be very time
consuming if the number of PTEs getting updated are in
order of few thousands. Instead, don't perform cache ops
for each PTE update and flush the updated page table once
at the end of map/unmap routine. This saves roughly 60%
of the total time spent by map/unmap calls. Few numbers
with/without this optimization applied.
Numebrs are taken at Cortex-A53 single core clocked at
1.2 GHz.
AARCH64 (without optimization)
size iommu_map_range iommu_unmap
64K 14 us 9 us
2M 176 us 16 us
12M 1016 us 54 us
20M 1809 us 100 us
AARCH64 (with optimization)
size iommu_map_range iommu_unmap
64K 18 us 12 us
2M 77 us 18 us
12M 396 us 47 us
20M 648 us 73 us
Change-Id: I5c5f9e5cec5a7aed5b478be52d943fcaa1c0ed84
Signed-off-by:
Chintan Pandya <cpandya@codeaurora.org>
Loading
Please register or sign in to comment