• Home
  • Raw
  • Download

Lines Matching refs:rt_b

13 static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun);
74 struct rt_bandwidth *rt_b = in sched_rt_period_timer() local
79 raw_spin_lock(&rt_b->rt_runtime_lock); in sched_rt_period_timer()
81 overrun = hrtimer_forward_now(timer, rt_b->rt_period); in sched_rt_period_timer()
85 raw_spin_unlock(&rt_b->rt_runtime_lock); in sched_rt_period_timer()
86 idle = do_sched_rt_period_timer(rt_b, overrun); in sched_rt_period_timer()
87 raw_spin_lock(&rt_b->rt_runtime_lock); in sched_rt_period_timer()
90 rt_b->rt_period_active = 0; in sched_rt_period_timer()
91 raw_spin_unlock(&rt_b->rt_runtime_lock); in sched_rt_period_timer()
96 void init_rt_bandwidth(struct rt_bandwidth *rt_b, u64 period, u64 runtime) in init_rt_bandwidth() argument
98 rt_b->rt_period = ns_to_ktime(period); in init_rt_bandwidth()
99 rt_b->rt_runtime = runtime; in init_rt_bandwidth()
101 raw_spin_lock_init(&rt_b->rt_runtime_lock); in init_rt_bandwidth()
103 hrtimer_init(&rt_b->rt_period_timer, CLOCK_MONOTONIC, in init_rt_bandwidth()
105 rt_b->rt_period_timer.function = sched_rt_period_timer; in init_rt_bandwidth()
108 static inline void do_start_rt_bandwidth(struct rt_bandwidth *rt_b) in do_start_rt_bandwidth() argument
110 raw_spin_lock(&rt_b->rt_runtime_lock); in do_start_rt_bandwidth()
111 if (!rt_b->rt_period_active) { in do_start_rt_bandwidth()
112 rt_b->rt_period_active = 1; in do_start_rt_bandwidth()
121 hrtimer_forward_now(&rt_b->rt_period_timer, ns_to_ktime(0)); in do_start_rt_bandwidth()
122 hrtimer_start_expires(&rt_b->rt_period_timer, in do_start_rt_bandwidth()
125 raw_spin_unlock(&rt_b->rt_runtime_lock); in do_start_rt_bandwidth()
128 static void start_rt_bandwidth(struct rt_bandwidth *rt_b) in start_rt_bandwidth() argument
130 if (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF) in start_rt_bandwidth()
133 do_start_rt_bandwidth(rt_b); in start_rt_bandwidth()
166 static void destroy_rt_bandwidth(struct rt_bandwidth *rt_b) in destroy_rt_bandwidth() argument
168 hrtimer_cancel(&rt_b->rt_period_timer); in destroy_rt_bandwidth()
648 struct rt_rq *sched_rt_period_rt_rq(struct rt_bandwidth *rt_b, int cpu) in sched_rt_period_rt_rq() argument
650 return container_of(rt_b, struct task_group, rt_bandwidth)->rt_rq[cpu]; in sched_rt_period_rt_rq()
710 struct rt_rq *sched_rt_period_rt_rq(struct rt_bandwidth *rt_b, int cpu) in sched_rt_period_rt_rq() argument
724 struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq); in sched_rt_bandwidth_account() local
726 return (hrtimer_active(&rt_b->rt_period_timer) || in sched_rt_bandwidth_account()
727 rt_rq->rt_time < rt_b->rt_runtime); in sched_rt_bandwidth_account()
736 struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq); in do_balance_runtime() local
743 raw_spin_lock(&rt_b->rt_runtime_lock); in do_balance_runtime()
744 rt_period = ktime_to_ns(rt_b->rt_period); in do_balance_runtime()
746 struct rt_rq *iter = sched_rt_period_rt_rq(rt_b, i); in do_balance_runtime()
780 raw_spin_unlock(&rt_b->rt_runtime_lock); in do_balance_runtime()
796 struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq); in __disable_runtime() local
800 raw_spin_lock(&rt_b->rt_runtime_lock); in __disable_runtime()
808 rt_rq->rt_runtime == rt_b->rt_runtime) in __disable_runtime()
817 want = rt_b->rt_runtime - rt_rq->rt_runtime; in __disable_runtime()
823 struct rt_rq *iter = sched_rt_period_rt_rq(rt_b, i); in __disable_runtime()
861 raw_spin_unlock(&rt_b->rt_runtime_lock); in __disable_runtime()
880 struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq); in __enable_runtime() local
882 raw_spin_lock(&rt_b->rt_runtime_lock); in __enable_runtime()
884 rt_rq->rt_runtime = rt_b->rt_runtime; in __enable_runtime()
888 raw_spin_unlock(&rt_b->rt_runtime_lock); in __enable_runtime()
907 static int do_sched_rt_period_timer(struct rt_bandwidth *rt_b, int overrun) in do_sched_rt_period_timer() argument
923 if (rt_b == &root_task_group.rt_bandwidth) in do_sched_rt_period_timer()
928 struct rt_rq *rt_rq = sched_rt_period_rt_rq(rt_b, i); in do_sched_rt_period_timer()
939 rt_rq->rt_runtime = rt_b->rt_runtime; in do_sched_rt_period_timer()
986 if (!throttled && (!rt_bandwidth_enabled() || rt_b->rt_runtime == RUNTIME_INF)) in do_sched_rt_period_timer()
1020 struct rt_bandwidth *rt_b = sched_rt_bandwidth(rt_rq); in sched_rt_runtime_exceeded() local
1026 if (likely(rt_b->rt_runtime)) { in sched_rt_runtime_exceeded()
1035 hrtimer_get_expires_ns(&rt_b->rt_period_timer)); in sched_rt_runtime_exceeded()