Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

Name:__hrtimer_run_queues

Proto:static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now, unsigned long flags, unsigned int active_mask)

Type:void

Parameter:

TypeParameterName
struct hrtimer_cpu_base *cpu_base
ktime_tnow
unsigned longflags
unsigned intactive_mask
1551  active = active_bases & active_mask
1557  basenow = Add two ktime_t variables. res = lhs + rhs: (now, offset)
1559  When node = merqueue_getnext - Returns the timer with the earliest expiration time*@head: head of timerqueue* Returns a pointer to the timer node that has the earliest expiration time. cycle
1562  timer = container_of - cast a member of a structure out to the containing structure*@ptr: the pointer to the member.*@type: the type of the container struct this is embedded in.*@member: the name of the member within the struct.(node, structhrtimer, node)
1576  If basenow < hrtimer_get_softexpires_tv64(timer) Then Break
1579  The write_seqcount_barrier()s in __run_hrtimer() split the thing into 3* distinct sections:* - queued: the timer is queued* - callback: the timer is being ran* - post: the timer is inactive or (re)queued* On the read side we ensure we observe timer->state
1580  If active_mask == HRTIMER_ACTIVE_SOFT Then hrtimer_sync_wait_running(cpu_base, flags)
Caller
NameDescribe
hrtimer_run_softirq
hrtimer_run_queuesCalled from run_local_timers in hardirq context every jiffy