perf_counter, x86: Fix/improve apic fallback
authorIngo Molnar <mingo@elte.hu>
Tue, 11 Aug 2009 08:40:08 +0000 (10:40 +0200)
committerIngo Molnar <mingo@elte.hu>
Wed, 12 Aug 2009 12:12:49 +0000 (14:12 +0200)
commit04da8a43da804723a550f00dd158fd5b5e25ae35
tree002fa5e83efaa745b7eaddd329c2aa9d79d2d2f6
parent0a5ac84650fb7a7f226814103d95724e34b012ae
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>
arch/x86/Kconfig
arch/x86/kernel/cpu/perf_counter.c