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;
}
예제 #2
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;
}