linux/drivers
Venkatesh Pallipadi dfde5d62ed [CPUFREQ][8/8] acpi-cpufreq: Add support for freq feedback from hardware
Enable ondemand governor and acpi-cpufreq to use IA32_APERF and IA32_MPERF MSR
to get active frequency feedback for the last sampling interval. This will
make ondemand take right frequency decisions when hardware coordination of
frequency is going on.

Without APERF/MPERF, ondemand can take wrong decision at times due
to underlying hardware coordination or TM2.
Example:
* CPU 0 and CPU 1 are hardware cooridnated.
* CPU 1 running at highest frequency.
* CPU 0 was running at highest freq. Now ondemand reduces it to
  some intermediate frequency based on utilization.
* Due to underlying hardware coordination with other CPU 1, CPU 0 continues to
  run at highest frequency (as long as other CPU is at highest).
* When ondemand samples CPU 0 again next time, without actual frequency
  feedback from APERF/MPERF, it will think that previous frequency change
  was successful and can go to wrong target frequency. This is because it
  thinks that utilization it has got this sampling interval is when running at
  intermediate frequency, rather than actual highest frequency.

More information about IA32_APERF IA32_MPERF MSR:
Refer to IA-32 Intel® Architecture Software Developer's Manual at
http://developer.intel.com

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Dave Jones <davej@redhat.com>
2006-10-15 19:57:11 -04:00
..
acorn IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
acpi Pull trivial into test branch 2006-10-14 02:28:07 -04:00
amba
ata Merge branch 'master' into upstream-fixes 2006-10-11 04:59:46 -04:00
atm Various drivers' irq handlers: kill dead code, needless casts 2006-10-06 15:00:58 -04:00
base [PATCH] hot-add-mem x86_64: use CONFIG_MEMORY_HOTPLUG_SPARSE 2006-10-01 00:39:18 -07:00
block [PATCH] z2_init() in non-modular case 2006-10-11 11:17:07 -07:00
bluetooth IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
cdrom [PATCH] cdrom: add endianness annotations 2006-10-10 16:15:33 -07:00
char [PATCH] serial167 __user annotations, NULL noise removal 2006-10-15 11:00:58 -07:00
clocksource [PATCH] scx200_hrt: fix precedence bug manifesting as 27x clock in 1 MHz mode 2006-10-04 07:55:14 -07:00
connector
cpufreq [CPUFREQ][8/8] acpi-cpufreq: Add support for freq feedback from hardware 2006-10-15 19:57:11 -04:00
crypto
dio
dma [PATCH] drivers/dma trivial annotations 2006-10-10 15:37:21 -07:00
edac
eisa [PATCH] EISA: handle sysfs errors 2006-10-11 11:14:25 -07:00
fc4 IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
firmware [PATCH] firmware/efivars: handle error 2006-10-11 11:14:25 -07:00
hwmon Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
i2c [POWERPC] Fix i2c-powermac platform device usage 2006-10-10 13:56:13 +10:00
ide [PATCH] ide-cd: one more missing REQ_TYPE_CMD_ATA check 2006-10-12 17:24:52 +02:00
ieee1394 Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6 2006-10-08 12:28:41 -07:00
infiniband IB/mthca: Fix off-by-one in mthca SRQ creation 2006-10-10 12:50:38 -07:00
input [PATCH] hp drivers/input stuff: C99 initializers, NULL noise removal, __user annotations 2006-10-15 11:00:58 -07:00
isdn [PATCH] ISDN: several minor fixes 2006-10-11 11:14:25 -07:00
leds Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
macintosh [POWERPC] Fix windfarm platform device usage 2006-10-10 13:56:13 +10:00
mca [PATCH] drivers/mca: handle sysfs errors 2006-10-11 11:14:25 -07:00
md [PATCH] md: use BUILD_BUG_ON 2006-10-11 11:14:26 -07:00
media V4L/DVB (4750): AGC command1/2 is board specific 2006-10-14 00:44:29 -03:00
message IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
mfd IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
misc MSI S270 Laptop support: backlight, wlan, bluetooth states 2006-10-14 01:48:29 -04:00
mmc [PATCH] passing pointer to setup_timer() should be via unsigned long 2006-10-10 15:37:22 -07:00
mtd [PATCH] mtd: remove several bogus casts to void * in iounmap() argument 2006-10-10 15:37:22 -07:00
net Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2006-10-11 11:19:30 -07:00
nubus
oprofile [PATCH] inode-diet: Eliminate i_blksize from the inode structure 2006-09-27 08:26:18 -07:00
parisc Build fixes for struct pt_regs removal 2006-10-06 20:47:23 -06:00
parport [PATCH] sparc32 pt_regs fixes 2006-10-08 12:32:35 -07:00
pci [PATCH] HT_IRQ must depend on PCI 2006-10-11 11:14:23 -07:00
pcmcia Merge branch 'irqclean-submit1' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2006-10-09 14:21:45 -07:00
pnp IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
rapidio Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
rtc sh: Updates for IRQ handler changes. 2006-10-06 15:31:16 +09:00
s390 [S390] cio: remove casts from/to (void *). 2006-10-11 15:31:47 +02:00
sbus [PATCH] more kernel_execve() fallout (sbus) 2006-10-12 12:36:55 -07:00
scsi [PATCH] Use linux/io.h instead of asm/io.h 2006-10-11 11:14:23 -07:00
serial Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 2006-10-12 08:33:23 -07:00
sh
sn Various drivers' irq handlers: kill dead code, needless casts 2006-10-06 15:00:58 -04:00
spi Various drivers' irq handlers: kill dead code, needless casts 2006-10-06 15:00:58 -04:00
tc [MIPS] Fix DECserial build error by IRQ hander change 2006-10-08 02:38:28 +01:00
telephony
usb [PATCH] devio __user annotations 2006-10-10 15:37:21 -07:00
video [PATCH] revert "nvidiafb: use generic ddc reading" 2006-10-11 11:14:14 -07:00
w1 Fix several typos in drivers/ 2006-10-03 22:31:37 +02:00
zorro
Kconfig
Makefile