All of lore.kernel.org
 help / color / mirror / Atom feed
From: tony@atomide.com (Tony Lindgren)
To: linux-arm-kernel@lists.infradead.org
Subject: [patch 07/16] arm: omap: Use clocksource based sched_clock
Date: Mon, 2 May 2011 01:10:28 -0700	[thread overview]
Message-ID: <20110502081028.GC3755@atomide.com> (raw)
In-Reply-To: <alpine.LFD.2.02.1104291616160.3005@ionos>

* Thomas Gleixner <tglx@linutronix.de> [110429 07:16]:
> On Fri, 29 Apr 2011, Tony Lindgren wrote:
> > * Thomas Gleixner <tglx@linutronix.de> [110429 05:25]:
> > > 
> > > The generic sched_clock implementation returns a jiffies based value
> > > as long as there is no clocksource registered. But the above does not
> > > fail in sched_clock() it fails in read_persistent_clock() which does
> > > 
> > >         last_cycles = cycles;
> > >         cycles = clocksource_32k.read(&clocksource_32k);
> > > 
> > > So the following change causes this:
> > > 
> > > -     .read           = omap_32k_read_dummy,
> > 
> > Ah right.
> >  
> > > Which leads to the question why you have a read_persistent_clock() at
> > > all if it always reads 0 via omap_32k_read_dummy ? Or is this meant
> > > just for the resume case? Then the above and the removal of
> > > omap_32k_read_dummy() needs to be undone.
> > 
> > The omap_32k_read_dummy needs to return 0 until the clocks are
> > enabled and the right read function is selected. The .read gets
> > then set in omap_init_clocksource_32k.
> > 
> > It would be nice to handle that in a generic way though,
> > I would assume the same issue exists for other platforms too.
> 
> static inline cycles_t clocksource_read_safe(struct clocksource *c)
> {
> 	return c->read ? c->read(c) : 0;
> }

That adds testing for it for each read.. So the current setup
is better.
 
> For the core timekeeping code that's a non issue as nothing should
> register a clocksource with an invalid read function pointer :)

Looks like omap_device code calls read_persistent_clock before
omap_init_clocksource_32k is run. I'll take a look and see if that
is needed when I refresh other omap init_early patches.

Anyways, currently nothing prevents calling read_persistent_clock
before it's initialized and a platform specific hack is needed.
Maybe the default should be clocksource_read_safe that gets
changed by the platform code when initializing?

Regards,

Tony

  reply	other threads:[~2011-05-02  8:10 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-23 20:54 [patch 00/16] arm: Replace arm sched_clock by clocksource based sched_clock Thomas Gleixner
2011-04-23 20:54 ` [patch 01/16] time: Provide clocksource based sched_clock() Thomas Gleixner
2011-04-23 21:33   ` Stephen Boyd
2011-04-23 21:40     ` Thomas Gleixner
2011-04-25  7:10   ` Kukjin Kim
2011-04-26 16:36   ` Stephen Boyd
2011-04-23 20:54 ` [patch 02/16] arm: plat-orion: Use clocksource based sched_clock Thomas Gleixner
2011-04-23 20:54 ` [patch 03/16] arm: s5p: " Thomas Gleixner
2011-04-23 21:33   ` Stephen Boyd
2011-04-23 21:41     ` Thomas Gleixner
2011-04-25  7:08   ` Kukjin Kim
2011-04-23 20:54 ` [patch 04/16] arm: davinci: " Thomas Gleixner
2011-04-26 15:40   ` Nori, Sekhar
2011-04-23 20:54 ` [patch 05/16] arm: ixp4xx: " Thomas Gleixner
2011-04-23 20:54 ` [patch 06/16] arm: mmp: " Thomas Gleixner
2011-04-23 20:54 ` [patch 07/16] arm: omap: " Thomas Gleixner
2011-04-29 11:57   ` Tony Lindgren
2011-04-29 12:28     ` Thomas Gleixner
2011-04-29 12:51       ` Tony Lindgren
2011-04-29 14:19         ` Thomas Gleixner
2011-05-02  8:10           ` Tony Lindgren [this message]
2011-04-23 20:54 ` [patch 08/16] arm: pxa: " Thomas Gleixner
2011-04-25 16:25   ` Eric
2011-04-26  7:23     ` Sascha Hauer
2011-04-26  7:26       ` Eric Miao
2011-04-23 20:54 ` [patch 09/16] arm: sa1100: " Thomas Gleixner
2011-04-23 20:54 ` [patch 10/16] arm: tegra: " Thomas Gleixner
2011-04-23 20:54 ` [patch 11/16] arm: u300: " Thomas Gleixner
2011-04-24  7:03   ` Linus Walleij
2011-04-23 20:54 ` [patch 12/16] arm: plat-iop: " Thomas Gleixner
2011-04-23 20:54 ` [patch 13/16] arm plat-mxc: " Thomas Gleixner
2011-04-26  7:23   ` Sascha Hauer
2011-04-23 20:54 ` [patch 14/16] arm: nomadik: " Thomas Gleixner
2011-04-24  7:04   ` Linus Walleij
2011-04-23 20:54 ` [patch 15/16] arm: versatile: " Thomas Gleixner
2011-04-23 20:54 ` [patch 16/16] arm: Remove sched_clock code Thomas Gleixner
2011-04-25  7:11   ` Kukjin Kim
2011-04-24  7:27 ` [patch 00/16] arm: Replace arm sched_clock by clocksource based sched_clock Linus Walleij
2011-04-25 19:10   ` john stultz
2011-04-26  7:45     ` Linus Walleij
2011-04-26  8:50       ` Tony Lindgren
2011-04-26  8:02   ` Thomas Gleixner
2011-04-29  9:46 ` Russell King - ARM Linux
2011-04-29 10:22   ` Thomas Gleixner
2011-04-29 10:32     ` Tony Lindgren
2011-04-29 17:01       ` Thomas Gleixner
2011-04-29 21:53         ` Linus Walleij
2011-04-29 21:57           ` Thomas Gleixner
2011-05-02  8:18             ` Tony Lindgren
2011-05-08 20:34             ` Linus Walleij
2011-06-13  2:32 ` Rob Herring

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=20110502081028.GC3755@atomide.com \
    --to=tony@atomide.com \
    --cc=linux-arm-kernel@lists.infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.