Chinaunix

标题: 关于动态定时器处理 [打印本页]

作者: stuman    时间: 2013-07-11 19:14
标题: 关于动态定时器处理
2.6内核中对于动态定时器处理有如下代码:
index = base->timer_jiffies & 255;
其中base->timer_jiffies代表动态定时器的最早到期时间,如果base->timer_jiffies & 255为0,则说明这个链表中的定时器已经检查过了。
问题是我感觉只有base->timer_jiffies为0时,base->timer_jiffies & 255才为0,那么有必要在这里进行这个逻辑与操作吗?这个操作的意义在哪里呢?
作者: 瀚海书香    时间: 2013-07-12 14:27
回复 1# stuman
2.6内核中对于动态定时器处理有如下代码:
index = base->timer_jiffies & 255;
其中base->timer_jiffies代表动态定时器的最早到期时间,如果base->timer_jiffies & 255为0,则说明这个链表中的定时器已经检查过了。
问题是我感觉只有base->timer_jiffies为0时,base->timer_jiffies & 255才为0,那么有必要在这里进行这个逻辑与操作吗?这个操作的意义在哪里呢?


base->timer_jiffies保存着动态定时器的最早到期时间。在没有延迟的情况下,timer_jiffies应该与jiffies相同,这个值会比较大,所以需要base->timer_jiffies & TVR_MASK




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2