社区
驱动程序开发区
帖子详情
linux创建工作队列相关问题
binfeng_123
2017-12-06 01:02:01
当在一个模块中创建一个工作队列INIT_WORK()后,通过查资料得知对工作调度有两种方式:schedule_work()马上调度;schedule_delayed_work()延迟一段时间后调度。我的需求是在 echo XXX > /proc/test 时调度,这种方式怎么写?请给出大致框架和需要用到的函数,谢谢。
...全文
1412
2
打赏
收藏
linux创建工作队列相关问题
当在一个模块中创建一个工作队列INIT_WORK()后,通过查资料得知对工作调度有两种方式:schedule_work()马上调度;schedule_delayed_work()延迟一段时间后调度。我的需求是在 echo XXX > /proc/test 时调度,这种方式怎么写?请给出大致框架和需要用到的函数,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
花开花落_fzu
2018-03-26
打赏
举报
回复
在你的模块中创建proc的entry,在你proc entry的write函数里执行调度。
jklinux
2017-12-10
打赏
举报
回复
不是很明白楼主的需求, schedule_work()/queue_work一般用于中断分成顶底半部的处理使用, 避免中断处理过久影响系统实时性的。但echo XXX > /proc/test 是由用户进程来触发,一个进程不会影响其它进程的,所以就用不着工作队列了
(源码)基于
Linux
内核的
工作
队列
模块.zip
# 基于
Linux
内核的
工作
队列
模块 ## 项目简介 本项目是一个基于
Linux
内核的
工作
队列
(workqueue)模块,展示了如何在
Linux
内核中
创建
和使用
工作
队列
来异步执行
工作
任务。
工作
队列
是
Linux
内核中用于将
工作
(函数)放入
队列
中,由内核线程异步执行的一种机制。该模块通过
工作
队列
执行特定任务,并展示其基本用法和机制。 ## 主要特性和功能 1.
创建
工作
队列
模块初始化时,
创建
一个名为"mywq"的
工作
队列
。 2. 分配
工作
任务在初始化函数中,分配内存给自定义数据结构wsdata,并设置其数据为"hello, world"。 3. 初始化
工作
结构初始化
工作
结构,并将其加入到
工作
队列
中。 4.
工作
处理函数定义了一个
工作
处理函数workhandler,当
工作
被调度执行时,该函数会被调用,并打印传递给它的数据。
linux
的
工作
队列
,
一个 struct work_struct 结构体代表了一个实际的
工作
,
工作
再被添加到
工作
队列
之前要指定
工作
的函数,使用#define INIT_WORK(_work, _func) 宏定义初始化一个
工作
. _work 是
工作
的地址._func 是
工作
的函数.注意: 如果一个
工作
已经在
工作
队列
中还未执行完成则在此放入则不会再次执行. 还有一点, 一个
工作
队列
中可以放入多个
工作
,但是一个
工作
阻塞其他
工作
也是无法执行.
工作
初始化好了,就可以把
工作
添加进
工作
队列
中,
工作
队列
就会自动执行
工作
了.
linux
内核
工作
队列
内核
工作
队列
概述
工作
队列
(workqueue)是另外一种将
工作
推后执行的形式,
工作
队列
可以把
工作
推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行,最重要的就是
工作
队列
允许被重新调度甚至睡眠。
linux
workqueue
工作
原理
linux
系统启动期间会
创建
名为kworker/u:x(x是0开始的整数,表示CPU编号)
工作
者内核线程,该线程
创建
之后处于sleep状态。从调度器
linux
驱动35:
工作
队列
linux
驱动35:
工作
队列
Linux
内核
工作
队列
1
Linux
workqueue
工作
队列
Linux
中的Workqueue机制就是为了简化内核线程的
创建
。通过调用workqueue的接口就能
创建
内核线程。并且可以根据当前系统CPU的个数
创建
线程的数量,使得线程处理的事务能够并行化。workqueue是内核中实现简单而有效的机制,他显然简化了内核daemon的
创建
,方便了用户的编程.它总是在进程上下问进行执行,并且可以执行中断下半部操作,允许重新调度和睡眠,可以解决软中断和tasklet执行时间过长导致的系统实时性下降等
问题
。 2
Linux
workq
驱动程序开发区
1,324
社区成员
2,170
社区内容
发帖
与我相关
我的任务
驱动程序开发区
主要是开发驱动技术
复制链接
扫一扫
分享
社区描述
主要是开发驱动技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章