linux/drivers/acpi
Venki Pallipadi 40fb17152c x86: support always running TSC on Intel CPUs
Impact: reward non-stop TSCs with good TSC-based clocksources, etc.

Add support for CPUID_0x80000007_Bit8 on Intel CPUs as well. This bit means
that the TSC is invariant with C/P/T states and always runs at constant
frequency.

With Intel CPUs, we have 3 classes
* CPUs where TSC runs at constant rate and does not stop n C-states
* CPUs where TSC runs at constant rate, but will stop in deep C-states
* CPUs where TSC rate will vary based on P/T-states and TSC will stop in deep
  C-states.

To cover these 3, one feature bit (CONSTANT_TSC) is not enough. So, add a
second bit (NONSTOP_TSC). CONSTANT_TSC indicates that the TSC runs at
constant frequency irrespective of P/T-states, and NONSTOP_TSC indicates
that TSC does not stop in deep C-states.

CPUID_0x8000000_Bit8 indicates both these feature bit can be set.
We still have CONSTANT_TSC _set_ and NONSTOP_TSC _not_set_ on some older Intel
CPUs, based on model checks. We can use TSC on such CPUs for time, as long as
those CPUs do not support/enter deep C-states.

Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-12-16 21:02:50 +01:00
..
dispatcher ACPICA: Fix for implicit return compatibility 2008-10-22 23:14:49 -04:00
events Merge branch 'ec' into release 2008-11-11 21:17:26 -05:00
executer ACPICA: Add support for zero-length buffer-to-string conversions 2008-10-22 23:14:50 -04:00
hardware ACPI suspend: Always use the 32-bit waking vector 2008-10-16 20:45:35 -04:00
namespace ACPICA: New: Validation for predefined ACPI methods/objects 2008-10-22 23:14:49 -04:00
parser ACPICA: Fixed a couple memory leaks associated with "implicit return" 2008-10-22 23:14:48 -04:00
resources ACPICA: Cleanup for internal Reference Object 2008-10-22 23:14:45 -04:00
sleep ACPI suspend: Blacklist boxes that require us to set SCI_EN directly on resume 2008-11-26 17:53:13 -05:00
tables ACPI: use macro to replace hard number 2008-11-06 21:51:02 -05:00
utilities ACPICA: Optimize buffer allocation procedure 2008-10-22 23:14:48 -04:00
ac.c Merge branch 'sysfs' into release 2008-11-11 21:14:49 -05:00
acpi_memhotplug.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
asus_acpi.c Merge branch 'ull' into test 2008-10-22 23:33:29 -04:00
battery.c Revert "ACPI: battery: Convert discharge energy rate to current properly" 2008-12-05 13:30:03 -08:00
blacklist.c ACPI: delete OSI(Linux) DMI dmesg spam 2008-11-27 01:55:21 -05:00
bus.c ACPI: turn off all debug output by default 2008-11-07 21:45:16 -05:00
button.c Merge branch 'ec' into release 2008-11-11 21:17:26 -05:00
cm_sbs.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
container.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
debug.c ACPI: add driver component definitions to sysfs debug_layers 2008-11-07 21:45:04 -05:00
dock.c Merge branch 'ull' into test 2008-10-22 23:33:29 -04:00
ec.c ACPI: EC: count interrupts only if called from interrupt handler. 2008-11-26 17:16:45 -05:00
event.c acpi: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
fan.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
glue.c ACPI: video: Ignore devices that aren't present in hardware 2008-11-07 23:49:23 -05:00
Kconfig ACPI: update debug parameter documentation 2008-11-07 21:45:29 -05:00
Makefile Merge branch 'video' into release 2008-11-11 21:15:50 -05:00
numa.c ACPI: Change acpi_evaluate_integer to support 64-bit on 32-bit kernels 2008-10-11 02:47:33 -04:00
osl.c ACPI: delete OSI(Linux) DMI dmesg spam 2008-11-27 01:55:21 -05:00
pci_bind.c ACPI: misc cleanups 2008-02-07 03:33:23 -05:00
pci_irq.c ACPI: use dev_printk when possible 2008-07-16 23:27:07 +02:00
pci_link.c ACPI: pci_link: remove acpi_irq_balance_set() interface 2008-11-11 21:12:05 -05:00
pci_root.c ACPI: remove comments about debug layer/level to use 2008-11-06 15:30:19 -05:00
pci_slot.c Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6 2008-10-23 10:20:36 -07:00
power.c Merge branch 'power' into release 2008-11-11 21:14:15 -05:00
processor_core.c Merge branch 'processor-256' into release 2008-11-11 21:17:03 -05:00
processor_idle.c x86: support always running TSC on Intel CPUs 2008-12-16 21:02:50 +01:00
processor_perflib.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
processor_thermal.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
processor_throttling.c ACPI: consolidate ACPI_*_COMPONENT definitions in acpi_drivers.h 2008-11-07 21:44:37 -05:00
reboot.c Revert "ACPI: Ingore the RESET_REG_SUP bit when using ACPI reset mechanism" 2008-11-06 20:51:59 -05:00
sbs.c Merge branch 'linus' into test 2008-10-23 00:11:07 -04:00
sbshc.c Merge branch 'ull' into test 2008-10-22 23:33:29 -04:00
sbshc.h ACPI: SBS: Ignore alarms coming from unknown devices 2007-12-14 15:14:06 -05:00
scan.c Revert "ACPI: don't enable control method power button as wakeup device when Fixed Power button is used" 2008-11-26 17:55:15 -05:00
system.c Merge branch 'ec' into release 2008-11-11 21:17:26 -05:00
tables.c acpi: add checking for NULL early param 2008-08-21 08:45:39 +02:00
thermal.c Merge branch 'sysfs' into release 2008-11-11 21:14:49 -05:00
toshiba_acpi.c ACPI toshiba: only register rfkill if bt is enabled 2008-12-15 16:27:07 -08:00
utils.c ACPI: scheduling in atomic via acpi_evaluate_integer () 2008-11-26 17:39:06 -05:00
video_detect.c Merge branch 'video' into release 2008-11-11 21:15:50 -05:00
video.c Merge branch 'video' into release 2008-11-11 21:15:50 -05:00
wmi.c ACPI: struct device - replace bus_id with dev_name(), dev_set_name() 2008-11-06 21:37:19 -05:00