• Anton Ivanov's avatar
    um: Switch clocksource to hrtimers · 2eb5f31b
    Anton Ivanov authored
    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: default avatarThomas Meyer <thomas@m3y3r.de>
    Signed-off-by: default avatarAnton Ivanov <aivanov@brocade.com>
    [rw: massaged commit message]
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    2eb5f31b
os.h 10.3 KB