[patch V3 00/22] timer: Refactor the timer wheel

From: Thomas Gleixner
Date: Fri Jun 24 2016 - 10:40:28 EST


This is the third version of the timer wheel rework series. The previous
versions can be found here:

V1: http://lkml.kernel.org/r/20160613070440.950649741@xxxxxxxxxxxxx
V2: http://lkml.kernel.org/r/20160617121134.417319325@xxxxxxxxxxxxx

The series is also available in git:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git WIP.timers

Changes vs. V2:

- Removed the 1000Hz granularity reduction to 4ms. Eric explained that
datacenter workloads require the granularity in the first level wheel.

- Fixed the typo in tilepro.

- Converted sigtimedwait() to hrtimers

- To avoid the cascading I extended the wheel by another level. This removes
the rarely executed cascading code path, but increases the storage size for
HZ>100 slightly. If the tiny folks care, there is an simple option to cut
the storage size in half for the price of reduced granularity.

Thanks,

tglx

----
arch/x86/kernel/apic/x2apic_uv_x.c | 4
arch/x86/kernel/cpu/mcheck/mce.c | 4
block/genhd.c | 5
drivers/cpufreq/powernv-cpufreq.c | 5
drivers/mmc/host/jz4740_mmc.c | 2
drivers/net/ethernet/tile/tilepro.c | 4
drivers/power/bq27xxx_battery.c | 5
drivers/tty/metag_da.c | 4
drivers/tty/mips_ejtag_fdc.c | 4
drivers/usb/host/ohci-hcd.c | 1
drivers/usb/host/xhci.c | 2
include/linux/list.h | 10
include/linux/timer.h | 34 -
kernel/signal.c | 24
kernel/time/tick-internal.h | 1
kernel/time/tick-sched.c | 46 -
kernel/time/timer.c | 1096 +++++++++++++++++++++---------------
lib/random32.c | 1
net/ipv4/inet_connection_sock.c | 7
net/ipv4/inet_timewait_sock.c | 5
20 files changed, 734 insertions(+), 530 deletions(-)