~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/ia64/include/asm/perfmon_default_smpl.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2002-2003 Hewlett-Packard Co
 
3
 *               Stephane Eranian <eranian@hpl.hp.com>
 
4
 *
 
5
 * This file implements the default sampling buffer format
 
6
 * for Linux/ia64 perfmon subsystem.
 
7
 */
 
8
#ifndef __PERFMON_DEFAULT_SMPL_H__
 
9
#define __PERFMON_DEFAULT_SMPL_H__ 1
 
10
 
 
11
#define PFM_DEFAULT_SMPL_UUID { \
 
12
                0x4d, 0x72, 0xbe, 0xc0, 0x06, 0x64, 0x41, 0x43, 0x82, 0xb4, 0xd3, 0xfd, 0x27, 0x24, 0x3c, 0x97}
 
13
 
 
14
/*
 
15
 * format specific parameters (passed at context creation)
 
16
 */
 
17
typedef struct {
 
18
        unsigned long buf_size;         /* size of the buffer in bytes */
 
19
        unsigned int  flags;            /* buffer specific flags */
 
20
        unsigned int  res1;             /* for future use */
 
21
        unsigned long reserved[2];      /* for future use */
 
22
} pfm_default_smpl_arg_t;
 
23
 
 
24
/*
 
25
 * combined context+format specific structure. Can be passed
 
26
 * to PFM_CONTEXT_CREATE
 
27
 */
 
28
typedef struct {
 
29
        pfarg_context_t         ctx_arg;
 
30
        pfm_default_smpl_arg_t  buf_arg;
 
31
} pfm_default_smpl_ctx_arg_t;
 
32
 
 
33
/*
 
34
 * This header is at the beginning of the sampling buffer returned to the user.
 
35
 * It is directly followed by the first record.
 
36
 */
 
37
typedef struct {
 
38
        unsigned long   hdr_count;              /* how many valid entries */
 
39
        unsigned long   hdr_cur_offs;           /* current offset from top of buffer */
 
40
        unsigned long   hdr_reserved2;          /* reserved for future use */
 
41
 
 
42
        unsigned long   hdr_overflows;          /* how many times the buffer overflowed */
 
43
        unsigned long   hdr_buf_size;           /* how many bytes in the buffer */
 
44
 
 
45
        unsigned int    hdr_version;            /* contains perfmon version (smpl format diffs) */
 
46
        unsigned int    hdr_reserved1;          /* for future use */
 
47
        unsigned long   hdr_reserved[10];       /* for future use */
 
48
} pfm_default_smpl_hdr_t;
 
49
 
 
50
/*
 
51
 * Entry header in the sampling buffer.  The header is directly followed
 
52
 * with the values of the PMD registers of interest saved in increasing 
 
53
 * index order: PMD4, PMD5, and so on. How many PMDs are present depends 
 
54
 * on how the session was programmed.
 
55
 *
 
56
 * In the case where multiple counters overflow at the same time, multiple
 
57
 * entries are written consecutively.
 
58
 *
 
59
 * last_reset_value member indicates the initial value of the overflowed PMD. 
 
60
 */
 
61
typedef struct {
 
62
        int             pid;                    /* thread id (for NPTL, this is gettid()) */
 
63
        unsigned char   reserved1[3];           /* reserved for future use */
 
64
        unsigned char   ovfl_pmd;               /* index of overflowed PMD */
 
65
 
 
66
        unsigned long   last_reset_val;         /* initial value of overflowed PMD */
 
67
        unsigned long   ip;                     /* where did the overflow interrupt happened  */
 
68
        unsigned long   tstamp;                 /* ar.itc when entering perfmon intr. handler */
 
69
 
 
70
        unsigned short  cpu;                    /* cpu on which the overflow occurred */
 
71
        unsigned short  set;                    /* event set active when overflow occurred   */
 
72
        int             tgid;                   /* thread group id (for NPTL, this is getpid()) */
 
73
} pfm_default_smpl_entry_t;
 
74
 
 
75
#define PFM_DEFAULT_MAX_PMDS            64 /* how many pmds supported by data structures (sizeof(unsigned long) */
 
76
#define PFM_DEFAULT_MAX_ENTRY_SIZE      (sizeof(pfm_default_smpl_entry_t)+(sizeof(unsigned long)*PFM_DEFAULT_MAX_PMDS))
 
77
#define PFM_DEFAULT_SMPL_MIN_BUF_SIZE   (sizeof(pfm_default_smpl_hdr_t)+PFM_DEFAULT_MAX_ENTRY_SIZE)
 
78
 
 
79
#define PFM_DEFAULT_SMPL_VERSION_MAJ    2U
 
80
#define PFM_DEFAULT_SMPL_VERSION_MIN    0U
 
81
#define PFM_DEFAULT_SMPL_VERSION        (((PFM_DEFAULT_SMPL_VERSION_MAJ&0xffff)<<16)|(PFM_DEFAULT_SMPL_VERSION_MIN & 0xffff))
 
82
 
 
83
#endif /* __PERFMON_DEFAULT_SMPL_H__ */