linux_dsm_epyc7002/arch/x86
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
..
boot Merge branch 'dma-debug' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/linux-2.6-iommu into x86/urgent 2009-04-03 16:35:09 +02:00
configs
crypto
ia32 Merge branch 'linus' into perfcounters/core-v2 2009-04-06 09:02:57 +02:00
include/asm perf_counter: abstract wakeup flag setting in core to fix powerpc build 2009-04-06 09:30:14 +02:00
kernel perf_counter: fix crash on perfmon v1 systems 2009-04-06 09:30:14 +02:00
kvm Merge branch 'tracing/core-v2' into tracing-for-linus 2009-04-02 00:49:02 +02:00
lguest Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-lguest-and-virtio 2009-03-30 17:57:39 -07:00
lib
math-emu Merge branch 'core/percpu' into percpu-cpumask-x86-for-linus-2 2009-03-27 17:28:43 +01:00
mm perf_counter: provide major/minor page fault software events 2009-04-06 09:29:40 +02:00
oprofile Merge branch 'linus' into perfcounters/core-v2 2009-04-06 09:02:57 +02:00
pci x86, PAT: Remove duplicate memtype reserve in pci mmap 2009-04-03 14:43:29 -07:00
power x86: disable stack-protector for __restore_processor_state() 2009-04-03 19:48:41 +02:00
vdso
video
xen Merge branch 'linus' into cpumask-for-linus 2009-03-30 23:53:32 +02:00
Kconfig Merge branch 'linus' into perfcounters/core-v2 2009-04-06 09:02:57 +02:00
Kconfig.cpu
Kconfig.debug generic debug pagealloc: build fix 2009-04-02 19:04:48 -07:00
Makefile
Makefile_32.cpu