cregit-Linux how code gets into the kernel

Release 4.14 arch/powerpc/kernel/idle.c

/*
 * Idle daemon for PowerPC.  Idle daemon will handle any action
 * that needs to be taken when the system becomes idle.
 *
 * Originally written by Cort Dougan (cort@cs.nmt.edu).
 * Subsequent 32-bit hacking by Tom Rini, Armin Kuster,
 * Paul Mackerras and others.
 *
 * iSeries supported added by Mike Corrigan <mikejc@us.ibm.com>
 *
 * Additional shared processor, SMT, and firmware support
 *    Copyright (c) 2003 Dave Engebretsen <engebret@us.ibm.com>
 *
 * 32-bit and 64-bit versions merged by Paul Mackerras <paulus@samba.org>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version
 * 2 of the License, or (at your option) any later version.
 */

#include <linux/sched.h>
#include <linux/kernel.h>
#include <linux/smp.h>
#include <linux/cpu.h>
#include <linux/sysctl.h>
#include <linux/tick.h>

#include <asm/processor.h>
#include <asm/cputable.h>
#include <asm/time.h>
#include <asm/machdep.h>
#include <asm/runlatch.h>
#include <asm/smp.h>



unsigned long cpuidle_disable = IDLE_NO_OVERRIDE;

EXPORT_SYMBOL(cpuidle_disable);


static int __init powersave_off(char *arg) { ppc_md.power_save = NULL; cpuidle_disable = IDLE_POWERSAVE_OFF; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Arnd Bergmann2083.33%150.00%
Deepthi Dharwar416.67%150.00%
Total24100.00%2100.00%

__setup("powersave=off", powersave_off); #ifdef CONFIG_HOTPLUG_CPU
void arch_cpu_idle_dead(void) { sched_preempt_enable_no_resched(); cpu_die(); }

Contributors

PersonTokensPropCommitsCommitProp
Andrew Morton430.77%116.67%
Thomas Gleixner430.77%116.67%
Frédéric Weisbecker323.08%233.33%
Tony Breeds17.69%116.67%
Paul Mackerras17.69%116.67%
Total13100.00%6100.00%

#endif
void arch_cpu_idle(void) { ppc64_runlatch_off(); if (ppc_md.power_save) { ppc_md.power_save(); /* * Some power_save functions return with * interrupts enabled, some don't. */ if (irqs_disabled()) local_irq_enable(); } else { local_irq_enable(); /* * Go into low thread priority and possibly * low power mode. */ HMT_low(); HMT_very_low(); } HMT_medium(); ppc64_runlatch_on(); }

Contributors

PersonTokensPropCommitsCommitProp
Paul Mackerras2039.22%110.00%
Thomas Gleixner1019.61%110.00%
Benjamin Herrenschmidt917.65%220.00%
Anton Blanchard917.65%440.00%
Nicholas Piggin23.92%110.00%
Andrew Morton11.96%110.00%
Total51100.00%10100.00%

int powersave_nap; #ifdef CONFIG_SYSCTL /* * Register the sysctl to set/clear powersave_nap. */ static struct ctl_table powersave_nap_ctl_table[] = { { .procname = "powersave-nap", .data = &powersave_nap, .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, {} }; static struct ctl_table powersave_nap_sysctl_root[] = { { .procname = "kernel", .mode = 0555, .child = powersave_nap_ctl_table, }, {} };
static int __init register_powersave_nap_sysctl(void) { register_sysctl_table(powersave_nap_sysctl_root); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Anton Blanchard17100.00%1100.00%
Total17100.00%1100.00%

__initcall(register_powersave_nap_sysctl); #endif

Overall Contributors

PersonTokensPropCommitsCommitProp
Anton Blanchard11144.94%521.74%
Arnd Bergmann2710.93%14.35%
Paul Mackerras2510.12%313.04%
Thomas Gleixner197.69%14.35%
Deepthi Dharwar156.07%14.35%
Eric W. Biedermann145.67%14.35%
Andrew Morton104.05%28.70%
Benjamin Herrenschmidt93.64%28.70%
David Howells52.02%14.35%
Tony Breeds41.62%14.35%
Frédéric Weisbecker31.21%28.70%
Nicholas Piggin20.81%14.35%
Joe Perches20.81%14.35%
Alexey Dobriyan10.40%14.35%
Total247100.00%23100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.