From: John Stultz <john.stultz@linaro.org>
To: Feng Tang <feng.tang@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@elte.hu>,
"H. Peter Anvin" <hpa@linux.intel.com>,
x86@kernel.org, Len Brown <lenb@kernel.org>,
"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
linux-kernel@vger.kernel.org, gong.chen@linux.intel.com
Subject: Re: [RFC PATCH v2 4/4] timekeeping: utilize the suspend-nonstop clocksource to count suspended time
Date: Tue, 05 Mar 2013 14:47:27 +0800 [thread overview]
Message-ID: <513594FF.6040106@linaro.org> (raw)
In-Reply-To: <20130305063830.GB5340@feng-snb>
On 03/05/2013 02:38 PM, Feng Tang wrote:
> On Tue, Mar 05, 2013 at 02:27:34PM +0800, John Stultz wrote:
>
>>
>> So this might be ok for an initial implementation, as on the
>> non-stop-tsc hardware, the TSC is the best clocksource available.
>> One concern long term is that there may be cases where the non-stop
>> clocksource is not the most performant clocksource on a system. In
>> that case, we may want to use a non-stop clocksource that is not the
>> current timekeeping clocksource. So that may require some extra
>> clocksource core interfaces to access the non-stop clocksource
>> instead of using the timekeeper's clocksource, also we'll have to be
>> sure to use something other then cycle_last in that case, since
>> we'll need to read the nonstop clocksource at suspend, rather then
>> trusting that forward_now updates cycle_last as is done here.
> Yeah, I just realized this when Jason mentioned the counter_32k on
> OMAP.
>
> So for next step, we may add something in timekeeping.c like
> static struct clocksource *suspend_time_cs;
> read and save its counter righer before entering and after getting
> out of suspended state. And create a new struct which includes
> all time suspend related flags, counters, pointers, make it as a
> member of struct timekeeper. Comments?
I'd maybe add it to the clocksource code rather then the timekeeper.
Have a clocksource_nonstop_clock() accessor which returns a pointer to
the highest rated clocksource in the clocksource list that has the
nonstop flag (updating the pointer at registration time, rather then
scanning the list every time).
That way if we want, we can later define clocksource_nonstop_clock() as
null, and let the complier optimize out the extra complexity in the
resume path if the arch doesn't support nonstop clocksource.
thanks
-john
next prev parent reply other threads:[~2013-03-05 6:47 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-05 2:27 [RFC PATCH v2 0/4] Add support for S3 non-stop TSC support Feng Tang
2013-03-05 2:27 ` [RFC PATCH v2 1/4] x86: Add cpu capability flag X86_FEATURE_NONSTOP_TSC_S3 Feng Tang
2013-03-05 2:27 ` [RFC PATCH v2 2/4] clocksource: Add new feature flag CLOCK_SOURCE_SUSPEND_NOTSTOP Feng Tang
2013-03-05 2:27 ` [RFC PATCH v2 3/4] x86: tsc: Add support for new S3_NOTSTOP feature Feng Tang
2013-03-05 2:27 ` [RFC PATCH v2 4/4] timekeeping: utilize the suspend-nonstop clocksource to count suspended time Feng Tang
2013-03-05 6:27 ` John Stultz
2013-03-05 6:38 ` Feng Tang
2013-03-05 6:47 ` John Stultz [this message]
2013-03-05 6:59 ` Feng Tang
2013-03-05 3:53 ` [RFC PATCH v2 0/4] Add support for S3 non-stop TSC support Feng Tang
2013-03-05 4:32 ` Jason Gunthorpe
2013-03-05 6:17 ` John Stultz
2013-03-06 3:31 ` Feng Tang
2013-03-05 6:27 ` Feng Tang
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=513594FF.6040106@linaro.org \
--to=john.stultz@linaro.org \
--cc=feng.tang@intel.com \
--cc=gong.chen@linux.intel.com \
--cc=hpa@linux.intel.com \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rafael.j.wysocki@intel.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.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