From: Tejun Heo <htejun@gmail.com>
To: jgarzik@pobox.com, alan@lxorguk.ukuu.org.uk, lkml@rtr.ca,
axboe@suse.de, forrest.zhao@intel.com, linux-ide@vger.kernel.org,
htejun@gmail.com
Subject: [PATCHSET] libata: implement runtime link powersave
Date: Mon, 17 Jul 2006 15:52:31 +0900 [thread overview]
Message-ID: <11531191512028-git-send-email-htejun@gmail.com> (raw)
In-Reply-To:
Hello, all.
This is the first take of powersave patchset. It implements runtime
link-level power management. To avoid confusion with regular
device/controller power management (suspend/resume), it's callsed
powersave. It primarily implements partial/slumber/phy-off power
states SATA standard specifies but if LLD has different way of
implementing link powersave, it's allowed to. Both host-initiated and
device-initiated operations are supported.
This patchset contains the following patches.
#01-07 : misc fixes/preps for powersave
#08-10 : implements core powersave infrastructure
#11-12 : implement powersave feature for ahci and sata_sil24
Powersave can be configured at boot time or while running by writing
to kernel module parameter /sys/module/libata/parameters/powersave.
The following powersave modes are supported.
* none : no powersave, link is powered up all the time
* HIPS : host-initiated powersave
* DIPS : device-initiated powersave
* static : no powersave on occupied link, power off empty link
* HIPS/static : HIPS on occupied link, power off empty link
* DIPS/static : DIPS on occupied link, power off empty link
For more information, please read head messages of individual patches.
All supported modes are tested on ICH7R AHCI, ICH6M AHCI, SiI3124,
SiI3132. Unfortunately SiI3112/4 family controllers don't support
HIPS and choke on DIPS and thus dropped from supported list.
Here are some results on my ICH6M which can only do static PS. Each
entry is average of 10 battery discharge rate readings 10 secs apart.
none static diff pct
---------------------------------
1140.1mA / 1222.7mA 82.6mA 6.8%
1145.4mA / 1209.8mA 64.4mA 5.3%
1148.6mA / 1209.9mA 61.3mA 5.0%
1150.8mA / 1217.2mA 66.4mA 5.5%
l153.0mA / 1220.5mA 67.5mA 5.5%
I'd really like to see how much power DIPS/HIPS can save. If you have
a notebook with smarter ICH, please don't hesitate to benchmark.
This patchset is against.
upstream (309bade002e9226781c2d7a015340d0089e399b5)
+ [1] fix-autopsy patch
+ [2] fix-eh_skip_recovery patch
+ [3] improve-EH-actions-and-EHI-handling patch
+ [4] PHY-reset-requires-writing-0x4-to-SControl
This patchset is also available in the following git tree.
http://htj.dyndns.org/git/?p=libata-tj.git;a=shortlog;h=powersave
git://htj.dyndns.org/libata-tj powersave
Thanks.
--
tejun
[1] http://article.gmane.org/gmane.linux.ide/11966
[2] http://article.gmane.org/gmane.linux.ide/12001
[3] http://article.gmane.org/gmane.linux.ide/12002
[4] http://article.gmane.org/gmane.linux.ide/11870
next reply other threads:[~2006-07-17 6:51 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-07-17 6:52 Tejun Heo [this message]
2006-07-17 6:52 ` [PATCH 03/12] libata: add more SATA specific constants and macros to ata.h Tejun Heo
2006-07-19 19:32 ` Jeff Garzik
2006-07-17 6:52 ` [PATCH 04/12] libata: implement ata_all_ports list Tejun Heo
2006-07-19 19:34 ` Jeff Garzik
2006-07-17 6:52 ` [PATCH 02/12] libata: add ata_id_has_sata() and use it in ata_id_has_ncq() Tejun Heo
2006-07-17 6:52 ` [PATCH 01/12] libata: add msec_to_jiffies() Tejun Heo
2006-07-17 6:52 ` [PATCH 06/12] libata: add ata_port_nr_ready() Tejun Heo
2006-07-17 6:52 ` [PATCH 10/12] libata: implement standard powersave methods Tejun Heo
2006-07-19 19:50 ` Jeff Garzik
2006-07-17 6:52 ` [PATCH 11/12] ahci: implement link powersave Tejun Heo
2006-07-19 19:51 ` Jeff Garzik
2006-07-17 6:52 ` [PATCH 08/12] libata: implement interface power management infrastructure Tejun Heo
2006-07-19 19:45 ` Jeff Garzik
2006-07-24 8:02 ` Tejun Heo
2006-07-17 6:52 ` [PATCH 07/12] libata: implement sata_update_scontrol() Tejun Heo
2006-07-19 19:35 ` Jeff Garzik
2006-07-17 6:52 ` [PATCH 05/12] libata: make counting functions global Tejun Heo
2006-07-17 6:52 ` [PATCH 09/12] libata: implement powersave timer Tejun Heo
2006-07-19 19:48 ` Jeff Garzik
2006-07-19 20:22 ` Jens Axboe
2006-07-24 7:27 ` Tejun Heo
2006-07-25 8:01 ` Jens Axboe
2006-07-17 6:52 ` [PATCH 12/12] sata_sil24: implement link powersave Tejun Heo
2006-07-19 19:38 ` [PATCHSET] libata: implement runtime " Jeff Garzik
2006-07-24 7:33 ` Tejun Heo
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=11531191512028-git-send-email-htejun@gmail.com \
--to=htejun@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=axboe@suse.de \
--cc=forrest.zhao@intel.com \
--cc=jgarzik@pobox.com \
--cc=linux-ide@vger.kernel.org \
--cc=lkml@rtr.ca \
/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;
as well as URLs for NNTP newsgroup(s).