workqueue分析
来源:互联网 发布:南京溧水网络问政 编辑:程序博客网 时间:2024/05/21 17:18
__queue_work函数
1、确保调用时禁止中断;
2、选择pwq,如果指定了CPU,则选择wq->cpu_pwqs;否则选择wq->numa_pwq_tbl[node];如果该work_struct上次执行过,则选择上次执行的pwq;
3、当前工作着色区需处理的工作数量pwq->nr_in_flight++;
4、如果pwq待执行的工作数量没有达到pwq->max_active,则把新工作排列到pwq->pool->worklist;否则排列到pwq->delayed_works;
worker_thread函数
1、当被唤醒后,脱离idle状态和队列;
2、如果POOL中已经有足够的worker在处理工作,则再次进入idle睡眠状态;
3、如果没有多余的idle备用,则调用manage_workers创建更多的worker;
4、依次处理pwq->pool->worklist和worker->scheduled上等待的工作,直到工作处理完成或者POOL中允许的worker多余1个;
5、如果需要再次管理worker,则调用manage_workers(worker);
6、该worker再次进入IDLE状态,等待再次被唤醒;
pwq->delayed_works上面的工作被提交到pwq->pool->worklist出现在两个地方:pwq_adjust_max_active和pwq_dec_nr_in_flight
atomic_dec_and_test函数:先返回数据,再自减
flush_workqueue_prep_pwqs函数:指定wq下面的每个pwq的work_color和flush_color
- workqueue分析
- workqueue原理和分析
- workqueue-分析一
- workqueue原理和分析
- workqueue原理和源码分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- Linux中Workqueue机制分析
- workqueue原理和源码分析
- Linux中Workqueue机制分析
- 单例模式在Unity中的应用
- 排序之希尔排序
- SSH Maven 整合笔记
- ISO的国家代码和语言代码
- 1036. Boys vs Girls (25)
- workqueue分析
- Android学习小Demo(6)图片折叠效果的实现
- 关于main还是的参数应用
- ASP.NET MVC概述
- Java学习笔记 实现阿拉伯数字(一亿以内)转换为中文繁体数字
- require.js
- Codeforces 387E George and Cards(二分+树状数组)
- TXT阅读神器 分分钟打造一本电子书
- 【备战蓝桥杯】USACO-->dualpul