mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-31 00:01:35 +00:00 
			
		
		
		
	 bc078e4eab
			
		
	
	
		bc078e4eab
		
	
	
	
	
		
			
			Oprofile is currently broken on systems running with NOHZ enabled. A maximum of 1 tick is accounted via the timer_hook if a cpu sleeps for a longer period of time. This does bad things to the percentages in the profiler output. To solve this problem convert oprofile to use a restarting hrtimer instead of the timer_hook. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Robert Richter <robert.richter@amd.com>
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /**
 | |
|  * @file oprof.h
 | |
|  *
 | |
|  * @remark Copyright 2002 OProfile authors
 | |
|  * @remark Read the file COPYING
 | |
|  *
 | |
|  * @author John Levon <levon@movementarian.org>
 | |
|  */
 | |
| 
 | |
| #ifndef OPROF_H
 | |
| #define OPROF_H
 | |
| 
 | |
| int oprofile_setup(void);
 | |
| void oprofile_shutdown(void);
 | |
| 
 | |
| int oprofilefs_register(void);
 | |
| void oprofilefs_unregister(void);
 | |
| 
 | |
| int oprofile_start(void);
 | |
| void oprofile_stop(void);
 | |
| 
 | |
| struct oprofile_operations;
 | |
| 
 | |
| extern unsigned long oprofile_buffer_size;
 | |
| extern unsigned long oprofile_cpu_buffer_size;
 | |
| extern unsigned long oprofile_buffer_watershed;
 | |
| extern unsigned long oprofile_time_slice;
 | |
| 
 | |
| extern struct oprofile_operations oprofile_ops;
 | |
| extern unsigned long oprofile_started;
 | |
| extern unsigned long oprofile_backtrace_depth;
 | |
| 
 | |
| struct super_block;
 | |
| struct dentry;
 | |
| 
 | |
| void oprofile_create_files(struct super_block *sb, struct dentry *root);
 | |
| int oprofile_timer_init(struct oprofile_operations *ops);
 | |
| void oprofile_timer_exit(void);
 | |
| 
 | |
| int oprofile_set_backtrace(unsigned long depth);
 | |
| int oprofile_set_timeout(unsigned long time);
 | |
| 
 | |
| #endif /* OPROF_H */
 |