]> git.proxmox.com Git - mirror_edk2.git/commit - ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S
ArmPkg/ArmMmuLib AARCH64: get rid of needless TLB invalidation
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Mon, 7 Jan 2019 07:15:01 +0000 (08:15 +0100)
committerArd Biesheuvel <ard.biesheuvel@linaro.org>
Tue, 29 Jan 2019 10:24:02 +0000 (11:24 +0100)
commitd5788777bcc75936cc0e6acb540a5ee6ac77866b
tree3662febef191bf6e83feb297e1462169e03555c5
parentf34b38fae614c096d9c6afdc02b8448ff38134cd
ArmPkg/ArmMmuLib AARCH64: get rid of needless TLB invalidation

Currently, we always invalidate the TLBs entirely after making
any modification to the page tables. Now that we have introduced
strict memory permissions in quite a number of places, such
modifications occur much more often, and it is better for performance
to flush only those TLB entries that are actually affected by
the changes.

At the same time, relax some system wide data synchronization barriers
to non-shared. When running in UEFI, we don't share virtual address
translations with other masters, unless we are running under virt, but
in that case, the host will upgrade them as appropriate (by setting
an override at EL2)

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
ArmPkg/Include/Library/ArmMmuLib.h
ArmPkg/Library/ArmLib/AArch64/ArmLibSupport.S
ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibCore.c
ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuLibReplaceEntry.S