[GIT PULL][PATCH 0/7] Reduce timekeeping lock hold time

From: John Stultz
Date: Mon Feb 27 2012 - 19:31:09 EST


Here is the second half of the timekeeping cleanups (the first
half are already in -tip) as well as some changes to reduce the
timekeeping lock hold times.

This work grew out of some of Eric Dumazet's and Thomas Gleixner's
suggestions, after they noticed the xtime_lock hold time could be
on the long side.

The basic idea is that we keep a shadow copy of the timekeeper
stucture, which can be updated while readers are accessing the
time. Then we only have to block readers as we switch to the
newly updated structure.

I've done some limited testing, but it would be good to get
this in -tip early, so we can be sure it gets enough testing
before 3.4 is released.

CC: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
CC: Eric Dumazet <eric.dumazet@xxxxxxxxx>
CC: Richard Cochran <richardcochran@xxxxxxxxx>

thanks
-john

Thomas,

These patches are available in the git repository at:
git://git.linaro.org/people/jstultz/linux.git fortglx/3.4/time

John Stultz (7):
time: Condense timekeeper.xtime into xtime_sec
time: Rework timekeeping functions to take timekeeper ptr as argument
time: Split timekeeper lock into separate reader/writer locks
time: Update timekeeper structure using a local shadow
time: Shadow cycle_last in timekeeper structure
time: Reduce timekeeper read lock hold time
time: Convert the timekeeper's wlock to a raw_spin_lock

kernel/time/timekeeping.c | 414 ++++++++++++++++++++++++++-------------------
1 files changed, 243 insertions(+), 171 deletions(-)

--
1.7.3.2.146.gca209

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/