static int __init init_tick_nohz_full(void) { if (have_nohz_full_mask) cpu_notifier(tick_nohz_cpu_down_callback, 0); cpulist_scnprintf(nohz_full_buf, sizeof(nohz_full_buf), nohz_full_mask); pr_info("NO_HZ: Full dynticks CPUs: %s.\n", nohz_full_buf); return 0; }
void __init rcu_init(void) { int i; __rcu_init(); cpu_notifier(rcu_barrier_cpu_hotplug, 0); /* * We don't need protection against CPU-hotplug here because * this is called early in boot, before either interrupts * or the scheduler are operational. */ for_each_online_cpu(i) rcu_barrier_cpu_hotplug(NULL, CPU_UP_PREPARE, (void *)(long)i); }
static int arm_coresight_probe(struct platform_device *pdev) { #ifdef CONFIG_CORESIGHT_TRACE_SUPPORT static struct clk *traceclk; #endif dbgclk = clk_get(&pdev->dev, "DBGCLK"); if (IS_ERR(dbgclk)) { pr_warn("No DBGCLK is defined...\n"); dbgclk = NULL; } if (dbgclk) clk_prepare(dbgclk); arch_coresight_init(); #ifdef CONFIG_CORESIGHT_TRACE_SUPPORT /* enable etm trace by default */ if (etm_need_enabled()) { traceclk = clk_get(&pdev->dev, "TRACECLK"); if (IS_ERR(traceclk)) { pr_warn("No TRACECLK is defined...\n"); traceclk = NULL; } if (traceclk) clk_prepare_enable(traceclk); arch_enable_trace(etm_enable_mask); } #endif cpu_notifier(coresight_core_notifier, 0); cpu_pm_register_notifier(&coresight_notifier_block); return 0; }