首页 > 系统相关 >linux 内核 工作队列

linux 内核 工作队列

时间:2023-05-01 16:12:50浏览次数:33  
标签:testwork struct 队列 创建 work 内核 linux

简介

工作队列是将操作延期执行的另一种手段。因为它们是通过守护进程在用户上下文执行,函数可以睡眠任意长的时间。

对每个工作队列来说,内核都会创建一个新的内核守护线程。新的工作队列通过调用 create_workqueue 或 create_workqueue_singlethread 函数来创建。前一个函数在所有CPU上都创建一个工作线程,而后者只在系统的第一个 CPU 上创建一个线程。所有推送到工作队列上的任务,都必须打包为 work_struct 结构的实例。

 

一般情况下,不需要再创建新的工作队列,内核已经创建好名为 system_wq 的工作队列。只需要创建一个 work_struct 结构的实例。

使用模板

/* 定义工作(work) */
struct work_struct testwork;
/* work 处理函数 */
void testwork_func_t(struct work_struct *work);
{
/* work 具体处理内容 */
}
/* 中断处理函数 */
irqreturn_t test_handler(int irq, void *dev_id)
{
......
/* 调度 work */
schedule_work(&testwork);
......
}
/* 驱动入口函数 */
static int __init xxxx_init(void)
{
......
/* 初始化 work */
INIT_WORK(&testwork, testwork_func_t);
/* 注册中断处理函数 */
request_irq(xxx_irq, test_handler, 0, "xxx", &xxx_dev);
......
}
module_init(xxxx_init);

 

标签:testwork,struct,队列,创建,work,内核,linux
From: https://www.cnblogs.com/god-of-death/p/17366622.html

相关文章

  • linux 常用命令
    ssh登录:[email protected]上传文件:scp-P11022/d/tmp/[email protected]:/home/program如是windowsscp-P11022 d:/tmp/[email protected]:/home/program下载文件:scp-P11022 [email protected]:/home/program /d/tmp/sim.data如是win......
  • linux cpufreq framework(5)_ARM big Little driver
    1.前言也许大家会觉得奇怪:为什么Linuxkernel把对ARMbig·Lttile的支持放到了cpufreq的框架中?众所周知,ARM的big·Little架构,也称作HMP(具体可参考“LinuxCPUcore的电源管理(2)_cputopology”中相关的介绍),通过在一个chip中封装两种不同类型的ARMcore的方式,达到性能和功耗的......
  • rabbitmq 延迟队列_Delayed Message 插件实现 RabbitMQ 延迟队列
    延迟队列是为了存放那些延迟执行的消息,待消息过期之后消费端从队列里拿出来执行。作者简介:五月君,NodejsDeveloper,慕课网认证作者,热爱技术、喜欢分享的90后青年,欢迎关注Nodejs技术栈(id:NodejsRoadmap)和Github开源项目 https://www.nodejs.redDLX+TTL方式存在的时序问......
  • 关于Linux系统-sshd服务-AllowUsers与AllowGroups-选项的安全加固配置
    在一些Linux系统-sshd服务,的主配置文件,/etc/ssh/sshd_config 我们可能会看到配置有AllowUsers与AllowGroups的安全加固选项,关于两个选项的说明如下:从选项名称上就可以知道这两个是选项,是属于白名单选项的,在安全中,如果能使用白名单模式,肯定是更安全的这里我们先说一下 AllowU......
  • 关于Linux系统-sshd服务-PasswordAuthentication-选项的加固配置
    关于sshd服务的主配置文件,/etc/ssh/sshd_config 有一个选项叫做PasswordAuthentication,根据单词意思、就知道此选项是与密码相关的即可以知道此值默认为yes,即使不写或者注释,代表是允许用户通过密码进行ssh登录有时我们可以在加固的操作系统中看到,此值会被配置为noPasswordAu......
  • 电脑上的linux是什么文件夹,Windows中现在有独立的Linux文件夹系统
    三月中旬,微软曾通过博客宣布,WSL2将在Windows102004版本中正式进入普遍可用(GA,GenerallyAvailable)状态。与此同时,微软表示对WSL2所依赖的 Linux 内核的提供方式也会进行一些改进。随着Windows10InsiderBuilt19603版本(即Windows102004预览版)的到来,微软又为......
  • linux下安装redis
    1.安装gccyuminstall-ygcc-c++2.下载安装包https://download.redis.io/releases/redis-6.2.0.tar.gz3.解压tar-zxvfredis-6.2.0.tar.gz4.编译安装cdredis-6.2.0make##/home/redis为安装目录##makeinstallPREFIX=/home/redis5.拷贝配置文件并授权mkdir-......
  • Linux各监控指标及问题排查
    htop/tophtop足以覆盖大多数指标,详细直接查看帮助即可。sort:bymem/cpu/state.根据进程状态排序也至关重要,特别在loadaverage过高的时候。根据内存以及CPU使用率排序用以定位高资源占用者。filterfieldsprocess/count...CPU基本信息在linux中一切皆文件,查看/proc/cpuin......
  • Linux系统之部署Chrony时间服务器
    (Linux系统之部署Chrony时间服务器)一、Chrony介绍1.Chrony简介Chrony是一个开源自由的网络时间协议NTP的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP)同步,因此让你的计算机保持精确的时间,Chrony也可以作为服务端软件为其他计算机提供时间同步服务。2.......
  • 关于Linux操作系统-OS等保要求配置-禁止root用户直接ssh登录
    在等保中,都会去要求查看sshd配置,看是否有禁止root用户直接ssh登录,此项一般也会作为一个强制要求安全配置项笔者这里的操作系统如下,对于Redhat7.x应该也是一样的,可以自行测试[qq-5201351@Localhost~]$cat/etc/redhat-releaseRedHatEnterpriseLinuxrelease8.1(Ootpa)......