From: Len Brown <len.brown@intel.com>
To: cpufreq@lists.linux.org.uk
Cc: Dominik Brodowski <linux@dominikbrodowski.net>,
Ryan Underwood <nemesis@icequake.net>
Subject: Re: transition latency
Date: Mon, 2 Oct 2006 01:07:51 -0400 [thread overview]
Message-ID: <200610020107.51825.len.brown@intel.com> (raw)
In-Reply-To: <20061002022543.GF19253@isilmar.linta.de>
On Sunday 01 October 2006 22:25, Dominik Brodowski wrote:
> On Thu, Sep 28, 2006 at 07:32:47PM -0500, Ryan Underwood wrote:
> >
> > What's the purpose of the transition_latency field with respect to the
> > cpufreq infrastructure? Should I be setting this to:
> > * the time it takes for my set_cpu_state function to execute and return
> > * the latency between the call to set_cpu_state and the actual CPU speed
> > change
> > * the time it takes for the hardware to respond to MY request (inside
> > set_cpu_state function) to change speeds
> >
> > Just a little confused. Here the problem is that my set_cpu_state
> > function could take up to 35ms to execute, but the actual frequency
> > transition ( a component of that function) happens within 7ms. 10ms is
> > the ondemand/conservative governors' upper limit for transition latency,
> > so if I take the whole function into account, those governors reject my
> > driver.
>
> My original intention was this:
>
> <timer starts>
> - "system freeze" / IRQs off / ... (if needed)
> - actual setting of the new frequency
> - "system unfreeze" / IRQs on
> - waiting until it is safe to return, and until
> it would also be safe to set the frequency anew.
> <timer ends>
>
> Note that 3 and 4 might be ordered differently in "real life". Also I'm not
> totally sure that this "latency" is really what we need for ondemand et al.
> So if anyone has a better input on what "latency" should mean here, speak up
> please.
Just for reference, the ACPI spec _PSS and _TSS define latency this way:
"Indicates the worst case latency in microseconds that the CPU
is unavailable during a transition from a (performance) state to this (performance) state".
ie. it is the maximum period that the processor might execute no instructions
when you make this transition.
Which appears to correspond roughly to this one:
> > * the time it takes for my set_cpu_state function to execute and return
On Intel processors, you can ask the hardware for a new state right away --
even if it is internally still ramping the voltage and speed from the previous request.
cheers,
-Len
ps. I think you mean 10us above, not 10ms
next prev parent reply other threads:[~2006-10-02 5:07 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-29 0:32 transition latency Ryan Underwood
2006-10-02 2:25 ` Dominik Brodowski
2006-10-02 5:07 ` Len Brown [this message]
2006-10-02 16:06 ` Ryan Underwood
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=200610020107.51825.len.brown@intel.com \
--to=len.brown@intel.com \
--cc=cpufreq@lists.linux.org.uk \
--cc=lenb@kernel.org \
--cc=linux@dominikbrodowski.net \
--cc=nemesis@icequake.net \
/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.