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

From: Paul E. McKenney
Date: Mon Jun 27 2016 - 19:56:26 EST


On Sun, Jun 26, 2016 at 09:22:36PM -0700, Paul E. McKenney wrote:
> On Fri, Jun 24, 2016 at 02:32:00PM -0000, Thomas Gleixner wrote:
> > 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,
>
> And this series avoids the strange SRCU behavior that I saw with the
> last version. So looks to be getting there!
>
> I will be torturing it more vigorously, but looking good so far.

And from RCU and rcutorture perspectives:

Tested-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>

Thanx, Paul

> > 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(-)
> >
> >