 e717bf4e4f
			
		
	
	
	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)
 |