summaryrefslogtreecommitdiffstats
path: root/arch/um/kernel/process.c
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2007-10-16 10:27:25 +0200
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-16 18:43:08 +0200
commitd2753a6d199791a6abc75d9f657e3457fe61705f (patch)
treec4cda30f216d6c045ca2b83bee1fa6bc4dfc3de3 /arch/um/kernel/process.c
parentuml: clocksource support (diff)
downloadlinux-d2753a6d199791a6abc75d9f657e3457fe61705f.tar.xz
linux-d2753a6d199791a6abc75d9f657e3457fe61705f.zip
uml: tickless support
Enable tickless support. CONFIG_TICK_ONESHOT and CONFIG_NO_HZ are enabled. itimer_clockevent gets CLOCK_EVT_FEAT_ONESHOT and an implementation of .set_next_event. CONFIG_UML_REAL_TIME_CLOCK goes away because it only makes sense when there is a clock ticking away all the time. timer_handler now just calls do_IRQ once without trying to figure out how many ticks to emulate. The idle loop now needs to turn ticking on and off. Userspace ticks keep happening as usual. However, the userspace loop keep track of when the next wakeup should happen and suppresses process ticks until that happens. Signed-off-by: Jeff Dike <jdike@linux.intel.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/um/kernel/process.c')
-rw-r--r--arch/um/kernel/process.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
index 56d75afedbf7..aef494b6b81a 100644
--- a/arch/um/kernel/process.c
+++ b/arch/um/kernel/process.c
@@ -13,6 +13,7 @@
#include "linux/ptrace.h"
#include "linux/random.h"
#include "linux/sched.h"
+#include "linux/tick.h"
#include "linux/threads.h"
#include "asm/pgtable.h"
#include "asm/uaccess.h"
@@ -244,9 +245,11 @@ void default_idle(void)
if (need_resched())
schedule();
+ tick_nohz_stop_sched_tick();
switch_timers(1);
idle_sleep(10);
switch_timers(0);
+ tick_nohz_restart_sched_tick();
}
}