linux-stable/arch/um/os-Linux
Anton Ivanov 2eb5f31bc4 um: Switch clocksource to hrtimers
UML is using an obsolete itimer call for
all timers and "polls" for kernel space timer firing
in its userspace portion resulting in a long list
of bugs and incorrect behaviour(s). It also uses
ITIMER_VIRTUAL for its timer which results in the
timer being dependent on it running and the cpu
load.

This patch fixes this by moving to posix high resolution
timers firing off CLOCK_MONOTONIC and relaying the timer
correctly to the UML userspace.

Fixes:
 - crashes when hosts suspends/resumes
 - broken userspace timers - effecive ~40Hz instead
   of what they should be. Note - this modifies skas behavior
   by no longer setting an itimer per clone(). Timer events
   are relayed instead.
 - kernel network packet scheduling disciplines
 - tcp behaviour especially under load
 - various timer related corner cases

Finally, overall responsiveness of userspace is better.

Signed-off-by: Thomas Meyer <thomas@m3y3r.de>
Signed-off-by: Anton Ivanov <aivanov@brocade.com>
[rw: massaged commit message]
Signed-off-by: Richard Weinberger <richard@nod.at>
2015-11-06 22:54:49 +01:00
..
drivers Merge branch 'for-linus-4.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml 2015-06-28 13:55:08 -07:00
skas um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
aio.c um: Cleanup SIGTERM handling 2013-09-07 10:56:58 +02:00
elf_aux.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
execvp.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
file.c um: Include sys/types.h for makedev(), major(), minor() 2015-06-25 22:42:21 +02:00
helper.c um: Fix waitpid() usage in helper code 2015-10-19 22:53:37 +02:00
irq.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
main.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
Makefile um: use the right ifdef around exports in user_syms.c 2012-03-25 00:29:55 +01:00
mem.c uml: Simplify tempdir logic. 2014-04-20 23:10:44 +02:00
process.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
registers.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
sigio.c um: Cleanup SIGTERM handling 2013-09-07 10:56:58 +02:00
signal.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
start_up.c um: Remove SKAS3/4 support 2015-04-13 21:00:53 +02:00
time.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
tty.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
umid.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
user_syms.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
util.c um: Cleanup SIGTERM handling 2013-09-07 10:56:58 +02:00