The legacy x86 nmi watchdog code was removed with the implementation of the perf based nmi watchdog. This broke Oprofile's nmi timer mode. To run nmi timer mode we relied on a continuous ticking nmi source which the nmi watchdog provided. The nmi tick was no longer available and current watchdog can not be used anymore since it runs with very long periods in the range of seconds. This patch reimplements the nmi timer mode using a perf counter nmi source. V2: * removing pr_info() * fix undefined reference to `__udivdi3' for 32 bit build * fix section mismatch of .cpuinit.data:nmi_timer_cpu_nb * removed nmi timer setup in arch/x86 * implemented function stubs for op_nmi_init/exit() * made code more readable in oprofile_init() V3: * fix architectural initialization in oprofile_init() * fix CONFIG_OPROFILE_NMI_TIMER dependencies Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Robert Richter <robert.richter@amd.com>
		
			
				
	
	
		
			11 lines
		
	
	
	
		
			391 B
			
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			11 lines
		
	
	
	
		
			391 B
			
		
	
	
	
		
			Makefile
		
	
	
	
	
	
obj-$(CONFIG_OPROFILE) += oprofile.o
 | 
						|
 | 
						|
DRIVER_OBJS = $(addprefix ../../../drivers/oprofile/, \
 | 
						|
		oprof.o cpu_buffer.o buffer_sync.o \
 | 
						|
		event_buffer.o oprofile_files.o \
 | 
						|
		oprofilefs.o oprofile_stats.o  \
 | 
						|
		timer_int.o nmi_timer_int.o )
 | 
						|
 | 
						|
oprofile-y				:= $(DRIVER_OBJS) init.o backtrace.o
 | 
						|
oprofile-$(CONFIG_X86_LOCAL_APIC) 	+= nmi_int.o op_model_amd.o \
 | 
						|
					   op_model_ppro.o op_model_p4.o
 |