commit | feb0ec23fc9fa522c0dcaa27f8a19b77ea3abbab | [log] [tgz] |
---|---|---|
author | Marc Zyngier <maz@kernel.org> | Tue Feb 14 21:38:13 2023 +0800 |
committer | Tom Rini <trini@konsulko.com> | Mon Mar 06 17:03:56 2023 -0500 |
tree | 8d32fdd814157d6c9466106d60a0abdbae94bb9a | |
parent | 4803f1d4d9ed8da72f200d8d27c861b7b102cbdc [diff] |
arm64: Reduce add_map() complexity In the add_map() function, for each level it populates, it iterates from the root of the PT tree, making it ineficient if a mapping needs to occur past level 1. Instead, replace it with a recursive (and much simpler) algorithm that keeps the complexity as low as possible. With this, mapping 512GB at level 2 goes from several seconds down to not measurable on an A55 machine. We keep the block mappings at level 1 for now though. Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Pierre-Clément Tosi <ptosi@google.com> [ Paul: pick from the Android tree. Fixup Pierre's commit. Rebase to the upstream ] Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org> Cc: Tom Rini <trini@konsulko.com> Link: https://android.googlesource.com/platform/external/u-boot/+/96ad729cf4cab53bdff8222bb3eb256f38b5c3a6 Link: https://android.googlesource.com/platform/external/u-boot/+/6be9330601d81545c7c941e3609f35bf68a09059