linux内核 – 如何使用Linux工作队列

Linux工作队列是指具有进程上下文的内核级线程.我试图用它作为kthread的替代品,它没有特定的进程上下文.但是如何将数据传递到工作队列? work_struct具有类型为atomic_long_t的数据字段.我无法传递指向此字段的指针.我该怎么做?

另外我找不到工作队列的一个具体例子.你可以建议一个吗?

解决方法

如果要将数据传递到工作队列函数,只需将work_struct结构嵌入到自己的数据结构中,并在工作函数中使用container_of来检索它.

对于一个简单的例子,内核是完整的 – 只需git grep work_struct.你可以看一下driver / cpufreq / cpufreq.c(handle_update函数)一个简单的例子.下面的文章最后还嵌入了一个例子,但是它不使用container_of,而是依赖于一个结构的第一个成员与其父代的地址相同的事实:

http://www.ibm.com/developerworks/linux/library/l-tasklets/index.html

相关文章

insmod和modprobe加-f参数导致Invalid module format错误 这...
将ArchLinux安装到U盘 几个月前入门Arch的时候上网搜了不少安...
1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...