Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\sched\rt.c Create Date:2022-07-28 09:39:14
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:do_sched_rt_period_timer

Proto:static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun)

Type:int

Parameter:

TypeParameterName
struct rt_bandwidth *rt_b
intoverrun
814  idle = 1 , throttled = 0
817  span = sched_rt_period_mask()
832  enqueue = 0
833  rt_rq = sched_rt_period_rt_rq(rt_b, i)
834  rq = rq_of_rt_rq(rt_rq)
841  raw_spin_lock( & Nests inside the rq lock: )
842  If Not sched_feat(RT_RUNTIME_SHARE) && rt_runtime != Single value that denotes runtime == period, ie unlimited time. Then rt_runtime = rt_runtime
844  skip = Not rt_time && Not rt_nr_running
845  raw_spin_unlock( & Nests inside the rq lock: )
846  If skip Then Continue
849  raw_spin_lock( & runqueue lock: )
850  update_rq_clock(rq)
852  If rt_time Then
855  raw_spin_lock( & Nests inside the rq lock: )
856  If rt_throttled Then balance_runtime(rt_rq)
858  runtime = rt_runtime
859  rt_time -= min - return minimum of two values of the same or compatible types*@x: first value*@y: second value(rt_time, overrun * runtime)
860  If rt_throttled && rt_time < runtime Then
861  rt_throttled = 0
862  enqueue = 1
874  If rt_time || rt_nr_running Then idle = 0
876  raw_spin_unlock( & Nests inside the rq lock: )
877  Else if rt_nr_running Then
878  idle = 0
879  If Not rt_rq_throttled(rt_rq) Then enqueue = 1
882  If rt_throttled Then throttled = 1
885  If enqueue Then sched_rt_rq_enqueue(rt_rq)
887  raw_spin_unlock( & runqueue lock: )
890  If Not throttled && ( Not rt_bandwidth_enabled() || rt_runtime == Single value that denotes runtime == period, ie unlimited time. ) Then Return 1
893  Return idle
Caller
NameDescribe
sched_rt_period_timer