2014-01-29 23:39:45

by Paul E. McKenney

[permalink] [raw]
Subject: [GIT PULL timers] Timer-wheel bandaids^Wcommits

Hello, Ingo,

This pull request contains latency bandaids^Woptimizations to the
timer-wheel code that are useful in conjunction with NO_HZ_FULL Kconfig
option. These optimizations reduce the jiffy-by-jiffy looping in cases
where there is either zero or one timers in the timer wheel, which is
a common case for NO_HZ_FULL "worker" CPUs that run almost entirely
in usermode for a single task.

Each of these commits has at least two Reviewed-by, one Acked-by, and
one Tested-by tag, so they are ready for more extensive testing in -tip.

Thanx, Paul

The following changes since commit 00e2bcd6d35f59fce7fa0e76e24d08f74c6a8506:

clocksource: Timer-sun5i: Switch to sched_clock_register() (2014-01-19 13:23:23 +0100)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/timers

for you to fetch changes up to 6f089d0be7fef9705b3a7755b05d1092e772b910:

timers: Make internal_add_timer() update ->next_timer if ->active_timers == 0 (2014-01-29 15:25:16 -0800)

----------------------------------------------------------------
Oleg Nesterov (1):
timers: Make internal_add_timer() update ->next_timer if ->active_timers == 0

Paul E. McKenney (4):
timers: Track total number of timers in list
timers: Reduce __run_timers() latency for empty list
timers: Reduce future __run_timers() latency for newly emptied list
timers: Reduce future __run_timers() latency for first add to empty list

kernel/timer.c | 30 ++++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)


2014-01-30 05:44:58

by Preeti Murthy

[permalink] [raw]
Subject: Re: [GIT PULL timers] Timer-wheel bandaids^Wcommits

Hi Paul,

The commit id:e1d690cdc07637131ba4334: timers: Track total number of
timers in list has
a minor glitch in the changelog.

I am referring to your
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
rcu/timers branch.

"even if ->active_timers is zero, there might well be *non-deferrable*
timers in the list"

s/non-deferrable/deferrable.

Thanks

Regards
Preeti U Murthy

On Thu, Jan 30, 2014 at 5:09 AM, Paul E. McKenney
<[email protected]> wrote:
> Hello, Ingo,
>
> This pull request contains latency bandaids^Woptimizations to the
> timer-wheel code that are useful in conjunction with NO_HZ_FULL Kconfig
> option. These optimizations reduce the jiffy-by-jiffy looping in cases
> where there is either zero or one timers in the timer wheel, which is
> a common case for NO_HZ_FULL "worker" CPUs that run almost entirely
> in usermode for a single task.
>
> Each of these commits has at least two Reviewed-by, one Acked-by, and
> one Tested-by tag, so they are ready for more extensive testing in -tip.
>
> Thanx, Paul
>
> The following changes since commit 00e2bcd6d35f59fce7fa0e76e24d08f74c6a8506:
>
> clocksource: Timer-sun5i: Switch to sched_clock_register() (2014-01-19 13:23:23 +0100)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/timers
>
> for you to fetch changes up to 6f089d0be7fef9705b3a7755b05d1092e772b910:
>
> timers: Make internal_add_timer() update ->next_timer if ->active_timers == 0 (2014-01-29 15:25:16 -0800)
>
> ----------------------------------------------------------------
> Oleg Nesterov (1):
> timers: Make internal_add_timer() update ->next_timer if ->active_timers == 0
>
> Paul E. McKenney (4):
> timers: Track total number of timers in list
> timers: Reduce __run_timers() latency for empty list
> timers: Reduce future __run_timers() latency for newly emptied list
> timers: Reduce future __run_timers() latency for first add to empty list
>
> kernel/timer.c | 30 ++++++++++++++++++++++++++++--
> 1 file changed, 28 insertions(+), 2 deletions(-)
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/

2014-01-30 08:48:42

by Paul E. McKenney

[permalink] [raw]
Subject: Re: [GIT PULL timers] Timer-wheel bandaids^Wcommits

On Thu, Jan 30, 2014 at 11:14:57AM +0530, Preeti Murthy wrote:
> Hi Paul,
>
> The commit id:e1d690cdc07637131ba4334: timers: Track total number of
> timers in list has
> a minor glitch in the changelog.
>
> I am referring to your
> git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git
> rcu/timers branch.
>
> "even if ->active_timers is zero, there might well be *non-deferrable*
> timers in the list"
>
> s/non-deferrable/deferrable.

Good catch, fixed! New pull request below, very similar to the last one.

Thanx, Paul
------------------------------------------------------------------------

Hello, Ingo,

This pull request contains latency bandaids^Woptimizations to the
timer-wheel code that are useful in conjunction with NO_HZ_FULL Kconfig
option. These optimizations reduce the jiffy-by-jiffy looping in cases
where there is either zero or one timers in the timer wheel, which is
a common case for NO_HZ_FULL "worker" CPUs that run almost entirely
in usermode for a single task.

Each of these commits has at least two Reviewed-by, one Acked-by, and
one Tested-by tag, so they are ready for more extensive testing in -tip.

Thanx, Paul

The following changes since commit 00e2bcd6d35f59fce7fa0e76e24d08f74c6a8506:

clocksource: Timer-sun5i: Switch to sched_clock_register() (2014-01-19 13:23:23 +0100)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/timers

for you to fetch changes up to 73bffac4cf615295055df086e95d0284754aa708

timers: Make internal_add_timer() update ->next_timer if ->active_timers == 0 (2014-01-30 00:41:53 -0800)

----------------------------------------------------------------
Oleg Nesterov (1):
timers: Make internal_add_timer() update ->next_timer if ->active_timers == 0

Paul E. McKenney (4):
timers: Track total number of timers in list
timers: Reduce __run_timers() latency for empty list
timers: Reduce future __run_timers() latency for newly emptied list
timers: Reduce future __run_timers() latency for first add to empty list

kernel/timer.c | 30 ++++++++++++++++++++++++++++--
1 file changed, 28 insertions(+), 2 deletions(-)