mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Feng Tang <feng.tang@intel.com>
To: Thomas Gleixner <tglx@linutronix.de>,
	John Stultz <john.stultz@linaro.org>, Ingo Molnar <mingo@elte.hu>,
	"H. Peter Anvin" <hpa@linux.intel.com>,
	Jason Gunthorpe <jgunthorpe@obsidianresearch.com>,
	x86@kernel.org, Len Brown <lenb@kernel.org>,
	"Rafael J. Wysocki" <rafael.j.wysocki@intel.com>,
	linux-kernel@vger.kernel.org
Cc: gong.chen@linux.intel.com, Feng Tang <feng.tang@intel.com>
Subject: [PATCH v4 0/4] Add support for S3 non-stop TSC support.
Date: Tue, 12 Mar 2013 11:56:44 +0800	[thread overview]
Message-ID: <1363060608-22657-1-git-send-email-feng.tang@intel.com> (raw)

Hi All,

On some new Intel Atom processors (Penwell and Cloverview), there is
a feature that the TSC won't stop in S3, say the TSC value won't be
reset to 0 after resume. This feature makes TSC a more reliable
clocksource and could benefit the timekeeping code during system
suspend/resume cycles.

The enabling efforts include adding new flags for this feature, 
modifying clocksource.h and timekeeping.c to support and utilizing
it.

The major change to timekeeping is the way to count suspended time,
current way is trying to use the persistent clock first, and then
try the rtc if persistent clock can't do it. This patch will change
the trying order to:
	suspend-nonstop clocksource -> persistent clock -> rtc

Please help to review them, thanks a lot!

Changelog:
	v4:
	    * Don't touch clocksource_cyc2ns() API which is under
	      changes
	    * add an explicit flag for if the suspend time has been
	      calculated by nonstop clocksource or persistent clock 
	v3:
	    * Adopt Jason Gunthorpe's way to convert large cycles to
	      nsec. And put it into clocksource_cyc2ns()
	    * Small change in flag name
	v2:
	    * Dump the code changing a clocksource's mult and shit,
	      as suggested by John to not hurt accuracy
	    * Modify the CPU feature flag name to be consistent with
	      other flags
	    * Solve the problem of judging S3/S4, as the clocksource
	      counter will be reset after coming out S4.

- Feng

-------------

Feng Tang (4):
  x86: Add cpu capability flag X86_FEATURE_NONSTOP_TSC_S3
  clocksource: Add new feature flag CLOCK_SOURCE_SUSPEND_NONSTOP
  x86: tsc: Add support for new S3_NONSTOP feature
  timekeeping: utilize the suspend-nonstop clocksource to count
    suspended time

 arch/x86/include/asm/cpufeature.h |    1 +
 arch/x86/kernel/cpu/intel.c       |   12 ++++++++
 arch/x86/kernel/tsc.c             |    6 +++-
 include/linux/clocksource.h       |    1 +
 kernel/time/timekeeping.c         |   58 ++++++++++++++++++++++++++++++++-----
 5 files changed, 70 insertions(+), 8 deletions(-)

-- 
1.7.9.5


             reply	other threads:[~2013-03-12  3:58 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-12  3:56 Feng Tang [this message]
2013-03-12  3:56 ` [PATCH v4 1/4] x86: Add cpu capability flag X86_FEATURE_NONSTOP_TSC_S3 Feng Tang
2013-03-12 21:14   ` John Stultz
2013-03-12  3:56 ` [PATCH v4 2/4] clocksource: Add new feature flag CLOCK_SOURCE_SUSPEND_NONSTOP Feng Tang
2013-03-12  3:56 ` [PATCH v4 3/4] x86: tsc: Add support for new S3_NONSTOP feature Feng Tang
2013-03-12  3:56 ` [PATCH v4 4/4] timekeeping: utilize the suspend-nonstop clocksource to count suspended time Feng Tang
2013-03-12 21:09   ` John Stultz
2013-03-12 23:09     ` Feng Tang
2013-03-13 19:17 ` [PATCH v4 0/4] Add support for S3 non-stop TSC support 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=1363060608-22657-1-git-send-email-feng.tang@intel.com \
    --to=feng.tang@intel.com \
    --cc=gong.chen@linux.intel.com \
    --cc=hpa@linux.intel.com \
    --cc=jgunthorpe@obsidianresearch.com \
    --cc=john.stultz@linaro.org \
    --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

Powered by JetHome