arm64: mm: faster linear map creation
JIRA: https://issues.redhat.com/browse/RHEL-32699
The linear map creation silently takes a significant amount of time on arm64
platforms that boots with rodata=full (see RODATA_FULL_DEFAULT_ENABLED, which
is set by default on cs9). This was attended upstream through a refactoring to
avoid superflous tlb invalidations and batch memory barriers.
For the automotive use-case, this is particularly interesting, as the setting
up the linear map takes a prohibitive amount of time on targeted platforms (e,g
on sa8775p-ride, map_mem()
takes ~358ms, compared to only ~35ms with this
series).
This backport draft arbitrarily chooses to limit the amount of changes
backported, therefor introducing conflicts, as this series was introduced
after the following changeset:
- https://lore.kernel.org/all/20240214122845.2033971-79-ardb+git@google.com/
- https://lore.kernel.org/all/20240215103205.2607016-11-ryan.roberts@arm.com
Signed-off-by: Eric Chanudet echanude@redhat.com