commit | 41e2787f5ec4249cb2e77a3ebd3c49035e3c6535 | [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 | 2c0bdcacf3bb4045d96d567c114606acf1a9b257 [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