1. 26 3月, 2011 1 次提交
  2. 04 12月, 2010 2 次提交
    • W
      ARM: 6521/1: perf: use raw_spinlock_t for pmu_lock · 961ec6da
      Will Deacon 提交于
      For kernels built with PREEMPT_RT, critical sections protected
      by standard spinlocks are preemptible. This is not acceptable
      on perf as (a) we may be scheduled onto a different CPU whilst
      reading/writing banked PMU registers and (b) the latency when
      reading the PMU registers becomes unpredictable.
      
      This patch upgrades the pmu_lock spinlock to a raw_spinlock
      instead.
      Reported-by: NJamie Iles <jamie@jamieiles.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      961ec6da
    • W
      ARM: 6512/1: perf: fix warnings generated by sparse · 4d6b7a77
      Will Deacon 提交于
      Russell reported a number of warnings coming from sparse when
      checking the ARM perf_event.c files:
      
      | perf_event.c seems to also have problems too:
      |
      |   CHECK   arch/arm/kernel/perf_event.c
      |   arch/arm/kernel/perf_event.c:37:1: warning: symbol 'pmu_lock' was not declared. Should it be static?
      |   arch/arm/kernel/perf_event.c:70:1: warning: symbol 'cpu_hw_events' was not declared. Should it be static?
      |   arch/arm/kernel/perf_event.c:1006:1: warning: symbol 'armv6pmu_enable_event' was not declared. Should it be static?
      |   arch/arm/kernel/perf_event.c:1113:1: warning: symbol 'armv6pmu_stop' was not declared. Should it be static?
      |   arch/arm/kernel/perf_event.c:1956:6: warning: symbol 'armv7pmu_enable_event' was not declared. Should it be static?
      |   arch/arm/kernel/perf_event.c:3072:14: warning: incorrect type in argument 1 (different address spaces)
      |   arch/arm/kernel/perf_event.c:3072:14:    expected void const volatile [noderef] <asn:1>*<noident>
      |   arch/arm/kernel/perf_event.c:3072:14:    got struct frame_tail *tail
      |   arch/arm/kernel/perf_event.c:3074:49: warning: incorrect type in argument 2 (different address spaces)
      |   arch/arm/kernel/perf_event.c:3074:49:    expected void const [noderef] <asn:1>*from
      |   arch/arm/kernel/perf_event.c:3074:49:    got struct frame_tail *tail
      
      This patch resolves these issues so we can live in silence
      again.
      Reported-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      4d6b7a77
  3. 26 11月, 2010 1 次提交
    • W
      ARM: perf: separate PMU backends into multiple files · 43eab878
      Will Deacon 提交于
      The ARM perf_event.c file contains all PMU backends and, as new PMUs
      are introduced, will continue to grow.
      
      This patch follows the example of x86 and splits the PMU implementations
      into separate files which are then #included back into the main
      file. Compile-time guards are added to each PMU file to avoid compiling
      in code that is not relevant for the version of the architecture which
      we are targetting.
      Acked-by: NJean Pihet <j-pihet@ti.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      43eab878