Paul Mackerras b6c5a71da1 perf_counter: abstract wakeup flag setting in core to fix powerpc build
Impact: build fix for powerpc

Commit bd753921015e7905 ("perf_counter: software counter event
infrastructure") introduced a use of TIF_PERF_COUNTERS into the core
perfcounter code.  This breaks the build on powerpc because we use
a flag in a per-cpu area to signal wakeups on powerpc rather than
a thread_info flag, because the thread_info flags have to be
manipulated with atomic operations and are thus slower than per-cpu
flags.

This fixes the by changing the core to use an abstracted
set_perf_counter_pending() function, which is defined on x86 to set
the TIF_PERF_COUNTERS flag and on powerpc to set the per-cpu flag
(paca->perf_counter_pending).  It changes the previous powerpc
definition of set_perf_counter_pending to not take an argument and
adds a clear_perf_counter_pending, so as to simplify the definition
on x86.

On x86, set_perf_counter_pending() is defined as a macro.  Defining
it as a static inline in arch/x86/include/asm/perf_counters.h causes
compile failures because <asm/perf_counters.h> gets included early in
<linux/sched.h>, and the definitions of set_tsk_thread_flag etc. are
therefore not available in <asm/perf_counters.h>.  (On powerpc this
problem is avoided by defining set_perf_counter_pending etc. in
<asm/hw_irq.h>.)

Signed-off-by: Paul Mackerras <paulus@samba.org>
2009-04-06 09:30:14 +02:00
..
2009-01-06 15:59:10 -08:00
2009-02-23 15:53:21 +11:00
2009-04-01 08:59:14 -07:00
2008-08-18 21:40:03 +02:00
2008-08-04 13:18:17 +10:00
2009-03-24 11:02:59 +02:00
2009-03-24 11:02:58 +02:00
2008-11-19 16:04:58 +11:00
2008-12-21 14:21:14 +11:00
2009-04-02 01:05:32 +00:00
2009-03-30 14:04:53 +11:00
2008-11-30 11:00:15 -08:00
2009-03-11 17:10:16 +11:00
2008-10-15 11:31:54 +11:00
2008-10-22 22:55:20 -07:00
2008-09-06 19:30:15 +01:00
2009-04-01 08:59:16 -07:00
2008-11-19 16:04:55 +11:00
2009-03-30 22:05:12 +10:30