[GIT pull] timers/core for v5.9-rc1

From: Thomas Gleixner
Date: Fri Aug 14 2020 - 12:00:47 EST


Linus,

please pull the latest timers/core branch from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git timers-core-2020-08-14

up to: 0099808553ad: x86: Select POSIX_CPU_TIMERS_TASK_WORK

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.

Thanks,

tglx

------------------>
Thomas Gleixner (3):
posix-cpu-timers: Split run_posix_cpu_timers()
posix-cpu-timers: Provide mechanisms to defer timer handling to task_work
x86: Select POSIX_CPU_TIMERS_TASK_WORK