linux/drivers
Alexey Starikovskiy 05ca0350e8 [CPUFREQ][2/2] ondemand: updated add powersave_bias tunable
ondemand selects the minimum frequency that can retire
a workload with negligible idle time -- ideally resulting in the highest
performance/power efficiency with negligible performance impact.

But on some systems and some workloads, this algorithm
is more performance biased than necessary, and
de-tuning it a bit to allow some performance impact
can save measurable power.

This patch adds a "powersave_bias" tunable to ondemand
to allow it to reduce its target frequency by a specified percent.

By default, the powersave_bias is 0 and has no effect.
powersave_bias is in units of 0.1%, so it has an effective range
of 1 through 1000, resulting in 0.1% to 100% impact.

In practice, users will not be able to detect a difference between
0.1% increments, but 1.0% increments turned out to be too large.
Also, the max value of 1000 (100%) would simply peg the system
in its deepest power saving P-state, unless the processor really has
a hardware P-state at 0Hz:-)

For example, If ondemand requests 2.0GHz based on utilization,
and powersave_bias=100, this code will knock 10% off the target
and seek  a target of 1.8GHz instead of 2.0GHz until the
next sampling.  If 1.8 is an exact match with an hardware frequency
we use it, otherwise we average our time between the frequency
next higher than 1.8 and next lower than 1.8.

Note that a user or administrative program can change powersave_bias
at run-time depending on how they expect the system to be used.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi at intel.com>
Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy at intel.com>
Signed-off-by: Dave Jones <davej@redhat.com>
2006-08-11 17:59:57 -04:00
..
acorn
acpi [PATCH] memory hotadd fixes: avoid registering res twice 2006-08-06 08:57:49 -07:00
amba
atm
base [PATCH] cpu hotplug: use hotplug version of registration in late inits 2006-07-31 13:28:39 -07:00
block [PATCH] nbd: Abort request on data reception failure 2006-07-31 13:28:39 -07:00
bluetooth [Bluetooth] Enable SCO support for Broadcom HID proxy dongle 2006-07-24 12:44:34 -07:00
cdrom
char Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input 2006-08-06 09:12:49 -07:00
clocksource
connector [PATCH] Process Events: Fix biarch compatibility issue. use __u64 timestamp 2006-07-31 13:28:36 -07:00
cpufreq [CPUFREQ][2/2] ondemand: updated add powersave_bias tunable 2006-08-11 17:59:57 -04:00
crypto [CRYPTO] padlock: Fix alignment after aes_ctx rearrange 2006-07-15 11:08:50 +10:00
dio
dma [I/OAT]: Remove pci_module_init() from Intel I/OAT DMA engine 2006-07-21 14:50:13 -07:00
edac [PATCH] drivers/edac/edac_mc.h must #include <linux/platform_device.h> 2006-08-06 08:57:46 -07:00
eisa
fc4 [SCSI] More buffer->request_buffer changes 2006-07-14 09:41:13 -05:00
firmware
hwmon [PATCH] hwmon: Fix for first generation Abit uGuru chips 2006-07-12 15:43:07 -07:00
i2c [PATCH] SCX200_ACB: eliminate spurious timeout errors 2006-08-06 08:57:49 -07:00
ide Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-07-31 13:39:52 -07:00
ieee1394 [PATCH] ieee1394: sbp2: enable auto spin-up for Maxtor disks 2006-08-06 08:57:48 -07:00
infiniband IB/uverbs: Avoid a crash on device hot remove 2006-08-03 10:56:42 -07:00
input Input: atkbd - restore repeat rate when resuming 2006-08-04 22:52:46 -04:00
isdn [PATCH] eicon: fix define conflict with ptrace 2006-08-06 08:57:48 -07:00
leds [PATCH] net48xx LED cleanups 2006-07-14 21:53:54 -07:00
macintosh Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-07-31 13:39:52 -07:00
mca
md [PATCH] md: Fix a bug that recently crept into md/linear 2006-08-06 08:57:46 -07:00
media V4L/DVB (4380): Bttv: Revert VBI_OFFSET to previous value, it works better 2006-07-29 17:22:39 -03:00
message Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6 2006-07-21 12:04:53 -07:00
mfd
misc
mmc [MMC] Change SDHCI version error to a warning 2006-07-13 16:17:46 +01:00
mtd
net [PATCH] myri10ge - Fix spurious invokations of the watchdog reset handler 2006-08-03 17:31:10 -04:00
nubus
oprofile
parisc
parport
pci PCI: Unhide the SMBus on Asus PU-DLS 2006-08-03 13:20:06 -07:00
pcmcia [PATCH] pcmcia: fix ioctl GET_CONFIGURATION_INFO for pcmcia_cards 2006-07-31 13:28:41 -07:00
pnp [PATCH] pnpacpi: reject ACPI_PRODUCER resources 2006-08-06 08:57:49 -07:00
rapidio
rtc [PATCH] RTC subsystem, Add ISL1208 support 2006-07-14 21:53:53 -07:00
s390 [S390] duplicate ccw devices in ccwgroup. 2006-07-27 14:00:33 +02:00
sbus [SPARC] sbus: Make sure sbus nodes are named uniquely. 2006-07-21 14:18:06 -07:00
scsi [PATCH] ahci: skip protocol test altogether in spurious interrupt code 2006-08-03 17:34:52 -04:00
serial [SERIAL] sunzilog: Fix instance enumeration. 2006-07-21 14:18:25 -07:00
sh
sn
spi
tc
telephony
usb Input: ati_remote - use msec instead of jiffies 2006-08-04 22:53:37 -04:00
video [PATCH] au1100fb: Fix startup sequence 2006-08-06 08:57:47 -07:00
w1 [PATCH] w1: remove drivers/w1/w1.h 2006-07-12 15:38:28 -07:00
zorro
Kconfig
Makefile