您的位置 首页 方案

arm架构的linux内核中,clrex指令的效果是什么

1.clrex指令的作用:《armarchitecturereferencemanual》B2-1292以下简称armarm手册TheClearExclusiveLocal()proceduretak

1. clrex指令的效果:

arm architecture reference manual》B2-1292以下简称arm arm手册

The ClearExclusiveLocal() procedure takes as arguments the processor identifier processorid . The procedure clearsthe local record of processor processorid for which an address has had a request for an exclusive access. It isIMPLEMENTATION DEFINED whether this operation also clears the global record of processor processorid that anaddress has had a request for an exclusive access
该指令的效果就是在独占拜访完毕时,铲除cpu中本地处理器针对某块内存区域的独占拜访标志(核中的某个状况寄存器),以防在未铲除时的其他操作,对体系产生影响。关于是否一起铲除大局的独占拜访标志,需要在规划cpu时的架构师决议。

2. clrex指令的效果很共同,在linux内核中用在什么当地呢?

用在如下当地:
(1)数据间断反常、指令预取间断反常的处理时调用

(调用linaro-aarch64/arch/arm/mm/abort-ev7.s v7_early_abort==》clrex)
(2)从svc形式下的irq反常、未定义指令反常、数据间断反常、指令预取间断反常,处理完毕回来时调用

(调用宏:linaro-aarch64/arch/arm/kernel/entry-header.s svc_exit)
(3) 回来到用户层的快速体系调用/慢速体系调用(ret_slow_syscall,ret_fast_syscall==》

调用宏:linaro-aarch64/arch/arm/kernel/entry-header.s restore_user_regs==》clrex)
(4) run_all_tests 函数调用(==》kprobe_arm_test_cases==》TEST_UNSUPPORTED(“clrex”) ==》clrex)

该函数是一个驱动模块,能够动态加载。

如上所示:根本一切的反常都要用到该指令,体系调用的回来也能用到。

尽管反常和体系调用的代码在内核中不多,可是当内核运转起来时,反常和体系调用的履行频率特别高!

所以该指令仍是十分有用的。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/275656.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部