mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-02 07:04:24 +00:00
um: Use generic idle loop
Signed-off-by: Richard Weinberger <richard@nod.at> Cc: user-mode-linux-devel@lists.sourceforge.net Link: http://lkml.kernel.org/r/1366149209-24787-1-git-send-email-richard@nod.at Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
2412aa1293
commit
8198c1696a
2 changed files with 5 additions and 23 deletions
|
@ -12,6 +12,7 @@ config UML
|
||||||
select GENERIC_CPU_DEVICES
|
select GENERIC_CPU_DEVICES
|
||||||
select GENERIC_IO
|
select GENERIC_IO
|
||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
|
select GENERIC_IDLE_LOOP
|
||||||
select TTY # Needed for line.c
|
select TTY # Needed for line.c
|
||||||
|
|
||||||
config MMU
|
config MMU
|
||||||
|
|
|
@ -210,33 +210,14 @@ void initial_thread_cb(void (*proc)(void *), void *arg)
|
||||||
kmalloc_ok = save_kmalloc_ok;
|
kmalloc_ok = save_kmalloc_ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
void default_idle(void)
|
void arch_cpu_idle(void)
|
||||||
{
|
{
|
||||||
unsigned long long nsecs;
|
unsigned long long nsecs;
|
||||||
|
|
||||||
while (1) {
|
|
||||||
/* endless idle loop with no priority at all */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* although we are an idle CPU, we do not want to
|
|
||||||
* get into the scheduler unnecessarily.
|
|
||||||
*/
|
|
||||||
if (need_resched())
|
|
||||||
schedule();
|
|
||||||
|
|
||||||
tick_nohz_idle_enter();
|
|
||||||
rcu_idle_enter();
|
|
||||||
nsecs = disable_timer();
|
|
||||||
idle_sleep(nsecs);
|
|
||||||
rcu_idle_exit();
|
|
||||||
tick_nohz_idle_exit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void cpu_idle(void)
|
|
||||||
{
|
|
||||||
cpu_tasks[current_thread_info()->cpu].pid = os_getpid();
|
cpu_tasks[current_thread_info()->cpu].pid = os_getpid();
|
||||||
default_idle();
|
nsecs = disable_timer();
|
||||||
|
idle_sleep(nsecs);
|
||||||
|
local_irq_enable();
|
||||||
}
|
}
|
||||||
|
|
||||||
int __cant_sleep(void) {
|
int __cant_sleep(void) {
|
||||||
|
|
Loading…
Reference in a new issue