Lines Matching refs:cpu

114 	int cpu = raw_smp_processor_id();  in wd_lockup_ipi()  local
117 pr_emerg("CPU %d Hard LOCKUP\n", cpu); in wd_lockup_ipi()
119 cpu, tb, per_cpu(wd_timer_tb, cpu), in wd_lockup_ipi()
120 tb_to_ns(tb - per_cpu(wd_timer_tb, cpu)) / 1000000); in wd_lockup_ipi()
142 static void set_cpu_stuck(int cpu, u64 tb) in set_cpu_stuck() argument
144 set_cpumask_stuck(cpumask_of(cpu), tb); in set_cpu_stuck()
147 static void watchdog_smp_panic(int cpu, u64 tb) in watchdog_smp_panic() argument
156 if (cpumask_test_cpu(cpu, &wd_smp_cpus_pending)) in watchdog_smp_panic()
162 cpu, cpumask_pr_args(&wd_smp_cpus_pending)); in watchdog_smp_panic()
164 cpu, tb, wd_smp_last_reset_tb, in watchdog_smp_panic()
173 if (c == cpu) in watchdog_smp_panic()
201 static void wd_smp_clear_cpu_pending(int cpu, u64 tb) in wd_smp_clear_cpu_pending() argument
203 if (!cpumask_test_cpu(cpu, &wd_smp_cpus_pending)) { in wd_smp_clear_cpu_pending()
204 if (unlikely(cpumask_test_cpu(cpu, &wd_smp_cpus_stuck))) { in wd_smp_clear_cpu_pending()
211 cpu, tb); in wd_smp_clear_cpu_pending()
218 cpumask_clear_cpu(cpu, &wd_smp_cpus_stuck); in wd_smp_clear_cpu_pending()
223 cpumask_clear_cpu(cpu, &wd_smp_cpus_pending); in wd_smp_clear_cpu_pending()
238 static void watchdog_timer_interrupt(int cpu) in watchdog_timer_interrupt() argument
242 per_cpu(wd_timer_tb, cpu) = tb; in watchdog_timer_interrupt()
244 wd_smp_clear_cpu_pending(cpu, tb); in watchdog_timer_interrupt()
247 watchdog_smp_panic(cpu, tb); in watchdog_timer_interrupt()
253 int cpu = raw_smp_processor_id(); in soft_nmi_interrupt() local
256 if (!cpumask_test_cpu(cpu, &wd_cpus_enabled)) in soft_nmi_interrupt()
264 if (tb - per_cpu(wd_timer_tb, cpu) >= wd_panic_timeout_tb) { in soft_nmi_interrupt()
266 if (cpumask_test_cpu(cpu, &wd_smp_cpus_stuck)) { in soft_nmi_interrupt()
270 set_cpu_stuck(cpu, tb); in soft_nmi_interrupt()
273 cpu, (void *)regs->nip); in soft_nmi_interrupt()
275 cpu, tb, per_cpu(wd_timer_tb, cpu), in soft_nmi_interrupt()
276 tb_to_ns(tb - per_cpu(wd_timer_tb, cpu)) / 1000000); in soft_nmi_interrupt()
296 static void wd_timer_reset(unsigned int cpu, struct timer_list *t) in wd_timer_reset() argument
300 t->expires = __round_jiffies_up(t->expires, cpu); in wd_timer_reset()
301 add_timer_on(t, cpu); in wd_timer_reset()
306 int cpu = smp_processor_id(); in wd_timer_fn() local
308 watchdog_timer_interrupt(cpu); in wd_timer_fn()
310 wd_timer_reset(cpu, t); in wd_timer_fn()
316 int cpu = smp_processor_id(); in arch_touch_nmi_watchdog() local
319 if (tb - per_cpu(wd_timer_tb, cpu) >= ticks) { in arch_touch_nmi_watchdog()
320 per_cpu(wd_timer_tb, cpu) = tb; in arch_touch_nmi_watchdog()
321 wd_smp_clear_cpu_pending(cpu, tb); in arch_touch_nmi_watchdog()
326 static void start_watchdog_timer_on(unsigned int cpu) in start_watchdog_timer_on() argument
328 struct timer_list *t = per_cpu_ptr(&wd_timer, cpu); in start_watchdog_timer_on()
330 per_cpu(wd_timer_tb, cpu) = get_tb(); in start_watchdog_timer_on()
333 wd_timer_reset(cpu, t); in start_watchdog_timer_on()
336 static void stop_watchdog_timer_on(unsigned int cpu) in stop_watchdog_timer_on() argument
338 struct timer_list *t = per_cpu_ptr(&wd_timer, cpu); in stop_watchdog_timer_on()
343 static int start_wd_on_cpu(unsigned int cpu) in start_wd_on_cpu() argument
347 if (cpumask_test_cpu(cpu, &wd_cpus_enabled)) { in start_wd_on_cpu()
355 if (!cpumask_test_cpu(cpu, &watchdog_cpumask)) in start_wd_on_cpu()
359 cpumask_set_cpu(cpu, &wd_cpus_enabled); in start_wd_on_cpu()
361 cpumask_set_cpu(cpu, &wd_smp_cpus_pending); in start_wd_on_cpu()
366 start_watchdog_timer_on(cpu); in start_wd_on_cpu()
371 static int stop_wd_on_cpu(unsigned int cpu) in stop_wd_on_cpu() argument
375 if (!cpumask_test_cpu(cpu, &wd_cpus_enabled)) in stop_wd_on_cpu()
378 stop_watchdog_timer_on(cpu); in stop_wd_on_cpu()
381 cpumask_clear_cpu(cpu, &wd_cpus_enabled); in stop_wd_on_cpu()
384 wd_smp_clear_cpu_pending(cpu, get_tb()); in stop_wd_on_cpu()
402 int cpu; in watchdog_nmi_stop() local
404 for_each_cpu(cpu, &wd_cpus_enabled) in watchdog_nmi_stop()
405 stop_wd_on_cpu(cpu); in watchdog_nmi_stop()
410 int cpu; in watchdog_nmi_start() local
413 for_each_cpu_and(cpu, cpu_online_mask, &watchdog_cpumask) in watchdog_nmi_start()
414 start_wd_on_cpu(cpu); in watchdog_nmi_start()