linux内核 – 如何使用Linux工作队列
发布时间:2020-12-13 19:49:38 所属栏目:Linux 来源:网络整理
导读:Linux工作队列是指具有进程上下文的内核级线程.我试图用它作为kthread的替代品,它没有特定的进程上下文.但是如何将数据传递到工作队列? work_struct具有类型为atomic_long_t的数据字段.我无法传递指向此字段的指针.我该怎么做? 另外我找不到工作队列的一个
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |