Linux ACPI
 help / color / mirror / Atom feed
From: Adam Belay <abelay@novell.com>
To: Len Brown <len.brown@intel.com>, Thomas Gleixner <tglx@linutronix.de>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>, Shaohua Li <shaohua.li@intel.com>,
	Pallipadi@vger.kernel.org,
	Venkatesh <venkatesh.pallipadi@intel.com>,
	linux-acpi@vger.kernel.org
Subject: [RFC][PATCH 0/3] A Dynticks Aware Processor Idle PM Governor
Date: Sat, 24 Mar 2007 03:46:52 -0400	[thread overview]
Message-ID: <1174722412.32554.81.camel@localhost.localdomain> (raw)

Hi All,

Here is my first take at implementing an idle PM governor that takes
full advantage of NO_HZ.  I call it the 'menu' governor because it
considers the full list of idle states before each entry.

I've kept the implementation fairly simple.  It attempts to guess the
next residency time and then chooses a state that would meet at least
the break-even point between power savings and entry cost.  To this end,
it selects the deepest idle state that satisfies the following
constraints:
     1. If the idle time elapsed since bus master activity was detected
        is below a threshold (currently 20 ms), then limit the selection
        to C2-type or above.
     2. Do not choose a state with a break-even residency that exceeds
        the expected time remaining until the next timer interrupt.
     3. Do not choose a state with a break-even residency that exceeds
        the elapsed time between the last pair of break events,
        excluding timer interrupts.

This governor has an advantage over "ladder" governor because it
proactively checks how much time remains until the next timer interrupt
using the tick infrastructure.  Also, it handles device interrupt
activity more intelligently by not including timer interrupts in break
event calculations.  Finally, it doesn't make policy decisions using the
number of state entries, which can have variable residency times (NO_HZ
makes these potentially very large), and instead only considers sleep
time deltas.

The menu governor can be selected during runtime using the cpuidle sysfs
interface like so:
"echo "menu" > /sys/devices/system/cpu/cpuidle/current_governor"

This patchset applies against 2.6.21-rc4 plus the latest from the acpi
testing tree, which is available here:
ftp://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/test/2.6.21/acpi-test-20070126-2.6.21-rc4.diff.bz2

I'd really appreciate any comments, benchmarks, or suggestions.

Cheers,
Adam



             reply	other threads:[~2007-03-24  7:31 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-24  7:46 Adam Belay [this message]
2007-06-01  1:17 ` [RFC][PATCH 0/3] A Dynticks Aware Processor Idle PM Governor Len Brown
2007-06-06 20:49   ` [PATCH 1/8] cpuidle: acpi_set_cstate_limit compile fix Venki Pallipadi

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=1174722412.32554.81.camel@localhost.localdomain \
    --to=abelay@novell.com \
    --cc=Pallipadi@vger.kernel.org \
    --cc=akpm@osdl.org \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=shaohua.li@intel.com \
    --cc=tglx@linutronix.de \
    --cc=venkatesh.pallipadi@intel.com \
    /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