diff options
author | Jeff Dike <jdike@addtoit.com> | 2007-10-16 04:27:25 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-16 12:43:08 -0400 |
commit | d2753a6d199791a6abc75d9f657e3457fe61705f (patch) | |
tree | c4cda30f216d6c045ca2b83bee1fa6bc4dfc3de3 /arch/um/include/os.h | |
parent | 791a644a8d73a9b95515f074afbb3caa0a9964fa (diff) |
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/include/os.h')
-rw-r--r-- | arch/um/include/os.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/um/include/os.h b/arch/um/include/os.h index a6d80721d3c4..e4f2fe11ba50 100644 --- a/arch/um/include/os.h +++ b/arch/um/include/os.h | |||
@@ -254,6 +254,7 @@ extern void os_dump_core(void); | |||
254 | extern int switch_timers(int to_real); | 254 | extern int switch_timers(int to_real); |
255 | extern void idle_sleep(int secs); | 255 | extern void idle_sleep(int secs); |
256 | extern int set_interval(void); | 256 | extern int set_interval(void); |
257 | extern int timer_one_shot(int ticks); | ||
257 | extern void disable_timer(void); | 258 | extern void disable_timer(void); |
258 | extern void uml_idle_timer(void); | 259 | extern void uml_idle_timer(void); |
259 | extern unsigned long long os_nsecs(void); | 260 | extern unsigned long long os_nsecs(void); |