uml: fix !NO_HZ busy-loop
authorJeff Dike <jdike@addtoit.com>
Thu, 29 Nov 2007 00:21:51 +0000 (16:21 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Thu, 29 Nov 2007 17:24:53 +0000 (09:24 -0800)
commit364e3a3d8a26aae058cf1c257457ad1f6b1cfe4c
tree1e5c04d671c5fcc8c2e25c37b08378e95a7e4e11
parent9fc89c2dea7ca7915e6606e49167cdca2f3c4e30
uml: fix !NO_HZ busy-loop

With NO_HZ disabled, the UML idle loop effectively becomes a busy loop, as
it will sleep for no time.

The cause was forgetting to restart the tick after waking up from sleep.
It was disabled before sleeping, and the remaining time used as the
interval to sleep.  So, the tick needs to be restarted when nanosleep
finishes.

This is done by introducing after_sleep_interval, which is empty in the
NO_HZ case, but which sets the tick starting in the !NO_HZ case.

Signed-off-by: Jeff Dike <jdike@linux.intel.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/um/os-Linux/time.c