openKylin论坛

 找回密码

Linux 3.10完整支持的DynTicks(动态定时器)特性简介 [复制链接]

Linux 3.10发布,其完整支持的DynTicks(动态定时器),被标版为内核级别的核心特性。本文就来看一下DynTicks为何东东?又有啥稀奇之处?
我们知道,Linux内核里有一个HZ值,其表示时钟中断频率,在2.4内核时值为100,到2.6内核时变成了一个内核选项,可配置为100、250、300或1000。不管是2.4还是2.6,一旦内核编译完成,在实际运行时,HZ值是不变的(某些第三方补丁除外,后面会讲到),也就是说,每隔一个固定的时间间隔,比如1毫秒(以HZ等于1000为例),就会发生一次时间中断。

对于Linux而言,有很多机制是直接或间接依赖于时间中断的,比如进程切换。还记得有哪些时机会发生进程切换么?这不属于本文该讨论的话题,但肯定有人知道,在中断处理程序返回到用户空间时,内核会检查当前是否需要做进程切换。正因为如此,固定的时间中断就会引发固定的进程切换检查,并及时作出schedule()动作。当然,这仅只是一个关于进度管理的内核机制示例,但可以看到有了固定的系统时钟中断频率,就可以很简单的管理系统时间,而很多与此相关的功能也能较为方便的实现。

既然在固定系统时钟中断频率下,这一切都显得那么和谐,为什么还有人一直孜孜不倦的搞一个名为NOHZ(即DynTicks)的功能?NOHZ,显而易见,即是不固定系统时钟中断频率,可能在这一秒,时钟中断100次,而在下一秒,时钟又中断500次。

DynTicks并不是一蹴而就的,其最先是从2004年十月起,一直被用在linux-omap内而实现对TI’s OMAP ARM架构的支持。在Linux 2.4内核时期,有对应的VST补丁实现,而在Linux 2.6内核时期,有对应的NO_IDLE_HZ补丁实现。不管怎样,到现在的3.10,Linux已完整支持DynTicks(动态定时器)。

NOHZ有什么好处?其最大的好处就是省电。
一般而言,我们给Linux内核设定HZ是一个比平均所需要高的值。举个例子,如果一台Linux主机,它只有在某些时候需要较高的系统时钟中断频率W1,以便给外界提供更好的服务(比如,进程切换更快,从而给人的感觉是响应更迅速),而在其他大部分时间里都只需一个较低的系统时钟中断频率即可,但我们仍然得给它设置系统时钟中断频率HZ为W1。因此,过多的不必要的时钟中断,反复的唤醒系统又什么都不做或没什么事情做,导致电能的浪费。对于未来越来越多的终端设备(比如手机),能省电,毫无疑问是最有诱惑力的优点。

不仅只是终端,对于越来越集中的虚拟化、云计算,DynTicks也会带来省电的好处。比如更少的时钟中断可以避免引起无用的vmexits系统开销,从而在省电的同时,又能提高KVM的整体性能。不管是省电,还是性能提升,积少成多,再说,搞Linux的那群牛人,追求的就是极致,哈哈!

简介简介,先简单介绍到这里吧,后续看了具体代码,再说。

[GIT PULL, RFC] Full dynticks, CONFIG_NO_HZ_FULL feature
http://lkml.indiana.edu/hypermail/linux/kernel/1305.0/01831.html

Full DynTicks Proposed For Linux Kernel Integration, Posted by Michael Larabel on May 05, 2013
http://www.phoronix.com/scan.php?page=news_item&px=MTM2NTA

Linux Dynticks Being Extended For Performance Wins, Posted by Michael Larabel on December 18, 2012
http://www.phoronix.com/scan.php?page=news_item&px=MTI1NTg

http://muru.com/linux/dyntick/
楼主
发表于 2013-7-3 21:36:07
回复

使用道具 举报

openKylin

GMT+8, 2024-5-13 13:18 , Processed in 0.018692 second(s), 17 queries , Gzip On.

Copyright ©2022 openKylin. All Rights Reserved .

ICP No. 15002470-12 Tianjin

快速回复 返回顶部 返回列表