android_kernel_xiaomi_sm8350/arch/x86/kernel/cpu
Ingo Molnar 04da8a43da perf_counter, x86: Fix/improve apic fallback
Johannes Stezenbach reported that his Pentium-M based
laptop does not have the local APIC enabled by default,
and hence perfcounters do not get initialized.

Add a fallback for this case: allow non-sampled counters
and return with an error on sampled counters. This allows
'perf stat' to work out of box - and allows 'perf top'
and 'perf record' to fall back on a hrtimer based sampling
method.

( Passing 'lapic' on the boot line will allow hardware
  sampling to occur - but if the APIC is disabled
  permanently by the hardware then this fallback still
  allows more systems to use perfcounters. )

Also decouple perfcounter support from X86_LOCAL_APIC.

-v2: fix typo breaking counters on all other systems ...

Reported-by: Johannes Stezenbach <js@sig21.net>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-08-12 14:12:49 +02:00
..
cpufreq Remove multiple KERN_ prefixes from printk formats 2009-07-08 10:30:03 -07:00
mcheck x86, mce: Fix set_trigger() accessor 2009-07-21 10:49:18 -07:00
mtrr Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 15:49:36 -07:00
.gitignore Update .gitignore files for generated targets 2008-10-20 11:24:31 -07:00
addon_cpuid_features.c x86 ACPI: Add support for Always Running APIC timer 2009-04-07 18:17:51 -04:00
amd.c x86, amd: Don't probe for extended APIC ID if APICs are disabled 2009-07-22 10:06:49 -07:00
bugs_64.c
bugs.c
centaur.c x86/centaur: merge 32 & 64 bit version 2009-03-14 16:27:29 +01:00
cmpxchg.c
common.c Revert "x86: cap iomem_resource to addressable physical memory" 2009-06-28 09:38:47 +02:00
cpu_debug.c Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-06-10 15:51:15 -07:00
cpu.h x86: cpu/cpu.h cleanup 2009-03-23 02:06:51 +05:30
cyrix.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
hypervisor.c x86: hypervisor - fix sparse warnings 2008-11-23 11:11:52 +01:00
intel_cacheinfo.c x86: cacheinfo: complete L2/L3 Cache and TLB associativity field definitions 2009-04-10 15:41:18 +02:00
intel.c x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
Makefile Merge branch 'linus' into perfcounters/core-v2 2009-04-06 09:02:57 +02:00
mkcapflags.pl
perf_counter.c perf_counter, x86: Fix/improve apic fallback 2009-08-12 14:12:49 +02:00
perfctr-watchdog.c x86: Remove unused function lapic_watchdog_ok() 2009-07-03 14:34:31 +02:00
powerflags.c
proc.c x86: show number of core_siblings instead of thread_siblings in /proc/cpuinfo 2009-05-04 20:36:49 +02:00
transmeta.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
umc.c x86: move various CPU initialization objects into .cpuinit.rodata 2009-03-12 13:13:07 +01:00
vmware.c x86: vmware - fix sparse warnings 2008-11-23 11:02:36 +01:00