专栏中心

EEPW首页 > 专栏 > linux-kernel调试技术大全上海索漫培训教材

linux-kernel调试技术大全上海索漫培训教材

发布人:xiajiashan 时间:2012-08-29 来源:工程师 发布文章
作者:下家山(请尊重原创,转载请注明) http://www.xiajiashan.com 八:SCHEDSTATS调度器调试技术 8.1 作用与意义 这个配置选项在《linux设备驱动程序第三版》中并没有介绍,但是linux2.6.10有该项。 如果该选项打开,则在/proc/下会生成schedstat文件,否则不会生成。这一选项对于分析CPU性能,内核调度策略是非常重要的,但对于我们调试驱动或BSP作用似乎不大。八:SCHEDSTATS调度器调试技术 8.1 作用与意义 这个配置选项在《linux设备驱动程序第三版》中并没有介绍,但是linux2.6.10有该项。 如果该选项打开,则在/proc/下会生成schedstat文件,否则不会生成。这一选项对于分析CPU性能,内核调度策略是非常重要的,但对于我们调试驱动或BSP作用似八:SCHEDSTATS调度器调试技术 8.1 作用与意义

这个配置选项在《linux设备驱动程序第三版》中并没有介绍,但是linux2.6.10有该项。

如果该选项打开,则在/proc/下会生成schedstat文件,否则不会生成。

这一选项对于分析CPU性能,内核调度策略是非常重要的,但对于我们调试驱动或BSP作用似乎不大。

1.jpg
 

 

Timestamp表示系统启动到现在所运行的时间;

第三行中,cpu0表示此系统只有一个cpu 并且编号为0,如果有三个CPU,则将会按如下方式列出:

Cpu0 ….Cpu1…..Cpu2…..那么cpu0后面的一串数字表示什么意思呢?第一个四个数字表示sched_yield()状态;接下来的三个数字表示schedule()状态;再接下来的两个数字表示try_to_wake_up()状态;最后的三个数字描述调度的反应时间;

8.2.1 什么是sched_yield()

Sched_yield()是一个内核API,当此函数被调用,cpu执行权从当前正在执行的线程切换到另一个(就绪并等待运行的)活动线程(优先级等于或高于当前线程)。

如果,没有优先级等于或高于当前执行线程的活动并且就绪的线程,那么Sched_yield()将立即返回,当前线程继续运行直到时间片到期。

下面再来解析这四个数字:

1#:表示活动和过期队列为空的次数; 2#:表示活动队列为空的次数;

3#:表示过期队列为空的次数;4#:表示Sched_yield()被调用的次数;

实验中:第一组数字为0 0 0 0;(Sched_yield()一次都没有被调用)。

疑问:Sched_yield()什么情况下被调用???

=======================================================================================

By 下家山 QQ 1209050967 上海松江文汇路928号258室 松江大学城 8/3/2012

上海索漫科技 http://www.xiajiashan.com 专注嵌入式(ARM7,Cortex-M0,Cortex-M3,ARM9,linux)培训

8.2.2什么是schedule()

schedule()也是一个内核API函数,通过这个函数对进程调度。

下面解释第二组数据的具体意思:

5#:至少有一个进程呆在活动队列的次数;

6#:schedule()被调用的次数;

7#:schedule()让CPU空闲的次数;

第二组数据分别为:3,5425,2358

8.2.3什么是try_to_wake_up()

try_to_wake_up()也是一个内核API函数,此函数通过把进程状态设置为TASK_RUNNING,并调用activate_task将此进程插入本地CPU的运行队列,从而唤醒睡眠或停止的进程。

下面解释第三组数据的具体意思:

8#:try_to_wake_up()被调用的次数;

9#:try_to_wake_up()发现进程是觉醒的次数;

第三组数据分别为:0,0

8.2.4什么是“scheduling latency”(调度反应时间)

最后一组数字是对“scheduling latency”(调度反应时间)的描述,Scheduling Latency的意思有点不好理解4.jpg

(摘自:Clark Williams写的《Linux Scheduler Laterncy》)

主要是指调度—到响应的时间,这种调度是指一种刺激信号(如一个中断或一个事件发生),而这里的响应是指内核通过这种刺激信号得到一个机会来调度线程(正在等待唤醒)。

下面解释最后一组数据的具体意思:

10#:被任务消耗在运行上的时间总和(单位ms);

11#:被任务消耗在等待运行上的时间总和(单位ms);

12#: cpu执行到的任务总数;

最后一组数据分别为:848,1970,3067

写于上海松江

作者:下家山(请尊重原创, 转载请注明) http://www.xiajiashan.com,有什么问题可与我联系:ximenpiaoxue4016@sina.com

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

场效应管大全

鼎阳科技发布SDS7000L系列紧凑型数字示波器,助力多通道测试系统

纳芯微电子集成隔离电源的NSIP984x和NSIP954x系列

摆脱充电宝?手机电池容量步入“万级”时代

2025-12-30

恩智浦S32R47系列雷达处理器:可支持L2+至L4级自动驾驶

Qorvo QPA3311和QPA3316:新型混合功率倍增放大器

富士通半导体 MB95260系列“Easy-Kit”演示

视频 2010-08-17

现代汽车为CES 2026制定了AI机器人战略

Mathcad在6西格玛方面的应用

视频 2010-08-17

德州仪器通过单芯片 AWRL6844 60GHz 毫米波雷达传感器,降低车内传感的复杂性和成本

中国开源AI模型崛起,Llama彻底出局

2025-12-30

串—并移位寄存器 74HC164芯片

台积电计划连续四年调升先进制程报价

2025-12-30

2010英特尔杯大学生电子设计竞赛(9)

视频 2010-07-30

带PROFIBUS2PA 总线接口的矿用变频器的设计与实现

2010英特尔杯大学生电子设计竞赛(8)

视频 2010-07-30

巧判三点式振荡电路能否振荡

中芯国际重磅收购迎来新进展

2025-12-30

Mathcad基本功能演示(101 demo)

视频 2010-08-17
更多 培训课堂
更多 焦点
更多 视频

技术专区