提交 66294cf3 编写于 作者: C Cheng Jian 提交者: Zheng Zengkai

lib/clear_user: ensure loop in __arch_clear_user cache-aligned v2

hulk inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I4K6CJ
CVE: NA

--------------------------------

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.
Signed-off-by: NCheng Jian <cj.chengjian@huawei.com>
Signed-off-by: NZheng Zengkai <zhengzengkai@huawei.com>
上级 52dce6f9
......@@ -23,6 +23,9 @@ SYM_FUNC_START(__arch_clear_user)
mov x2, x1 // save the size for fixup return
subs x1, x1, #8
b.mi 2f
#ifdef CONFIG_ARCH_HISI
.align 5
#endif
1:
uao_user_alternative 9f, str, sttr, xzr, x0, 8
subs x1, x1, #8
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册