From: Andreas Herrmann <andreas.herrmann3@amd.com>
To: Len Brown <lenb@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>, Ingo Molnar <mingo@elte.hu>,
Arjan van de Veen <arjan@infradead.org>,
"Maciej W. Rozycki" <macro@linux-mips.org>
Subject: Re: [patch 0/6] AMD C1E aware idle support
Date: Fri, 4 Jul 2008 16:35:36 +0200 [thread overview]
Message-ID: <20080704143536.GA21102@alberich.amd.com> (raw)
In-Reply-To: <alpine.LFD.1.10.0806181834110.3074@localhost.localdomain>
On Wed, Jun 18, 2008 at 06:47:49PM -0400, Len Brown wrote:
> On Thu, 12 Jun 2008, Thomas Gleixner wrote:
>
> > AMD CPUs with C1E support are currently excluded from high resolution
> > timers and NOHZ support. The reason is that C1E is a BIOS controlled
> > C3 power state which switches off TSC and the local APIC timer. The
> > ACPI C-State control manages the TSC/local APIC timer wreckage, but
> > this does not include the C1 based ("halt" instruction) C1E mode. The
> > BIOS/SMM controlled C1E state works on most systems even without
> > enabling ACPI C-State control.
>
> What a mess.
>
> What is the measured power savings that justifies this effort?
IMHO the power savings are not that important when such a kernel runs
on bare metal:
(In the following C1E denotes "AMD-C1E" of course ;-)
- From what I've seen in some basic tests, power usage was not that
different between C1E+NOHZ and C1E+250Hz. (I've done tests on a
Turion X2 (RevF) Laptop, a desktop with Phenom (RevB3), and some
Turion X2 Ultra (family 0x11) prototype.)
- Just the desktop showed 2-4 Watt larger power usage with C1E+250Hz
in comparison to C1E+NOHZ.
- The Turion X2 (Ultra) systems showed almost no differences. Just
when running with C1E+1000Hz the ACPI power usage estimate reported
by powertop was slightly increased (by <1 Watt). (No differences
shown on external power meter and removed battery.)
In conclusion, I think the big benefit from that code is not improved
power savings for laptop users but that it allows highres timers and
dynticks for CPUs with C1E.
E.g. this helps a lot with virtualization -- where dynticks is
preferred for the host system.
And if you have lots of guests the number of timer interrupts can
significantly be reduced for the entire system when all guests and the
host use dynticks.
Some further (random) observations/notes from my tests:
- Using C1E (NOHZ or with periodic timer) was usually better than
running w/o C1E on those machines. (Ok, I didn't expect anything
else.)
- It did not matter which timer interrupt source was used (PIT or
HPET) in NOHZ/one-shot mode.
+ One-shot programming of HPET in comparison to PIT was faster (on
average) by a factor of 2.7 with the chipsets that I've used.
+ Of course using PIT in NOHZ mode resulted in sligtly more
interrupts as the 16-bit counter overflows at least every 0.055
seconds - and Linux even uses a maximum delta of about 27ms.
But overall no measurable difference in power usage was seen.
- "wakeups from idle" as reported by powertop are somehow inaccurate
(from my point of view). They are calculated as "number of
interrupts"/"number of online CPUs". Thus powertop shows about 125
wakeups with 250 HZ on any dual core system or about 250 wakeups
with 1000Hz on a quad-core system. But I had no time to look
further into this.
- Doing battery tests where you fully charge the battery and then
deeply discharge it are harmful, it will/might decrease full
capacity of your lithium battery and most probably decrease its
lifetime. ;-(
> While I'm okay with platform specific idle states,
> I'm not okay with the use of therm C1E here.
Valid point.
I try to address this with some patch.
Regards,
Andreas
next prev parent reply other threads:[~2008-07-04 14:36 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-12 10:28 [patch 0/6] AMD C1E aware idle support Thomas Gleixner
2008-06-12 10:28 ` [patch 1/6] x86: simplify idle selection Thomas Gleixner
2008-06-12 10:28 ` [patch 2/6] x86: cleanup C1E enabled detection Thomas Gleixner
2008-06-12 10:28 ` [patch 3/6] x86: use cpuinfo to check for interrupt pending message msr Thomas Gleixner
2008-06-13 6:55 ` Andreas Herrmann
2008-06-13 12:38 ` Thomas Gleixner
2008-06-13 14:28 ` Andreas Herrmann
2008-06-12 10:28 ` [patch 4/6] x86: use cpuid to check MWAIT support for C1 Thomas Gleixner
2008-06-12 10:28 ` [patch 5/6] x86: move more common idle functions/variables to process.c Thomas Gleixner
2008-06-12 10:29 ` [patch 6/6] x86: add c1e aware idle function Thomas Gleixner
2008-06-13 0:55 ` Andrew Morton
2008-06-13 6:02 ` Thomas Gleixner
2008-06-13 7:28 ` Andrew Morton
2008-06-18 19:21 ` Pavel Machek
2008-06-18 20:26 ` Rafael J. Wysocki
2008-06-18 21:58 ` Thomas Gleixner
2008-06-18 22:04 ` Rafael J. Wysocki
2008-06-18 22:17 ` Thomas Gleixner
2008-06-18 22:27 ` Rafael J. Wysocki
2008-06-12 12:31 ` [patch 0/6] AMD C1E aware idle support Rafael J. Wysocki
2008-06-12 12:32 ` Ingo Molnar
[not found] ` <200806131118.31160.rjw@sisk.pl>
2008-06-13 11:52 ` Rafael J. Wysocki
2008-06-12 13:09 ` Thomas Gleixner
2008-06-12 14:24 ` Andreas Herrmann
2008-06-12 15:48 ` Thomas Gleixner
2008-06-14 21:27 ` Maciej W. Rozycki
2008-06-18 22:47 ` Len Brown
2008-07-04 14:35 ` Andreas Herrmann [this message]
2008-07-04 15:18 ` [PATCH] x86: emphasize that c1e aware idle stuff is AMD specific Andreas Herrmann
2008-08-05 17:42 ` [patch 0/6] AMD C1E aware idle support Pavel Machek
2008-08-06 13:21 ` Andreas Herrmann
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=20080704143536.GA21102@alberich.amd.com \
--to=andreas.herrmann3@amd.com \
--cc=arjan@infradead.org \
--cc=lenb@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=macro@linux-mips.org \
--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