public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: lkml <linux-kernel@vger.kernel.org>
Cc: rmk+lkml@arm.linux.org.uk, cooloney@kernel.org, starvik@axis.com,
	takata@linux-m32r.org, geert@linux-m68k.org,
	Roman Zippel <zippel@linux-m68k.org>,
	lethal@linux-sh.org, Magnus Damm <magnus.damm@gmail.com>,
	wli@holomorphy.com, chris@zankel.net,
	Thomas Gleixner <tglx@linutronix.de>
Subject: [RFC][PATCH 0/10] Convert the remaining !GENERIC_TIME architectures to use the generic timekeeping core.
Date: Wed, 28 Jan 2009 20:05:26 -0800	[thread overview]
Message-ID: <1233201926.6895.25.camel@localhost.localdomain> (raw)

Hello,
	Its been two and a half years since the GENERIC_TIME infrastructure
landed. It allowed architectures that have free running counters to only
have to provide a clocksource driver and leave the rest of the
timekeeping management to generic code.

So far out of the 23 architectures we've fully converted 15 of them over
to GENERIC_TIME. The remaining 8 have in some cases been able to
convert, but not fully. The issue that keeps most architectures from
converting is that they do not have free running counters. They instead
use the counter on their tick timer to determine their inter-tick time.
This counter usually wraps every interrupt, so its not really efficient
to use as a clocksource.

This has created some difficulty as the generic timekeeping core has had
to deal with both GENERIC_TIME arches as well as !GENERIC_TIME arches,
and since it didn't manage 100% of the calculation in the !GENERIC_TIME
case, we've been limited in some of the changes we could make.

So since these last remaining architectures are unlikely to be able to
fully convert to GENERIC_TIME as it stands, the generic core should try
to adopt to their needs so we can bring them into the fold and reduce
code duplication.

The solution is to provide a arch callout from the generic timekeeping
core: arch_gettimeoffset().  On architectures that do not provide a
clocksource, the jiffies clocksource is used, and arch_gettimeoffset is
added in to create finer grained inter-tick time.

The patchset is split up into three parts.
1) Introducing the arch_gettimeoffset infrastructure to the timekeeping
core.
2) 8 patches to convert the remaining arches over to use
arch_gettimeoffset()
3) Finally, Removing all conditionals and references to GENERIC_TIME.

The full patchset reduces the kernel by about 550 lines.

 42 files changed, 139 insertions(+), 684 deletions(-)

Any thoughts or feedback would be appreciated. I've been unable to test
the arch conversions, so any help in getting those right would be
appreciated. I expect this will probably take a few tries.

And credits to Roman for initially suggesting the idea quite awhile
back.

thanks
-john


             reply	other threads:[~2009-01-29  4:05 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-01-29  4:05 john stultz [this message]
2009-01-29  4:06 ` [RFC][PATCH 1/10] Create arch_gettimeoffset infrastructure for use in the generic timekeeping core john stultz
2009-01-29  4:07   ` [RFC][PATCH 2/10] Convert arm to use arch_getoffset() infrastructure john stultz
2009-01-29  4:07     ` [RFC][PATCH 3/10] Convert blackfin " john stultz
2009-01-29  4:08       ` [RFC][PATCH 4/10] Convert cris " john stultz
2009-01-29  4:08         ` [RFC][PATCH 5/10] Convert m32r " john stultz
2009-01-29  4:09           ` [RFC][PATCH 6/10] Convert m68k " john stultz
2009-01-29  4:10             ` [RFC][PATCH 7/10] Convert sh " john stultz
2009-01-29  4:10               ` [RFC][PATCH 8/10] Convert sparc " john stultz
2009-01-29  4:11                 ` [RFC][PATCH 9/10] Convert xtensa " john stultz
2009-01-29  4:11                   ` [RFC][PATCH 10/10] Remove CONFIG_GENERIC_TIME john stultz
2009-01-29  4:36                 ` [RFC][PATCH 8/10] Convert sparc to use arch_getoffset() infrastructure David Miller
2009-01-29  5:36               ` [RFC][PATCH 7/10] Convert sh " Paul Mundt

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=1233201926.6895.25.camel@localhost.localdomain \
    --to=johnstul@us.ibm.com \
    --cc=chris@zankel.net \
    --cc=cooloney@kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=rmk+lkml@arm.linux.org.uk \
    --cc=starvik@axis.com \
    --cc=takata@linux-m32r.org \
    --cc=tglx@linutronix.de \
    --cc=wli@holomorphy.com \
    --cc=zippel@linux-m68k.org \
    /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