首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在softirq和流程上下文之间共享数据

在softirq和流程上下文之间共享数据
EN

Stack Overflow用户
提问于 2013-07-12 03:05:17
回答 1查看 777关注 0票数 5

我正在开发一个内核模块,它在softirq (netfilter预路由钩子)和用户上下文(在ioctl调用中)之间共享数据结构。

阅读此link后,我知道在修改数据(使用spin_lock_bhspin_lock_irqsave)时需要禁用用户上下文中的软件中断,并在共享数据上的操作完成后重新启用它们。

但是,我不确定是否需要获取softirq处理函数中的锁。我需要在这里也抓取锁吗(使用spin_lock)?

我的理解是,如果与另一个softirq或hardirq共享数据,我只需要在softirq处理程序中使用自旋锁。我的理解正确吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-12 03:28:30

如果您与任何代码共享数据,则必须获得锁,该锁可以在同一时间执行。内核可能会同时执行您的softirq和您的ioctl处理程序,因此您必须通过获得一个锁。

使用spin_lock_bhspin_lock_irqsave禁用中断时,仅在当前处理器上禁用中断。所以,处理另一个的中断是可以的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17601390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档