Linux 内核时钟之oneshot编程

来源:互联网 发布:更改淘宝店铺主营类目 编辑:程序博客网 时间:2024/04/27 16:18
 

/** * tick_program_event */int tick_program_event(ktime_t expires, int force){ struct clock_event_device *dev = __this_cpu_read(tick_cpu_device.evtdev);

 if (unlikely(expires.tv64 == KTIME_MAX)) {  /*   * We don't need the clock event device any more, stop it.   */  clockevents_switch_state(dev, CLOCK_EVT_STATE_ONESHOT_STOPPED);  return 0; }

 if (unlikely(clockevent_state_oneshot_stopped(dev))) {  /*   * We need the clock event again, configure it in ONESHOT mode   * before using it.   */  clockevents_switch_state(dev, CLOCK_EVT_STATE_ONESHOT); }

 return clockevents_program_event(dev, expires, force);}

下面这些函数会对timer重新编程:

hrtimer_force_reprogram
hrtimer_interrupt
__tick_broadcast_oneshot_control
tick_nohz_restart
tick_nohz_stop_sched_tick
tick_nohz_handler
 
 
0 0
原创粉丝点击