linux内核 – 在网络处理中使用自旋变体
|
我写了一个与网络过滤器钩子交互的内核模块.
我正在访问全局数据结构 我正在使用spinlock_irq_save. 这个spin_lock api的选择是否正确?在性能和锁定标准方面. 如果在另一个处理器上安排中断,会发生什么?而当前的处理器锁已经被一个进程上下文代码保存了? 解决方法首先:
是的,这是正确的.您的softirq处理程序可能会同时在多个CPU上执行. 你使用螺旋锁的结论听起来对我来说是正确的.但是,这假设关键部分(即,使用旋转锁持有执行的部分)具有以下属性: >它不能睡觉(例如,获取一个阻塞互斥体) 一般来说,如果你只是更新哈希表,你应该在这里很好. 如果一个IRQ处理程序尝试获取一个由进程上下文保存的自旋锁,那没关系.只要你的进程上下文没有保持锁定,锁应该在短时间内释放,允许IRQ处理程序取得进展. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- linux – 在64位机器上运行32位二进制文件
- MySQL 5.6 my.cnf配置优化
- linux – 可以在套接字上取消收听吗?
- linux – firewalld vs iptables – 何时使用哪个
- linux – 运行autogen.sh时出现问题
- 在同一个Linux目录中有几百个或几千个文件可以(性能方面)吗
- linux – 系统调用如select()或poll()在引擎盖下工作?
- linux – PYCURL ERROR 6 – “无法解析主机’mirrorlist.c
- linux – 与Amazon EC2实例最相似的Vagrant框
- linux – 应该在源文件夹和目标文件夹之后拖放斜杠
