We must ensure that the following four instructions are cache-aligned.
Otherwise, it will cause problems with the performance of libMicro
pread.
1:
# uao_user_alternative 9f, str, sttr, xzr, x0, 8
str xzr, [x0], #8
nop
subs x1, x1, #8
b.pl 1b
with this patch:
prc thr usecs/call samples errors cnt/samp size
pread_z100 1 1 5.88400 807 0 1 102400
The result of pread can range from 5 to 9 depending on the
alignment performance of this function.
Cheng Jian (1):
lib/clear_user: ensure loop in __arch_clear_user cache-aligned v2
Yang Yingliang (1):
config: enable CONFIG_CLEAR_USER_WORKAROUND by default
arch/arm64/Kconfig | 7 +++++++
arch/arm64/configs/openeuler_defconfig | 1 +
arch/arm64/lib/clear_user.S | 3 +++
3 files changed, 11 insertions(+)
--
2.25.1