• Linus Torvalds's avatar
    Merge tag 'timers-core-2020-08-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b6b178e3
    Linus Torvalds authored
    Pull more timer updates from Thomas Gleixner:
     "A set of posix CPU timer changes which allows to defer the heavy work
      of posix CPU timers into task work context. The tick interrupt is
      reduced to a quick check which queues the work which is doing the
      heavy lifting before returning to user space or going back to guest
      mode. Moving this out is deferring the signal delivery slightly but
      posix CPU timers are inaccurate by nature as they depend on the tick
      so there is no real damage. The relevant test cases all passed.
    
      This lifts the last offender for RT out of the hard interrupt context
      tick handler, but it also has the general benefit that the actual
      heavy work is accounted to the task/process and not to the tick
      interrupt itself.
    
      Further optimizations are possible to break long sighand lock hold and
      interrupt disabled (on !RT kernels) times when a massive amount of
      posix CPU timers (which are unpriviledged) is armed for a
      task/process.
    
      This is currently only enabled for x86 because the architecture has to
      ensure that task work is handled in KVM before entering a guest, which
      was just established for x86 with the new common entry/exit code which
      got merged post 5.8 and is not the case for other KVM architectures"
    
    * tag 'timers-core-2020-08-14' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
      x86: Select POSIX_CPU_TIMERS_TASK_WORK
      posix-cpu-timers: Provide mechanisms to defer timer handling to task_work
      posix-cpu-timers: Split run_posix_cpu_timers()
    b6b178e3
Kconfig 94.4 KB