linux - ioctl 驱动程序函数是从 linux 2.6 下的原子上下文执行的吗?

标签 linux linux-kernel driver linux-device-driver embedded-linux

我正在追踪我们的一个驱动程序中的“原子调度”错误,并且想知道 ioctl 是否是原子上下文。此外,如果有人可以分享有关如何进入和退出原子上下文以及它们出现的常见位置的任何内容,那将很有帮助。

最佳答案

不,ioctl 通常在进程上下文中运行。如果驱动程序在 ioctl 处理过程中获取自旋锁,则驱动程序将进入原子上下文,并将保持在原子上下文中,直到它释放自旋锁。

参见:http://lwn.net/Articles/274695/对 Linux 中的原子上下文进行很好的讨论

关于linux - ioctl 驱动程序函数是从 linux 2.6 下的原子上下文执行的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3629128/

相关文章:

c - 通过/proc/$PID/smaps 在 Linux 内核中进行脏页统计

c - 在diskperf中获取分区详细信息

driver - 多板Windows设备管理器提示资源冲突,错误代码为12

linux - 什么是非监听套接字?

ruby - 如何为 Linux 构建自定义文件系统?

php - 打开与 mysql 数据库的多个连接的脚本

gcc - 无法从内核模式更改 CS 寄存器值。无效的操作码 : 0000

c - execvp : bad address error

android - Android Lollipop 中的 insmod 强制执行 SE Linux

c - 如何读取 PCI 卡中的 VPD 寄存器