Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\time\hrtimer.c Create Date:2022-07-28 10:40:43
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name: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

Proto:static void hrtimer_reprogram(struct hrtimer *timer, bool reprogram)

Type:void

Parameter:

TypeParameterName
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  If expires < 0 Then expires = 0
790  If is_soft Then
798  timer_cpu_base = cpu_base
800  If softirq_activated Then Return
803  If Not ktime_before - Compare if a ktime_t value is smaller than another one.*@cmp1: comparable1*@cmp2: comparable2* Return: true if cmp1 happened before cmp2. Then Return
806  softirq_next_timer = timer
807  softirq_expires_next = expires
809  If Not ktime_before - Compare if a ktime_t value is smaller than another one.*@cmp1: comparable1*@cmp2: comparable2* Return: true if cmp1 happened before cmp2. || Not reprogram Then Return
818  If cpu_base != cpu_base Then Return
828  If in_hrtirq Then Return
831  If expires >= expires_next Then Return
835  next_timer = timer
836  expires_next = expires
847  If Not Is the high resolution mode active ? || hang_detected Then Return
854  tick_program_event(expires, 1)
Caller
NameDescribe
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