blob: 8a5ef823b38c60abceb261537154e3b7114d7ca8 [file] [log] [blame]
/**
* @file op_config.h
*
* Parameters a user may want to change. See
* also op_config_24.h
*
* @remark Copyright 2002 OProfile authors
* @remark Read the file COPYING
*
* @author John Levon
* @author Philippe Elie
* @Modifications Daniel Hansel
*/
#ifndef OP_CONFIG_H
#define OP_CONFIG_H
#if defined(__cplusplus)
extern "C" {
#endif
enum { OPERF_SAMPLES, /**< nr. samples */
OPERF_KERNEL, /**< nr. kernel samples */
OPERF_PROCESS, /**< nr. userspace samples */
OPERF_INVALID_CTX, /**< nr. samples lost due to sample address not in expected range for domain */
OPERF_LOST_KERNEL, /**< nr. kernel samples lost */
OPERF_LOST_SAMPLEFILE, /**< nr samples for which sample file can't be opened */
OPERF_LOST_NO_MAPPING, /**< nr samples lost due to no mapping */
OPERF_NO_APP_KERNEL_SAMPLE, /**<nr. user ctx kernel samples dropped due to no app context available */
OPERF_NO_APP_USER_SAMPLE, /**<nr. user samples dropped due to no app context available */
OPERF_BT_LOST_NO_MAPPING, /**<nr. backtrace samples dropped due to no mapping */
OPERF_LOST_INVALID_HYPERV_ADDR, /**<nr. hypervisor samples dropped due to address out-of-range */
OPERF_RECORD_LOST_SAMPLE, /**<nr. samples lost reported by perf_events kernel */
OPERF_MAX_STATS /**< end of stats */
};
#define OPERF_INDEX_OF_FIRST_LOST_STAT 3
/* Warn on lost samples if number of lost samples is greater the this fraction
* of the total samples
*/
#define OPERF_WARN_LOST_SAMPLES_THRESHOLD 0.0001
extern char * stats_filenames[];
/**
* must be called to initialize the paths below.
* @param session_dir the non-NULL value of the base session directory
*/
void init_op_config_dirs(char const * session_dir);
//void init_op_stats_filenames(char const * session_dir);
#define OP_SESSION_DIR_DEFAULT "/var/lib/oprofile/"
/*@{\name module default/min/max settings */
/** 65536 * sizeof(op_sample) */
#define OP_DEFAULT_BUF_SIZE 65536
/**
* we don't try to wake-up daemon until it remains more than this free entry
* in eviction buffer
*/
#define OP_PRE_WATERMARK(buffer_size) \
(((buffer_size) / 8) < OP_MIN_PRE_WATERMARK \
? OP_MIN_PRE_WATERMARK \
: (buffer_size) / 8)
/** minimal buffer water mark before we try to wakeup daemon */
#define OP_MIN_PRE_WATERMARK 8192
/** maximum number of entry in samples eviction buffer */
#define OP_MAX_BUF_SIZE 1048576
/** minimum number of entry in samples eviction buffer */
#define OP_MIN_BUF_SIZE (32768 + OP_PRE_WATERMARK(32768))
/** maximum sampling rate when using RTC */
#define OP_MAX_RTC_COUNT 4096
/*
* various paths, corresponding to opcontrol, that should be
* initialized by init_op_config_dirs() above.
*/
extern char op_session_dir[];
extern char op_samples_dir[];
extern char op_samples_current_dir[];
extern char op_lock_file[];
extern char op_log_file[];
extern char op_pipe_file[];
extern char op_dump_status[];
/* Global directory that stores debug files */
#ifndef DEBUGDIR
#define DEBUGDIR "/usr/lib/debug"
#endif
#define OPD_MAGIC "DAE\n"
#define OPD_VERSION 0x12
#define OP_MIN_CPU_BUF_SIZE 2048
#define OP_MAX_CPU_BUF_SIZE 131072
#if defined(__cplusplus)
}
#endif
#endif /* OP_CONFIG_H */