【解答】arm架构的linux内核中,clrex指令的作用是什么,内核中什么时候才会用到?
来源:互联网 发布:windows制作mac安装u盘 编辑:程序博客网 时间:2024/05/17 09:27
先看clrex指令的作用:《arm architecture reference manual》B2-1292以下简称arm arm手册
The ClearExclusiveLocal() procedure takes as arguments the processor identifier processorid . The procedure clears the local record of processor processorid for which an address has had a request for an exclusive access. It is IMPLEMENTATION DEFINED whether this operation also clears the global record of processor processorid that an address has had a request for an exclusive access
该指令的作用就是在独占访问结束时,清除cpu中本地处理器针对某块内存区域的独占访问标志(核中的某个状态寄存器),以防在未清除时的其他操作,对系统产生影响。对于是否同时清除全局的独占访问标志,需要在设计cpu时的架构师决定。
这指令的作用很独特,在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),该函数是一个驱动模块,可以动态加载。
如上所示:基本所有的异常都要用到该指令,系统调用的返回也能用到。虽然异常和系统调用的代码在内核中不多,但是当内核运行起来时,异常和系统调用的执行频率特别高!所以该指令还是非常有用的。
- 【解答】arm架构的linux内核中,clrex指令的作用是什么,内核中什么时候才会用到?
- LINUX内核中CONFIG_MODVERSIONS的作用
- linux内核中Kconfig文档的作用
- linux内核中Kconfig文档的作用
- linux内核中Kconfig文档的作用
- linux内核中Kconfig文档的作用
- linux内核中Kconfig文档的作用
- Linux内核中Kconfig文件的作用
- linux内核中Kconfig文档的作用
- ARM内核和架构都是什么意思,内核和架构的关系是什么?
- 【解答】arm架构的linux内核,软件线程切换的时候,TLB作废吗,cache作废吗?
- linux中 "|" 的作用是什么
- 平时工作中一定会用到的Linux指令(每周会持续更新~)
- linux内核中CONFIG_FHANDLE=y的作用
- ARM内核中寄存器的浅见
- ARM内核中寄存器的浅见
- Linux 内核3.10的到来与ARM big.Little架构
- 内核模块中__init,__exit的作用
- UITableView下拉刷新
- SQL查询重复记录
- QT源码解析(七)Qt创建窗体的过程
- QT中如何将图片作为按键背景色以及中文显示
- NSDate
- 【解答】arm架构的linux内核中,clrex指令的作用是什么,内核中什么时候才会用到?
- 2013年1月24日VC++学习笔记
- Guarded Suspension Pattern
- fortran 数组定义语句
- 编程方法学——观后笔记【4】
- [Android实例] preferenceActivity的用法
- LigerUi是否显示滚动条和下一页的切换方式 !(还跟导出excel有关)
- js鼠标点击事件
- android Adapter综合介绍