Lines Matching refs:cpu
40 struct tick_sched *tick_get_tick_sched(int cpu) in tick_get_tick_sched() argument
42 return &per_cpu(tick_cpu_sched, cpu); in tick_get_tick_sched()
119 int cpu = smp_processor_id(); in tick_sched_do_timer() local
136 tick_do_timer_cpu = cpu; in tick_sched_do_timer()
141 if (tick_do_timer_cpu == cpu) in tick_sched_do_timer()
208 static bool can_stop_full_tick(int cpu, struct tick_sched *ts) in can_stop_full_tick() argument
212 if (unlikely(!cpu_online(cpu))) in can_stop_full_tick()
257 void tick_nohz_full_kick_cpu(int cpu) in tick_nohz_full_kick_cpu() argument
259 if (!tick_nohz_full_cpu(cpu)) in tick_nohz_full_kick_cpu()
262 irq_work_queue_on(&per_cpu(nohz_full_kick_work, cpu), cpu); in tick_nohz_full_kick_cpu()
271 int cpu; in tick_nohz_full_kick_all() local
277 for_each_cpu_and(cpu, tick_nohz_full_mask, cpu_online_mask) in tick_nohz_full_kick_all()
278 tick_nohz_full_kick_cpu(cpu); in tick_nohz_full_kick_all()
310 void tick_nohz_dep_set_cpu(int cpu, enum tick_dep_bits bit) in tick_nohz_dep_set_cpu() argument
315 ts = per_cpu_ptr(&tick_cpu_sched, cpu); in tick_nohz_dep_set_cpu()
321 if (cpu == smp_processor_id()) { in tick_nohz_dep_set_cpu()
326 tick_nohz_full_kick_cpu(cpu); in tick_nohz_dep_set_cpu()
332 void tick_nohz_dep_clear_cpu(int cpu, enum tick_dep_bits bit) in tick_nohz_dep_clear_cpu() argument
334 struct tick_sched *ts = per_cpu_ptr(&tick_cpu_sched, cpu); in tick_nohz_dep_clear_cpu()
405 static int tick_nohz_cpu_down(unsigned int cpu) in tick_nohz_cpu_down() argument
412 if (tick_nohz_full_running && tick_do_timer_cpu == cpu) in tick_nohz_cpu_down()
419 int cpu, ret; in tick_nohz_init() local
438 cpu = smp_processor_id(); in tick_nohz_init()
440 if (cpumask_test_cpu(cpu, tick_nohz_full_mask)) { in tick_nohz_init()
442 "for timekeeping\n", cpu); in tick_nohz_init()
443 cpumask_clear_cpu(cpu, tick_nohz_full_mask); in tick_nohz_init()
447 for_each_cpu(cpu, tick_nohz_full_mask) in tick_nohz_init()
448 context_tracking_cpu_set(cpu); in tick_nohz_init()
485 bool tick_nohz_tick_stopped_cpu(int cpu) in tick_nohz_tick_stopped_cpu() argument
487 struct tick_sched *ts = per_cpu_ptr(&tick_cpu_sched, cpu); in tick_nohz_tick_stopped_cpu()
519 update_ts_time_stats(int cpu, struct tick_sched *ts, ktime_t now, u64 *last_update_time) in update_ts_time_stats() argument
525 if (nr_iowait_cpu(cpu) > 0) in update_ts_time_stats()
566 u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time) in get_cpu_idle_time_us() argument
568 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); in get_cpu_idle_time_us()
576 update_ts_time_stats(cpu, ts, now, last_update_time); in get_cpu_idle_time_us()
579 if (ts->idle_active && !nr_iowait_cpu(cpu)) { in get_cpu_idle_time_us()
607 u64 get_cpu_iowait_time_us(int cpu, u64 *last_update_time) in get_cpu_iowait_time_us() argument
609 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); in get_cpu_iowait_time_us()
617 update_ts_time_stats(cpu, ts, now, last_update_time); in get_cpu_iowait_time_us()
620 if (ts->idle_active && nr_iowait_cpu(cpu) > 0) { in get_cpu_iowait_time_us()
660 static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) in tick_nohz_next_event() argument
729 if (cpu != tick_do_timer_cpu && in tick_nohz_next_event()
745 static void tick_nohz_stop_tick(struct tick_sched *ts, int cpu) in tick_nohz_stop_tick() argument
763 if (cpu == tick_do_timer_cpu) { in tick_nohz_stop_tick()
825 static void tick_nohz_stop_sched_tick(struct tick_sched *ts, int cpu) in tick_nohz_stop_sched_tick() argument
827 if (tick_nohz_next_event(ts, cpu)) in tick_nohz_stop_sched_tick()
828 tick_nohz_stop_tick(ts, cpu); in tick_nohz_stop_sched_tick()
859 int cpu = smp_processor_id(); in tick_nohz_full_update_tick() local
861 if (!tick_nohz_full_cpu(cpu)) in tick_nohz_full_update_tick()
867 if (can_stop_full_tick(cpu, ts)) in tick_nohz_full_update_tick()
868 tick_nohz_stop_sched_tick(ts, cpu); in tick_nohz_full_update_tick()
874 static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) in can_stop_idle_tick() argument
883 if (unlikely(!cpu_online(cpu))) { in can_stop_idle_tick()
884 if (cpu == tick_do_timer_cpu) in can_stop_idle_tick()
917 if (tick_do_timer_cpu == cpu) in can_stop_idle_tick()
938 int cpu = smp_processor_id(); in __tick_nohz_idle_stop_tick() local
946 else if (can_stop_idle_tick(cpu, ts)) in __tick_nohz_idle_stop_tick()
947 expires = tick_nohz_next_event(ts, cpu); in __tick_nohz_idle_stop_tick()
956 tick_nohz_stop_tick(ts, cpu); in __tick_nohz_idle_stop_tick()
963 nohz_balance_enter_idle(cpu); in __tick_nohz_idle_stop_tick()
1067 int cpu = smp_processor_id(); in tick_nohz_get_sleep_length() local
1079 if (!can_stop_idle_tick(cpu, ts)) in tick_nohz_get_sleep_length()
1082 next_event = tick_nohz_next_event(ts, cpu); in tick_nohz_get_sleep_length()
1102 unsigned long tick_nohz_get_idle_calls_cpu(int cpu) in tick_nohz_get_idle_calls_cpu() argument
1104 struct tick_sched *ts = tick_get_tick_sched(cpu); in tick_nohz_get_idle_calls_cpu()
1358 void tick_cancel_sched_timer(int cpu) in tick_cancel_sched_timer() argument
1360 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); in tick_cancel_sched_timer()
1376 int cpu; in tick_clock_notify() local
1378 for_each_possible_cpu(cpu) in tick_clock_notify()
1379 set_bit(0, &per_cpu(tick_cpu_sched, cpu).check_clocks); in tick_clock_notify()