函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\time\hrtimer.c Create Date:2022-07-27 11:40:33
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:When a timer is enqueued and expires earlier than the already enqueued* timers, we have to check, whether it expires earlier than the timer for* which the clock event device was armed.* Called with interrupts disabled and base->cpu_base.lock held

函数原型:static void hrtimer_reprogram(struct hrtimer *timer, bool reprogram)

返回类型:void

参数:

类型参数名称
struct hrtimer *timer
boolreprogram
777  cpu_base等于this_cpu_ptr( & The timer bases:* There are more clockids than hrtimer bases. Thus, we index* into the timer bases by the hrtimer_base_type enum. When trying* to reach a base using a clockid, hrtimer_clockid_to_base())
778  base等于base
779  expires等于Subtract two ktime_t variables. rem = lhs -rhs: (hrtimer_get_expires(timer), offset)
781  WARN_ON_ONCE(hrtimer_get_expires_tv64(timer) < 0)
787  如果expires小于0则expires等于0
790  如果is_soft
798  timer_cpu_base等于cpu_base
800  如果softirq_activated则返回
803  如果非时间比较则返回
806  softirq_next_timer等于timer
807  softirq_expires_next等于expires
809  如果非时间比较或非reprogram则返回
818  如果cpu_base不等于cpu_base则返回
828  如果in_hrtirq则返回
831  如果expires大于等于expires_next则返回
835  next_timer等于timer
836  expires_next等于expires
847  如果非Is the high resolution mode active ?hang_detected则返回
854  tick_program_event(expires, 1)
调用者
名称描述
hrtimer_update_softirq_timer
hrtimer_start_range_nshrtimer_start_range_ns - (re)start an hrtimer*@timer: the timer to be added*@tim: expiry time*@delta_ns: "slack" range for the timer*@mode: timer mode: absolute (HRTIMER_MODE_ABS) or* relative (HRTIMER_MODE_REL), and pinned (HRTIMER_MODE_PINNED);* softirq