CONFIG_NO_HZ (aka dynamic tick functionality)
来源:互联网 发布:韩智慧知乎 编辑:程序博客网 时间:2024/06/11 10:17
CONFIG_NO_HZ ,也就是tickless mode, 这个定义启用了周期时钟的一个新特性,就是动态时钟.主要的改进就是让系统在idle 时可以停止tick,降低系统功耗. 在CPU有workload 时恢复正常的tick,产生周期性的Tick事件.
/* * Enable / Disable tickless mode */static int __init setup_tick_nohz(char *str){ if (!strcmp(str, "off")) tick_nohz_enabled = 0; else if (!strcmp(str, "on")) tick_nohz_enabled = 1; else return 0; return 1;}__setup("nohz=", setup_tick_nohz);
通过下面的函数停止Tick
void tick_nohz_stop_sched_tick(int inidle)/** * tick_nohz_stop_sched_tick - stop the idle tick from the idle task * * When the next event is more than a tick into the future, stop the idle tick * Called either from the idle loop or from irq_exit() when an idle period was * just interrupted by an interrupt which did not cause a reschedule. */
Linux中的时钟事件都是由一个周期时钟提供,不管系统中的clock_event_device是工作于周期触发模式,还是工作于单触发模式,也不管定时器系统是工作于低分辨率模式,还是高精度模式,内核都竭尽所能,用不同的方式提供周期时钟,以产生定期的tick事件,tick事件或者用于全局的时间管理(jiffies和时间的更新),或者用于本地cpu的进程统计、时间轮定时器框架等等。周期性时钟虽然简单有效,但是也带来了一些缺点,尤其在系统的功耗上,因为就算系统目前无事可做,也必须定期地发出时钟事件,激活系统。为此,内核的开发者提出了动态时钟这一概念,我们可以通过内核的配置项CONFIG_NO_HZ来激活特性。有时候这一特性也被叫做tickless,不过还是把它称呼为动态时钟比较合适,因为并不是真的没有tick事件了,只是在系统无事所做的idle阶段,我们可以通过停止周期时钟来达到降低系统功耗的目的,只要有进程处于活动状态,时钟事件依然会被周期性地发出。
阅读全文
0 0
- CONFIG_NO_HZ (aka dynamic tick functionality)
- tick
- TICK
- Tick and Tick
- hdoj_1006 Tick and Tick
- hdu-Tick and Tick
- hdu1006-Tick and Tick
- 1006 tick and tick
- hdu1006 Tick and Tick
- 1006-Tick and Tick
- AKA鉴权
- Storm Tick
- HDU 1006 Tick and Tick
- HDOJ 1006 Tick and Tick
- HDU 1006 Tick and Tick
- hdu 1006 Tick and Tick
- [HDU]1006 Tick and Tick
- [杭电]Tick and Tick
- 数据增强在卷积神经网络中的应用
- pwnable之memcpy
- Linux之Apache下日志文件error.log过大的解决方法
- Animation 过渡效果
- 解决虚拟机下的ubuntu不能上网的问题
- CONFIG_NO_HZ (aka dynamic tick functionality)
- Zookeeper 配置
- 判素数(Prime number)
- PHP使用mcrypt进行AES加密后的数据NodeJS等无法解密的问题修复方案
- Hibernate_优化与事务
- Linux查看文件夹大小
- Anguler2框架
- 【最小费用流】POJ
- 【HDU5378】Leader in Tree Land-概率DP+逆元+好题