linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Stultz <john.stultz@linaro.org>
To: lkml <linux-kernel@vger.kernel.org>
Cc: John Stultz <john.stultz@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Richard Cochran <richardcochran@gmail.com>
Subject: [GIT PULL][PATCH 0/7] Reduce timekeeping lock hold time
Date: Mon, 27 Feb 2012 16:29:27 -0800	[thread overview]
Message-ID: <1330388974-27793-1-git-send-email-john.stultz@linaro.org> (raw)

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@linutronix.de>
CC: Eric Dumazet <eric.dumazet@gmail.com>
CC: Richard Cochran <richardcochran@gmail.com>

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


             reply	other threads:[~2012-02-28  0:31 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-28  0:29 John Stultz [this message]
2012-02-28  0:29 ` [PATCH 1/7] time: Condense timekeeper.xtime into xtime_sec John Stultz
2012-02-28  8:06   ` Ingo Molnar
2012-02-28  8:17     ` John Stultz
2012-02-28  8:30       ` Ingo Molnar
2012-02-28  0:29 ` [PATCH 2/7] time: Rework timekeeping functions to take timekeeper ptr as argument John Stultz
2012-02-28  0:29 ` [PATCH 3/7] time: Split timekeeper lock into separate reader/writer locks John Stultz
2012-02-28  8:08   ` Ingo Molnar
2012-02-28  0:29 ` [PATCH 4/7] time: Update timekeeper structure using a local shadow John Stultz
2012-02-28  8:12   ` Ingo Molnar
2012-02-28  0:29 ` [PATCH 5/7] time: Shadow cycle_last in timekeeper structure John Stultz
2012-02-28  8:16   ` Ingo Molnar
2012-02-28  0:29 ` [PATCH 6/7] time: Reduce timekeeper read lock hold time John Stultz
2012-02-28  0:29 ` [PATCH 7/7] time: Convert the timekeeper's wlock to a raw_spin_lock John Stultz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1330388974-27793-1-git-send-email-john.stultz@linaro.org \
    --to=john.stultz@linaro.org \
    --cc=eric.dumazet@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=richardcochran@gmail.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).