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

前端之家收集整理的这篇文章主要介绍了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

猜你在找的Linux相关文章