鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

LSE编译指令

在多核、原子锁争抢严重的情况下,在GCC编译选项中添加LSE(Large System Extensions)相关选项,可以减缓锁竞争。

LL/SC(Load-link/Store-condition)原子指令需要把共享变量先load到本核所在的L1 Cache中进行修改,在锁竞争少的情况下性能较好,但在锁竞争激烈时会导致系统性能下降严重。Armv8.1规范中引入了新的原子操作指令扩展LSE,将计算操作放到L3 Cache去做,增大数据共享范围,减少Cache一致性耗时,在锁竞争激烈时可以提升锁的性能。

LL/SC指令(ldaxr&stlxr):

LSE指令(ldaddal):

MySQL源码文件中,CMakeLists.txt文件中使用“-march=armv8-a+lse”编译选项,使用原子操作指令扩展LSE特性,以达到性能优化的目的。