linux/arch/um/kernel
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
..
skas um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
asm-offsets.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
config.c.in um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
dyn.lds.S UML: normalize global variables exported by vmlinux.lds 2013-07-03 16:07:34 -07:00
early_printk.c early_printk: consolidate random copies of identical code 2013-04-29 18:28:13 -07:00
exec.c um: get_safe_registers() should be done in flush_thread(), not start_thread() 2012-11-28 21:46:03 -05:00
exitcode.c uml: check length in exitcode_proc_write() 2013-10-30 12:24:49 -07:00
gmon_syms.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
gprof_syms.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
initrd.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
irq.c um: Remove broken SMP support 2015-04-13 21:00:58 +02:00
kmsg_dump.c um: add a kmsg_dumper 2015-04-13 21:17:37 +02:00
ksyms.c um: Move syscall() declaration into os.h 2015-05-31 13:14:07 +02:00
maccess.c um: Implement probe_kernel_read() 2013-09-07 10:38:34 +02:00
Makefile um: add a kmsg_dumper 2015-04-13 21:17:37 +02:00
mem.c um: Remove broken highmem support 2015-04-13 21:01:02 +02:00
physmem.c um: Use char[] for linker script address declarations 2015-05-31 13:14:06 +02:00
process.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
ptrace.c um: Don't pollute kernel namespace with uapi 2015-06-25 22:44:11 +02:00
reboot.c um: Remove SKAS3/4 support 2015-04-13 21:00:53 +02:00
sigio.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
signal.c um: Fix do_signal() prototype 2015-07-07 10:58:54 +02:00
stacktrace.c um: Add support for CONFIG_STACKTRACE 2014-10-13 21:46:25 +02:00
syscall.c x86, um: switch to generic fork/vfork/clone 2012-11-28 22:13:44 -05:00
sysrq.c um: Remove dead code from stacktrace 2015-04-13 21:00:40 +02:00
time.c um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
tlb.c um: Report host OOM more nicely 2015-11-06 22:49:12 +01:00
trap.c um: Fix kernel mode fault condition 2015-10-19 22:53:37 +02:00
um_arch.c um: Use char[] for linker script address declarations 2015-05-31 13:14:06 +02:00
umid.c um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
uml.lds.S UML: normalize global variables exported by vmlinux.lds 2013-07-03 16:07:34 -07:00
vmlinux.lds.S