e717bf4e4f
The following patch adds perf_event support for the Xeon-Phi PMU, as documented in the "Intel Xeon Phi Coprocessor (codename: Knights Corner) Performance Monitoring Units" manual. Even though it is a co-processor, a Phi runs a full Linux environment and can support performance counters. This is just barebones support, it does not add support for interesting new features such as the SPFLT intruction that allows starting/stopping events without entering the kernel. The PMU internally is just like that of an original Pentium, but a "P6-like" MSR interface is provided. The interface is different enough from a real P6 that it's not easy (or practical) to re-use the code in perf_event_p6.c Acked-by: Lawrence F Meadows <lawrence.f.meadows@intel.com> Acked-by: Cyrill Gorcunov <gorcunov@openvz.org> Signed-off-by: Vince Weaver <vincent.weaver@maine.edu> Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Cc: eranian@gmail.com Cc: Lawrence F <lawrence.f.meadows@intel.com> Link: http://lkml.kernel.org/r/alpine.DEB.2.02.1209261405320.8398@vincent-weaver-1.um.maine.edu Signed-off-by: Ingo Molnar <mingo@kernel.org>
52 lines
1.6 KiB
Makefile
52 lines
1.6 KiB
Makefile
#
|
|
# Makefile for x86-compatible CPU details, features and quirks
|
|
#
|
|
|
|
# Don't trace early stages of a secondary CPU boot
|
|
ifdef CONFIG_FUNCTION_TRACER
|
|
CFLAGS_REMOVE_common.o = -pg
|
|
CFLAGS_REMOVE_perf_event.o = -pg
|
|
endif
|
|
|
|
# Make sure load_percpu_segment has no stackprotector
|
|
nostackp := $(call cc-option, -fno-stack-protector)
|
|
CFLAGS_common.o := $(nostackp)
|
|
|
|
obj-y := intel_cacheinfo.o scattered.o topology.o
|
|
obj-y += proc.o capflags.o powerflags.o common.o
|
|
obj-y += vmware.o hypervisor.o mshyperv.o
|
|
obj-y += rdrand.o
|
|
obj-y += match.o
|
|
|
|
obj-$(CONFIG_X86_32) += bugs.o
|
|
obj-$(CONFIG_X86_64) += bugs_64.o
|
|
|
|
obj-$(CONFIG_CPU_SUP_INTEL) += intel.o
|
|
obj-$(CONFIG_CPU_SUP_AMD) += amd.o
|
|
obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o
|
|
obj-$(CONFIG_CPU_SUP_CENTAUR) += centaur.o
|
|
obj-$(CONFIG_CPU_SUP_TRANSMETA_32) += transmeta.o
|
|
obj-$(CONFIG_CPU_SUP_UMC_32) += umc.o
|
|
|
|
obj-$(CONFIG_PERF_EVENTS) += perf_event.o
|
|
|
|
ifdef CONFIG_PERF_EVENTS
|
|
obj-$(CONFIG_CPU_SUP_AMD) += perf_event_amd.o
|
|
obj-$(CONFIG_CPU_SUP_INTEL) += perf_event_p6.o perf_event_knc.o perf_event_p4.o
|
|
obj-$(CONFIG_CPU_SUP_INTEL) += perf_event_intel_lbr.o perf_event_intel_ds.o perf_event_intel.o
|
|
obj-$(CONFIG_CPU_SUP_INTEL) += perf_event_intel_uncore.o
|
|
endif
|
|
|
|
obj-$(CONFIG_X86_MCE) += mcheck/
|
|
obj-$(CONFIG_MTRR) += mtrr/
|
|
|
|
obj-$(CONFIG_X86_LOCAL_APIC) += perfctr-watchdog.o perf_event_amd_ibs.o
|
|
|
|
quiet_cmd_mkcapflags = MKCAP $@
|
|
cmd_mkcapflags = $(PERL) $(srctree)/$(src)/mkcapflags.pl $< $@
|
|
|
|
cpufeature = $(src)/../../include/asm/cpufeature.h
|
|
|
|
targets += capflags.c
|
|
$(obj)/capflags.c: $(cpufeature) $(src)/mkcapflags.pl FORCE
|
|
$(call if_changed,mkcapflags)
|