kernel-ark/arch/x86/kernel/cpu
Ingo Molnar 83ce400928 x86: set X86_FEATURE_TSC_RELIABLE
If the TSC is constant and non-stop, also set it reliable.

(We will turn this off in DMI quirks for multi-chassis systems)

The performance number on a 16-way Nehalem system running
32 tasks that context-switch between each other is significant:

   sched_clock_stable=0		sched_clock_stable=1
   ....................         ....................
   22.456925 million/sec        24.306972 million/sec   [+8.2%]

lmbench's "lat_ctx -s 0 2" goes from 0.63 microseconds to
0.59 microseconds - a 6.7% increase in context-switching
performance.

Perfstat of 1 million pipe context switches between two tasks:

 Performance counter stats for './pipe-test-1m':

       [before]           [after]
   ............      ............
   37621.421089      36436.848378    task clock ticks     (msecs)

              0                 0    CPU migrations       (events)
        2000274           2000189    context switches     (events)
            194               193    pagefaults           (events)
     8433799643        8171016416    CPU cycles           (events) -3.21%
     8370133368        8180999694    instructions         (events) -2.31%
        4158565           3895941    cache references     (events) -6.74%
          44312             46264    cache misses         (events)

    2349.287976       2279.362465    wall-time            (msecs)  -3.06%

The speedup comes straight from the reduction in the instruction
count. sched_clock_cpu() got simpler and the whole workload thus
executes faster.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-02-26 21:20:25 +01:00
..
cpufreq cpumask: fix powernow-k8: partial revert of 2fdf66b491 2009-02-16 17:31:59 +10:30
mcheck x86, mce: remove incorrect __cpuinit for mce_cpu_features() 2009-02-20 23:40:40 -08:00
mtrr x86: tone down mtrr_trim_uncached_memory() warning 2009-01-29 11:45:35 +01:00
.gitignore Update .gitignore files for generated targets 2008-10-20 11:24:31 -07:00
addon_cpuid_features.c x86: fix intel x86_64 llc_shared_map/cpu_llc_id anomolies 2008-12-19 09:13:50 +01:00
amd.c x86: support always running TSC on Intel CPUs 2008-12-16 21:02:50 +01:00
bugs_64.c
bugs.c x86: fdiv bug detection fix 2008-07-31 23:56:27 +02:00
centaur_64.c x86: centaur_64.c remove duplicated setting of CONSTANT_TSC 2008-09-10 08:21:06 +02:00
centaur.c x86: move mtrr cpu cap setting early in early_init_xxxx 2008-09-06 17:50:55 +02:00
cmpxchg.c x86: move cmpxchg fallbacks to a generic place 2008-08-18 16:05:47 +02:00
common.c x86: cleanup remaining cpumask_t ops in smpboot code 2009-01-04 15:39:26 +01:00
cpu.h x86: remove duplicated get_model_name() calling 2008-09-06 14:09:12 +02:00
cyrix.c x86: move mtrr cpu cap setting early in early_init_xxxx 2008-09-06 17:50:55 +02:00
hypervisor.c x86: hypervisor - fix sparse warnings 2008-11-23 11:11:52 +01:00
intel_cacheinfo.c x86: add cache descriptors for Intel Core i7 2009-02-01 11:06:50 +01:00
intel.c x86: set X86_FEATURE_TSC_RELIABLE 2009-02-26 21:20:25 +01:00
Makefile Merge branch 'tracing-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-12-28 12:21:10 -08:00
mkcapflags.pl x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> 2008-08-27 19:23:22 -07:00
perfctr-watchdog.c ftrace: mark lapic_wd_event() notrace 2008-10-14 10:34:36 +02:00
powerflags.c x86: generate names for /proc/cpuinfo from <asm/cpufeature.h> 2008-08-27 19:23:22 -07:00
proc.c x86/proc: fix /proc/cpuinfo cpu offline bug 2008-10-22 14:29:37 +02:00
transmeta.c x86: move transmeta cap read to early_init_transmeta() 2008-09-14 14:09:14 +02:00
umc.c x86: remove cpu_vendor_dev 2008-09-04 21:09:45 +02:00
vmware.c x86: vmware - fix sparse warnings 2008-11-23 11:02:36 +01:00