mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: john stultz <johnstul@us.ibm.com>
To: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>,
	linux-kernel@vger.kernel.org, mingo@elte.hu, tglx@linutronix.de,
	akpm@linux-foundation.org
Subject: Re: [PATCH] clocksource: setup mult_orig in clocksource_enable()
Date: Mon, 15 Jun 2009 14:55:42 -0700	[thread overview]
Message-ID: <1245102942.7505.25.camel@localhost.localdomain> (raw)
In-Reply-To: <20090615200456.GA31202@linux-sh.org>

On Tue, 2009-06-16 at 05:04 +0900, Paul Mundt wrote:
> On Mon, Jun 15, 2009 at 12:08:37PM -0700, john stultz wrote:
> > On Sun, 2009-06-14 at 19:20 +0900, Magnus Damm wrote:
> > > On Sat, Jun 13, 2009 at 8:56 AM, john stultz<johnstul@us.ibm.com> wrote:
> > > > On Thu, 2009-06-11 at 14:51 +0900, Magnus Damm wrote:
> > > >> I can't think of any way that would work. The clock frequency can be
> > > >> changed while the clock is disabled. And we can only know the rate
> > > >> after enabling the clock, see these lines from include/linux/clk.h:
> > > >>
> > > >> /**
> > > >>  * clk_get_rate - obtain the current clock rate (in Hz) for a clock source.
> > > >>  *              This is only valid once the clock source has been enabled.
> > > >>  * @clk: clock source
> > > >>  */
> > > >> unsigned long clk_get_rate(struct clk *clk);
> > > >
> > > > Hrmm.. Yuck.
> > > >
> > > > Is this really expected behavior that a clk would change frequencies
> > > > between uses as a clocksource?
> > > 
> > > Yes, I think so. The clock frequency can change through cpufreq or
> > > clk_set_rate().
> > 
> > But they do not change freq (through cpufreq or anything else) after the
> > enable() call, right? That would be pretty critical. Otherwise they'd
> > need to be disqualified like we do the TSC on x86.
> > 
> This is a bit tricky, the clock needs to be able to adjust its parent
> divisors/multipliers in order to maintain its current frequency if a
> parent clock changes frequency. We do not presently prohibit a frequency
> change that deviates from the current frequency on these clocks, but
> this would be trivially handled by setting a fixed rate flag for those
> clocks. This sort of logic is necessary to block frequency changes in the
> parent clock topology that would throw the child clock's frequency out of
> sync. Note that in the general case we do not want to disable frequency
> changes on enabled clocks, enabled clocks only need to know whether they
> can handle a frequency change or not without destabilizing the system.

Any change to the freq mult value in the clocksource would be
destabilizing. So I'd advise pretty strongly to make sure that clk's
being used as clocksources cannot change frequency once they're enabled
and in use.

thanks
-john


  reply	other threads:[~2009-06-15 21:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-01  5:45 Magnus Damm
2009-05-02  9:48 ` [tip:timers/clocksource] " tip-bot for Magnus Damm
2009-06-10 21:04 ` [PATCH] " john stultz
2009-06-11  5:51   ` Magnus Damm
2009-06-12 23:56     ` john stultz
2009-06-14 10:20       ` Magnus Damm
2009-06-15 19:08         ` john stultz
2009-06-15 20:04           ` Paul Mundt
2009-06-15 21:55             ` john stultz [this message]
2009-06-16  2:42           ` 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=1245102942.7505.25.camel@localhost.localdomain \
    --to=johnstul@us.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=lethal@linux-sh.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=mingo@elte.hu \
    --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

all inboxes | Powered by JetHome®