2005-04-17 02:20:36 +04:00
/*
* Copyright ( C ) 2002 - 2003 Hewlett - Packard Co
* Stephane Eranian < eranian @ hpl . hp . com >
*
* This file implements the default sampling buffer format
* for Linux / ia64 perfmon subsystem .
*/
# ifndef __PERFMON_DEFAULT_SMPL_H__
# define __PERFMON_DEFAULT_SMPL_H__ 1
# define PFM_DEFAULT_SMPL_UUID { \
0x4d , 0x72 , 0xbe , 0xc0 , 0x06 , 0x64 , 0x41 , 0x43 , 0x82 , 0xb4 , 0xd3 , 0xfd , 0x27 , 0x24 , 0x3c , 0x97 }
/*
* format specific parameters ( passed at context creation )
*/
typedef struct {
unsigned long buf_size ; /* size of the buffer in bytes */
unsigned int flags ; /* buffer specific flags */
unsigned int res1 ; /* for future use */
unsigned long reserved [ 2 ] ; /* for future use */
} pfm_default_smpl_arg_t ;
/*
* combined context + format specific structure . Can be passed
* to PFM_CONTEXT_CREATE
*/
typedef struct {
pfarg_context_t ctx_arg ;
pfm_default_smpl_arg_t buf_arg ;
} pfm_default_smpl_ctx_arg_t ;
/*
* This header is at the beginning of the sampling buffer returned to the user .
* It is directly followed by the first record .
*/
typedef struct {
unsigned long hdr_count ; /* how many valid entries */
unsigned long hdr_cur_offs ; /* current offset from top of buffer */
unsigned long hdr_reserved2 ; /* reserved for future use */
unsigned long hdr_overflows ; /* how many times the buffer overflowed */
unsigned long hdr_buf_size ; /* how many bytes in the buffer */
unsigned int hdr_version ; /* contains perfmon version (smpl format diffs) */
unsigned int hdr_reserved1 ; /* for future use */
unsigned long hdr_reserved [ 10 ] ; /* for future use */
} pfm_default_smpl_hdr_t ;
/*
* Entry header in the sampling buffer . The header is directly followed
* with the values of the PMD registers of interest saved in increasing
* index order : PMD4 , PMD5 , and so on . How many PMDs are present depends
* on how the session was programmed .
*
* In the case where multiple counters overflow at the same time , multiple
* entries are written consecutively .
*
* last_reset_value member indicates the initial value of the overflowed PMD .
*/
typedef struct {
int pid ; /* thread id (for NPTL, this is gettid()) */
unsigned char reserved1 [ 3 ] ; /* reserved for future use */
unsigned char ovfl_pmd ; /* index of overflowed PMD */
unsigned long last_reset_val ; /* initial value of overflowed PMD */
unsigned long ip ; /* where did the overflow interrupt happened */
unsigned long tstamp ; /* ar.itc when entering perfmon intr. handler */
tree-wide: fix assorted typos all over the place
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.
Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2009-11-14 18:09:05 +03:00
unsigned short cpu ; /* cpu on which the overflow occured */
2005-04-17 02:20:36 +04:00
unsigned short set ; /* event set active when overflow ocurred */
int tgid ; /* thread group id (for NPTL, this is getpid()) */
} pfm_default_smpl_entry_t ;
# define PFM_DEFAULT_MAX_PMDS 64 /* how many pmds supported by data structures (sizeof(unsigned long) */
# define PFM_DEFAULT_MAX_ENTRY_SIZE (sizeof(pfm_default_smpl_entry_t)+(sizeof(unsigned long)*PFM_DEFAULT_MAX_PMDS))
# define PFM_DEFAULT_SMPL_MIN_BUF_SIZE (sizeof(pfm_default_smpl_hdr_t)+PFM_DEFAULT_MAX_ENTRY_SIZE)
# define PFM_DEFAULT_SMPL_VERSION_MAJ 2U
# define PFM_DEFAULT_SMPL_VERSION_MIN 0U
# define PFM_DEFAULT_SMPL_VERSION (((PFM_DEFAULT_SMPL_VERSION_MAJ&0xffff)<<16)|(PFM_DEFAULT_SMPL_VERSION_MIN & 0xffff))
# endif /* __PERFMON_DEFAULT_SMPL_H__ */