Lines Matching refs:cpu
117 int cpu = raw_smp_processor_id(); in wd_lockup_ipi() local
120 pr_emerg("CPU %d Hard LOCKUP\n", cpu); in wd_lockup_ipi()
122 cpu, tb, per_cpu(wd_timer_tb, cpu), in wd_lockup_ipi()
123 tb_to_ns(tb - per_cpu(wd_timer_tb, cpu)) / 1000000); in wd_lockup_ipi()
145 static void set_cpu_stuck(int cpu, u64 tb) in set_cpu_stuck() argument
147 set_cpumask_stuck(cpumask_of(cpu), tb); in set_cpu_stuck()
150 static void watchdog_smp_panic(int cpu, u64 tb) in watchdog_smp_panic() argument
159 if (cpumask_test_cpu(cpu, &wd_smp_cpus_pending)) in watchdog_smp_panic()
165 cpu, cpumask_pr_args(&wd_smp_cpus_pending)); in watchdog_smp_panic()
167 cpu, tb, wd_smp_last_reset_tb, in watchdog_smp_panic()
176 if (c == cpu) in watchdog_smp_panic()
205 static void wd_smp_clear_cpu_pending(int cpu, u64 tb) in wd_smp_clear_cpu_pending() argument
207 if (!cpumask_test_cpu(cpu, &wd_smp_cpus_pending)) { in wd_smp_clear_cpu_pending()
208 if (unlikely(cpumask_test_cpu(cpu, &wd_smp_cpus_stuck))) { in wd_smp_clear_cpu_pending()
215 cpu, tb); in wd_smp_clear_cpu_pending()
222 cpumask_clear_cpu(cpu, &wd_smp_cpus_stuck); in wd_smp_clear_cpu_pending()
227 cpumask_clear_cpu(cpu, &wd_smp_cpus_pending); in wd_smp_clear_cpu_pending()
242 static void watchdog_timer_interrupt(int cpu) in watchdog_timer_interrupt() argument
246 per_cpu(wd_timer_tb, cpu) = tb; in watchdog_timer_interrupt()
248 wd_smp_clear_cpu_pending(cpu, tb); in watchdog_timer_interrupt()
251 watchdog_smp_panic(cpu, tb); in watchdog_timer_interrupt()
257 int cpu = raw_smp_processor_id(); in DEFINE_INTERRUPT_HANDLER_NMI() local
263 if (!cpumask_test_cpu(cpu, &wd_cpus_enabled)) in DEFINE_INTERRUPT_HANDLER_NMI()
269 if (tb - per_cpu(wd_timer_tb, cpu) >= wd_panic_timeout_tb) { in DEFINE_INTERRUPT_HANDLER_NMI()
271 if (cpumask_test_cpu(cpu, &wd_smp_cpus_stuck)) { in DEFINE_INTERRUPT_HANDLER_NMI()
275 set_cpu_stuck(cpu, tb); in DEFINE_INTERRUPT_HANDLER_NMI()
278 cpu, (void *)regs->nip); in DEFINE_INTERRUPT_HANDLER_NMI()
280 cpu, tb, per_cpu(wd_timer_tb, cpu), in DEFINE_INTERRUPT_HANDLER_NMI()
281 tb_to_ns(tb - per_cpu(wd_timer_tb, cpu)) / 1000000); in DEFINE_INTERRUPT_HANDLER_NMI()
302 int cpu = smp_processor_id(); in watchdog_timer_fn() local
307 if (!cpumask_test_cpu(cpu, &watchdog_cpumask)) in watchdog_timer_fn()
310 watchdog_timer_interrupt(cpu); in watchdog_timer_fn()
320 int cpu = smp_processor_id(); in arch_touch_nmi_watchdog() local
323 if (tb - per_cpu(wd_timer_tb, cpu) >= ticks) { in arch_touch_nmi_watchdog()
324 per_cpu(wd_timer_tb, cpu) = tb; in arch_touch_nmi_watchdog()
325 wd_smp_clear_cpu_pending(cpu, tb); in arch_touch_nmi_watchdog()
333 int cpu = smp_processor_id(); in start_watchdog() local
336 if (cpumask_test_cpu(cpu, &wd_cpus_enabled)) { in start_watchdog()
344 if (!cpumask_test_cpu(cpu, &watchdog_cpumask)) in start_watchdog()
348 cpumask_set_cpu(cpu, &wd_cpus_enabled); in start_watchdog()
350 cpumask_set_cpu(cpu, &wd_smp_cpus_pending); in start_watchdog()
363 static int start_watchdog_on_cpu(unsigned int cpu) in start_watchdog_on_cpu() argument
365 return smp_call_function_single(cpu, start_watchdog, NULL, true); in start_watchdog_on_cpu()
371 int cpu = smp_processor_id(); in stop_watchdog() local
374 if (!cpumask_test_cpu(cpu, &wd_cpus_enabled)) in stop_watchdog()
380 cpumask_clear_cpu(cpu, &wd_cpus_enabled); in stop_watchdog()
383 wd_smp_clear_cpu_pending(cpu, get_tb()); in stop_watchdog()
386 static int stop_watchdog_on_cpu(unsigned int cpu) in stop_watchdog_on_cpu() argument
388 return smp_call_function_single(cpu, stop_watchdog, NULL, true); in stop_watchdog_on_cpu()
404 int cpu; in watchdog_nmi_stop() local
406 for_each_cpu(cpu, &wd_cpus_enabled) in watchdog_nmi_stop()
407 stop_watchdog_on_cpu(cpu); in watchdog_nmi_stop()
412 int cpu; in watchdog_nmi_start() local
415 for_each_cpu_and(cpu, cpu_online_mask, &watchdog_cpumask) in watchdog_nmi_start()
416 start_watchdog_on_cpu(cpu); in watchdog_nmi_start()