OpenCloudOS-Kernel/arch/um/include/shared
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
aio.h x86, um: take arch/um/include/* out of the way 2008-10-22 22:55:19 -07:00
arch.h um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
as-layout.h um: Move uml_postsetup in the init_thread stack 2015-04-13 21:17:44 +02:00
common-offsets.h nohz: Rename CONFIG_NO_HZ to CONFIG_NO_HZ_COMMON 2013-04-03 13:56:03 +02:00
elf_user.h x86, um: take arch/um/include/* out of the way 2008-10-22 22:55:19 -07:00
frame_kern.h um: Use get_signal() signal_setup_done() 2014-08-06 13:03:41 +02:00
init.h um: Remove copy&paste code from init.h 2015-05-31 22:17:08 +02:00
irq_kern.h um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
irq_user.h um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
kern.h um: trim kern.h 2011-11-02 14:15:07 +01:00
kern_util.h um: Fix do_signal() prototype 2015-07-07 10:58:54 +02:00
longjmp.h um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
mem.h x86, um: take arch/um/include/* out of the way 2008-10-22 22:55:19 -07:00
mem_user.h um: delete unnecessary bootmem struct page array 2014-10-13 17:15:09 +02:00
net_kern.h um: net: use eth_hw_addr_random() to generate random mac 2013-01-03 22:37:36 -08:00
net_user.h uml: UML net driver does not allow for vlans 2009-06-16 19:47:46 -07:00
os.h um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
ptrace_user.h um: unify ptrace_user.h 2011-11-02 14:15:27 +01:00
registers.h um: get rid of pointless include "..." where include <...> will do 2012-10-09 22:28:45 +02:00
sigio.h x86, um: take arch/um/include/* out of the way 2008-10-22 22:55:19 -07:00
timer-internal.h um: Switch clocksource to hrtimers 2015-11-06 22:54:49 +01:00
um_malloc.h um: get rid of kern_constants.h 2011-11-02 14:14:45 +01:00
user.h um: Stop abusing __KERNEL__ 2015-05-31 22:05:32 +02:00