Lines Matching refs:cpu
42 struct tick_sched *tick_get_tick_sched(int cpu) in tick_get_tick_sched() argument
44 return &per_cpu(tick_cpu_sched, cpu); in tick_get_tick_sched()
188 int cpu = smp_processor_id(); in tick_sched_do_timer() local
205 tick_do_timer_cpu = cpu; in tick_sched_do_timer()
210 if (tick_do_timer_cpu == cpu) { in tick_sched_do_timer()
306 static bool can_stop_full_tick(int cpu, struct tick_sched *ts) in can_stop_full_tick() argument
310 if (unlikely(!cpu_online(cpu))) in can_stop_full_tick()
354 void tick_nohz_full_kick_cpu(int cpu) in tick_nohz_full_kick_cpu() argument
356 if (!tick_nohz_full_cpu(cpu)) in tick_nohz_full_kick_cpu()
359 irq_work_queue_on(&per_cpu(nohz_full_kick_work, cpu), cpu); in tick_nohz_full_kick_cpu()
364 int cpu; in tick_nohz_kick_task() local
394 cpu = task_cpu(tsk); in tick_nohz_kick_task()
397 if (cpu_online(cpu)) in tick_nohz_kick_task()
398 tick_nohz_full_kick_cpu(cpu); in tick_nohz_kick_task()
408 int cpu; in tick_nohz_full_kick_all() local
414 for_each_cpu_and(cpu, tick_nohz_full_mask, cpu_online_mask) in tick_nohz_full_kick_all()
415 tick_nohz_full_kick_cpu(cpu); in tick_nohz_full_kick_all()
447 void tick_nohz_dep_set_cpu(int cpu, enum tick_dep_bits bit) in tick_nohz_dep_set_cpu() argument
452 ts = per_cpu_ptr(&tick_cpu_sched, cpu); in tick_nohz_dep_set_cpu()
458 if (cpu == smp_processor_id()) { in tick_nohz_dep_set_cpu()
463 tick_nohz_full_kick_cpu(cpu); in tick_nohz_dep_set_cpu()
470 void tick_nohz_dep_clear_cpu(int cpu, enum tick_dep_bits bit) in tick_nohz_dep_clear_cpu() argument
472 struct tick_sched *ts = per_cpu_ptr(&tick_cpu_sched, cpu); in tick_nohz_dep_clear_cpu()
549 bool tick_nohz_cpu_hotpluggable(unsigned int cpu) in tick_nohz_cpu_hotpluggable() argument
556 if (tick_nohz_full_running && tick_do_timer_cpu == cpu) in tick_nohz_cpu_hotpluggable()
561 static int tick_nohz_cpu_down(unsigned int cpu) in tick_nohz_cpu_down() argument
563 return tick_nohz_cpu_hotpluggable(cpu) ? 0 : -EBUSY; in tick_nohz_cpu_down()
568 int cpu, ret; in tick_nohz_init() local
587 cpu = smp_processor_id(); in tick_nohz_init()
589 if (cpumask_test_cpu(cpu, tick_nohz_full_mask)) { in tick_nohz_init()
591 "for timekeeping\n", cpu); in tick_nohz_init()
592 cpumask_clear_cpu(cpu, tick_nohz_full_mask); in tick_nohz_init()
596 for_each_cpu(cpu, tick_nohz_full_mask) in tick_nohz_init()
597 ct_cpu_track_user(cpu); in tick_nohz_init()
634 bool tick_nohz_tick_stopped_cpu(int cpu) in tick_nohz_tick_stopped_cpu() argument
636 struct tick_sched *ts = per_cpu_ptr(&tick_cpu_sched, cpu); in tick_nohz_tick_stopped_cpu()
668 update_ts_time_stats(int cpu, struct tick_sched *ts, ktime_t now, u64 *last_update_time) in update_ts_time_stats() argument
674 if (nr_iowait_cpu(cpu) > 0) in update_ts_time_stats()
715 u64 get_cpu_idle_time_us(int cpu, u64 *last_update_time) in get_cpu_idle_time_us() argument
717 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); in get_cpu_idle_time_us()
725 update_ts_time_stats(cpu, ts, now, last_update_time); in get_cpu_idle_time_us()
728 if (ts->idle_active && !nr_iowait_cpu(cpu)) { in get_cpu_idle_time_us()
756 u64 get_cpu_iowait_time_us(int cpu, u64 *last_update_time) in get_cpu_iowait_time_us() argument
758 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); in get_cpu_iowait_time_us()
766 update_ts_time_stats(cpu, ts, now, last_update_time); in get_cpu_iowait_time_us()
769 if (ts->idle_active && nr_iowait_cpu(cpu) > 0) { in get_cpu_iowait_time_us()
809 static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) in tick_nohz_next_event() argument
876 if (cpu != tick_do_timer_cpu && in tick_nohz_next_event()
892 static void tick_nohz_stop_tick(struct tick_sched *ts, int cpu) in tick_nohz_stop_tick() argument
910 if (cpu == tick_do_timer_cpu) { in tick_nohz_stop_tick()
974 static void tick_nohz_stop_sched_tick(struct tick_sched *ts, int cpu) in tick_nohz_stop_sched_tick() argument
976 if (tick_nohz_next_event(ts, cpu)) in tick_nohz_stop_sched_tick()
977 tick_nohz_stop_tick(ts, cpu); in tick_nohz_stop_sched_tick()
1007 int cpu = smp_processor_id(); in __tick_nohz_full_update_tick() local
1009 if (can_stop_full_tick(cpu, ts)) in __tick_nohz_full_update_tick()
1010 tick_nohz_stop_sched_tick(ts, cpu); in __tick_nohz_full_update_tick()
1066 static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) in can_stop_idle_tick() argument
1075 if (unlikely(!cpu_online(cpu))) { in can_stop_idle_tick()
1076 if (cpu == tick_do_timer_cpu) in can_stop_idle_tick()
1100 if (tick_do_timer_cpu == cpu) in can_stop_idle_tick()
1114 int cpu = smp_processor_id(); in __tick_nohz_idle_stop_tick() local
1122 else if (can_stop_idle_tick(cpu, ts)) in __tick_nohz_idle_stop_tick()
1123 expires = tick_nohz_next_event(ts, cpu); in __tick_nohz_idle_stop_tick()
1132 tick_nohz_stop_tick(ts, cpu); in __tick_nohz_idle_stop_tick()
1139 nohz_balance_enter_idle(cpu); in __tick_nohz_idle_stop_tick()
1247 int cpu = smp_processor_id(); in tick_nohz_get_sleep_length() local
1259 if (!can_stop_idle_tick(cpu, ts)) in tick_nohz_get_sleep_length()
1262 next_event = tick_nohz_next_event(ts, cpu); in tick_nohz_get_sleep_length()
1283 unsigned long tick_nohz_get_idle_calls_cpu(int cpu) in tick_nohz_get_idle_calls_cpu() argument
1285 struct tick_sched *ts = tick_get_tick_sched(cpu); in tick_nohz_get_idle_calls_cpu()
1561 void tick_cancel_sched_timer(int cpu) in tick_cancel_sched_timer() argument
1563 struct tick_sched *ts = &per_cpu(tick_cpu_sched, cpu); in tick_cancel_sched_timer()
1589 int cpu; in tick_clock_notify() local
1591 for_each_possible_cpu(cpu) in tick_clock_notify()
1592 set_bit(0, &per_cpu(tick_cpu_sched, cpu).check_clocks); in tick_clock_notify()