mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-15 06:55:13 +08:00
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 */
|