Home | History | Annotate | Download | only in daemon
      1 /**
      2  * @file daemon/opd_ibs_macro.h
      3  * AMD Instruction Based Sampling (IBS) related macro.
      4  *
      5  * @remark Copyright 2008-2010 OProfile authors
      6  * @remark Read the file COPYING
      7  *
      8  * @author Jason Yeh <jason.yeh (at) amd.com>
      9  * @author Paul Drongowski <paul.drongowski (at) amd.com>
     10  * @author Suravee Suthikulpanit <suravee.suthikulpanit (at) amd.com>
     11  * Copyright (c) 2008 Advanced Micro Devices, Inc.
     12  */
     13 
     14 #ifndef OPD_IBS_MACRO_H
     15 #define OPD_IBS_MACRO_H
     16 
     17 /**
     18  * The following defines are bit masks that are used to select
     19  * IBS fetch event flags and values at the
     20  * MSRC001_1030 IBS Fetch Control Register (IbsFetchCtl)
     21  */
     22 #define FETCH_MASK_LATENCY  0x0000ffff
     23 #define FETCH_MASK_COMPLETE 0x00040000
     24 #define FETCH_MASK_IC_MISS  0x00080000
     25 #define FETCH_MASK_PHY_ADDR 0x00100000
     26 #define FETCH_MASK_PG_SIZE  0x00600000
     27 #define FETCH_MASK_L1_MISS  0x00800000
     28 #define FETCH_MASK_L2_MISS  0x01000000
     29 #define FETCH_MASK_KILLED   \
     30 		(FETCH_MASK_L1_MISS|FETCH_MASK_L2_MISS|FETCH_MASK_PHY_ADDR|\
     31 		FETCH_MASK_COMPLETE|FETCH_MASK_IC_MISS)
     32 
     33 
     34 /**
     35  * The following defines are bit masks that are used to select
     36  * IBS op event flags and values at the MSR level.
     37  */
     38 
     39 /* MSRC001_1035 IBS Op Data Register (IbsOpData) */
     40 #define BR_MASK_RETIRE           0x0000ffff
     41 #define MASK_RIP_INVALID         0x00000040
     42 #define BR_MASK_BRN_RET          0x00000020
     43 #define BR_MASK_BRN_MISP         0x00000010
     44 #define BR_MASK_BRN_TAKEN        0x00000008
     45 #define BR_MASK_RETURN           0x00000004
     46 #define BR_MASK_MISP_RETURN      0x00000002
     47 #define BR_MASK_BRN_RESYNC       0x00000001
     48 
     49 /* MSRC001_1036 IBS Op Data Register (IbsOpData2) */
     50 #define NB_MASK_L3_STATE         0x00000020
     51 #define NB_MASK_REQ_DST_PROC     0x00000010
     52 #define NB_MASK_REQ_DATA_SRC     0x00000007
     53 
     54 /* MSRC001_1037 IBS Op Data Register (IbsOpData3) */
     55 #define DC_MASK_L2_HIT_1G        0x00080000
     56 #define DC_MASK_PHY_ADDR_VALID   0x00040000
     57 #define DC_MASK_LIN_ADDR_VALID   0x00020000
     58 #define DC_MASK_MAB_HIT          0x00010000
     59 #define DC_MASK_LOCKED_OP        0x00008000
     60 #define DC_MASK_UC_MEM_ACCESS    0x00004000
     61 #define DC_MASK_WC_MEM_ACCESS    0x00002000
     62 #define DC_MASK_ST_TO_LD_CANCEL  0x00001000
     63 #define DC_MASK_ST_TO_LD_FOR     0x00000800
     64 #define DC_MASK_ST_BANK_CONFLICT 0x00000400
     65 #define DC_MASK_LD_BANK_CONFLICT 0x00000200
     66 #define DC_MASK_MISALIGN_ACCESS  0x00000100
     67 #define DC_MASK_DC_MISS          0x00000080
     68 #define DC_MASK_L2_HIT_2M        0x00000040
     69 #define DC_MASK_L1_HIT_1G        0x00000020
     70 #define DC_MASK_L1_HIT_2M        0x00000010
     71 #define DC_MASK_L2_TLB_MISS      0x00000008
     72 #define DC_MASK_L1_TLB_MISS      0x00000004
     73 #define DC_MASK_STORE_OP         0x00000002
     74 #define DC_MASK_LOAD_OP          0x00000001
     75 
     76 
     77 /**
     78  * IBS derived events:
     79  *
     80  * IBS derived events are identified by event select values which are
     81  * similar to the event select values that identify performance monitoring
     82  * counter (PMC) events. Event select values for IBS derived events begin
     83  * at 0xf000.
     84  *
     85  * The definitions in this file *must* match definitions
     86  * of IBS derived events. More information
     87  * about IBS derived events is given in the Software Oprimization
     88  * Guide.
     89  */
     90 
     91 /**
     92  * The following defines associate a 16-bit select value with an IBS
     93  * derived fetch event.
     94  */
     95 #define DE_IBS_FETCH_ALL         0xf000
     96 #define DE_IBS_FETCH_KILLED      0xf001
     97 #define DE_IBS_FETCH_ATTEMPTED   0xf002
     98 #define DE_IBS_FETCH_COMPLETED   0xf003
     99 #define DE_IBS_FETCH_ABORTED     0xf004
    100 #define DE_IBS_L1_ITLB_HIT       0xf005
    101 #define DE_IBS_ITLB_L1M_L2H      0xf006
    102 #define DE_IBS_ITLB_L1M_L2M      0xf007
    103 #define DE_IBS_IC_MISS           0xf008
    104 #define DE_IBS_IC_HIT            0xf009
    105 #define DE_IBS_FETCH_4K_PAGE     0xf00a
    106 #define DE_IBS_FETCH_2M_PAGE     0xf00b
    107 #define DE_IBS_FETCH_1G_PAGE     0xf00c
    108 #define DE_IBS_FETCH_XX_PAGE     0xf00d
    109 #define DE_IBS_FETCH_LATENCY     0xf00e
    110 
    111 #define IBS_FETCH_BASE           0xf000
    112 #define IBS_FETCH_END            0xf00e
    113 #define IBS_FETCH_MAX            (IBS_FETCH_END - IBS_FETCH_BASE + 1)
    114 #define IS_IBS_FETCH(x)          (IBS_FETCH_BASE <= x && x <= IBS_FETCH_END)
    115 #define IBS_FETCH_OFFSET(x)      (x - IBS_FETCH_BASE)
    116 #define CHECK_FETCH_SELECTED_FLAG(x)	if ( selected_flag & (1 << IBS_FETCH_OFFSET(x)))
    117 
    118 
    119 /**
    120  * The following defines associate a 16-bit select value with an IBS
    121  * derived branch/return macro-op event.
    122  */
    123 #define DE_IBS_OP_ALL             0xf100
    124 #define DE_IBS_OP_TAG_TO_RETIRE   0xf101
    125 #define DE_IBS_OP_COMP_TO_RETIRE  0xf102
    126 #define DE_IBS_BRANCH_RETIRED     0xf103
    127 #define DE_IBS_BRANCH_MISP        0xf104
    128 #define DE_IBS_BRANCH_TAKEN       0xf105
    129 #define DE_IBS_BRANCH_MISP_TAKEN  0xf106
    130 #define DE_IBS_RETURN             0xf107
    131 #define DE_IBS_RETURN_MISP        0xf108
    132 #define DE_IBS_RESYNC             0xf109
    133 
    134 #define IBS_OP_BASE               0xf100
    135 #define IBS_OP_END                0xf109
    136 #define IBS_OP_MAX                (IBS_OP_END - IBS_OP_BASE + 1)
    137 #define IS_IBS_OP(x)              (IBS_OP_BASE <= x && x <= IBS_OP_END)
    138 #define IBS_OP_OFFSET(x)          (x - IBS_OP_BASE)
    139 #define CHECK_OP_SELECTED_FLAG(x)	if ( selected_flag & (1 << IBS_OP_OFFSET(x)))
    140 
    141 
    142 /**
    143  * The following defines associate a 16-bit select value with an IBS
    144  * derived load/store event.
    145  */
    146 #define DE_IBS_LS_ALL_OP         0xf200
    147 #define DE_IBS_LS_LOAD_OP        0xf201
    148 #define DE_IBS_LS_STORE_OP       0xf202
    149 #define DE_IBS_LS_DTLB_L1H       0xf203
    150 #define DE_IBS_LS_DTLB_L1M_L2H   0xf204
    151 #define DE_IBS_LS_DTLB_L1M_L2M   0xf205
    152 #define DE_IBS_LS_DC_MISS        0xf206
    153 #define DE_IBS_LS_DC_HIT         0xf207
    154 #define DE_IBS_LS_MISALIGNED     0xf208
    155 #define DE_IBS_LS_BNK_CONF_LOAD  0xf209
    156 #define DE_IBS_LS_BNK_CONF_STORE 0xf20a
    157 #define DE_IBS_LS_STL_FORWARDED  0xf20b
    158 #define DE_IBS_LS_STL_CANCELLED  0xf20c
    159 #define DE_IBS_LS_UC_MEM_ACCESS  0xf20d
    160 #define DE_IBS_LS_WC_MEM_ACCESS  0xf20e
    161 #define DE_IBS_LS_LOCKED_OP      0xf20f
    162 #define DE_IBS_LS_MAB_HIT        0xf210
    163 #define DE_IBS_LS_L1_DTLB_4K     0xf211
    164 #define DE_IBS_LS_L1_DTLB_2M     0xf212
    165 #define DE_IBS_LS_L1_DTLB_1G     0xf213
    166 #define DE_IBS_LS_L1_DTLB_RES    0xf214
    167 #define DE_IBS_LS_L2_DTLB_4K     0xf215
    168 #define DE_IBS_LS_L2_DTLB_2M     0xf216
    169 #define DE_IBS_LS_L2_DTLB_1G     0xf217
    170 #define DE_IBS_LS_L2_DTLB_RES2   0xf218
    171 #define DE_IBS_LS_DC_LOAD_LAT    0xf219
    172 
    173 #define IBS_OP_LS_BASE           0xf200
    174 #define IBS_OP_LS_END            0xf219
    175 #define IBS_OP_LS_MAX            (IBS_OP_LS_END - IBS_OP_LS_BASE + 1)
    176 #define IS_IBS_OP_LS(x)          (IBS_OP_LS_BASE <= x && x <= IBS_OP_LS_END)
    177 #define IBS_OP_LS_OFFSET(x)      (x - IBS_OP_LS_BASE)
    178 #define CHECK_OP_LS_SELECTED_FLAG(x)	if ( selected_flag & (1 << IBS_OP_LS_OFFSET(x)))
    179 
    180 
    181 /**
    182  * The following defines associate a 16-bit select value with an IBS
    183  * derived Northbridge (NB) event.
    184  */
    185 #define DE_IBS_NB_LOCAL          0xf240
    186 #define DE_IBS_NB_REMOTE         0xf241
    187 #define DE_IBS_NB_LOCAL_L3       0xf242
    188 #define DE_IBS_NB_LOCAL_CACHE    0xf243
    189 #define DE_IBS_NB_REMOTE_CACHE   0xf244
    190 #define DE_IBS_NB_LOCAL_DRAM     0xf245
    191 #define DE_IBS_NB_REMOTE_DRAM    0xf246
    192 #define DE_IBS_NB_LOCAL_OTHER    0xf247
    193 #define DE_IBS_NB_REMOTE_OTHER   0xf248
    194 #define DE_IBS_NB_CACHE_STATE_M  0xf249
    195 #define DE_IBS_NB_CACHE_STATE_O  0xf24a
    196 #define DE_IBS_NB_LOCAL_LATENCY  0xf24b
    197 #define DE_IBS_NB_REMOTE_LATENCY 0xf24c
    198 
    199 #define IBS_OP_NB_BASE           0xf240
    200 #define IBS_OP_NB_END            0xf24c
    201 #define IBS_OP_NB_MAX            (IBS_OP_NB_END - IBS_OP_NB_BASE + 1)
    202 #define IS_IBS_OP_NB(x)          (IBS_OP_NB_BASE <= x && x <= IBS_OP_NB_END)
    203 #define IBS_OP_NB_OFFSET(x)      (x - IBS_OP_NB_BASE)
    204 #define CHECK_OP_NB_SELECTED_FLAG(x)	if ( selected_flag & (1 << IBS_OP_NB_OFFSET(x)))
    205 
    206 
    207 #define OP_MAX_IBS_COUNTERS      (IBS_FETCH_MAX + IBS_OP_MAX + IBS_OP_LS_MAX + IBS_OP_NB_MAX)
    208 
    209 
    210 /**
    211  * These macro decodes IBS hardware-level event flags and fields.
    212  * Translation results are either zero (false) or non-zero (true), except
    213  * the fetch latency, which is a 16-bit cycle count, and the fetch page size
    214  * field, which is a 2-bit unsigned integer.
    215  */
    216 
    217 /** Bits 47:32 IbsFetchLat: instruction fetch latency */
    218 #define IBS_FETCH_FETCH_LATENCY(x)              ((unsigned short)(x->ibs_fetch_ctl_high & FETCH_MASK_LATENCY))
    219 
    220 /** Bit 50 IbsFetchComp: instruction fetch complete. */
    221 #define IBS_FETCH_FETCH_COMPLETION(x)           ((x->ibs_fetch_ctl_high & FETCH_MASK_COMPLETE) != 0)
    222 
    223 /** Bit 51 IbsIcMiss: instruction cache miss. */
    224 #define IBS_FETCH_INST_CACHE_MISS(x)            ((x->ibs_fetch_ctl_high & FETCH_MASK_IC_MISS) != 0)
    225 
    226 /** Bit 52 IbsPhyAddrValid: instruction fetch physical address valid. */
    227 #define IBS_FETCH_PHYS_ADDR_VALID(x)            ((x->ibs_fetch_ctl_high & FETCH_MASK_PHY_ADDR) != 0)
    228 
    229 enum IBSL1PAGESIZE {
    230 	L1TLB4K = 0,
    231 	L1TLB2M,
    232 	L1TLB1G,
    233 	L1TLB_INVALID
    234 };
    235 
    236 /** Bits 54:53 IbsL1TlbPgSz: instruction cache L1TLB page size. */
    237 #define IBS_FETCH_TLB_PAGE_SIZE(x)              ((unsigned short)((x->ibs_fetch_ctl_high >> 21) & 0x3))
    238 #define IBS_FETCH_TLB_PAGE_SIZE_4K(x)           (IBS_FETCH_TLB_PAGE_SIZE(x) == L1TLB4K)
    239 #define IBS_FETCH_TLB_PAGE_SIZE_2M(x)           (IBS_FETCH_TLB_PAGE_SIZE(x) == L1TLB2M)
    240 #define IBS_FETCH_TLB_PAGE_SIZE_1G(x)           (IBS_FETCH_TLB_PAGE_SIZE(x) == L1TLB1G)
    241 
    242 /** Bit 55 IbsL1TlbMiss: instruction cache L1TLB miss. */
    243 #define IBS_FETCH_M_L1_TLB_MISS(x)              ((x->ibs_fetch_ctl_high & FETCH_MASK_L1_MISS) != 0)
    244 
    245 /** Bit 56 IbsL2TlbMiss: instruction cache L2TLB miss. */
    246 #define IBS_FETCH_L2_TLB_MISS(x)                ((x->ibs_fetch_ctl_high & FETCH_MASK_L2_MISS) != 0)
    247 
    248 /** A fetch is a killed fetch if all the masked bits are clear */
    249 #define IBS_FETCH_KILLED(x)                     ((x->ibs_fetch_ctl_high & FETCH_MASK_KILLED) == 0)
    250 
    251 #define IBS_FETCH_INST_CACHE_HIT(x)             (IBS_FETCH_FETCH_COMPLETION(x) && !IBS_FETCH_INST_CACHE_MISS(x))
    252 
    253 #define IBS_FETCH_L1_TLB_HIT(x)                 (!IBS_FETCH_M_L1_TLB_MISS(x) && IBS_FETCH_PHYS_ADDR_VALID(x))
    254 
    255 #define IBS_FETCH_ITLB_L1M_L2H(x)               (IBS_FETCH_M_L1_TLB_MISS(x) && !IBS_FETCH_L2_TLB_MISS(x))
    256 
    257 #define IBS_FETCH_ITLB_L1M_L2M(x)               (IBS_FETCH_M_L1_TLB_MISS(x) && IBS_FETCH_L2_TLB_MISS(x))
    258 
    259 
    260 /**
    261  * These macros translates IBS op event data from its hardware-level
    262  * representation .It hides the MSR layout of IBS op data.
    263  */
    264 
    265 /**
    266  * MSRC001_1035 IBS OP Data Register (IbsOpData)
    267  *
    268  * 15:0 IbsCompToRetCtr: macro-op completion to retire count
    269  */
    270 #define IBS_OP_COM_TO_RETIRE_CYCLES(x)          ((unsigned short)(x->ibs_op_data1_low & BR_MASK_RETIRE))
    271 
    272 /** 31:16 tag_to_retire_cycles : macro-op tag to retire count. */
    273 #define IBS_OP_TAG_TO_RETIRE_CYCLES(x)          ((unsigned short)((x->ibs_op_data1_low >> 16) & BR_MASK_RETIRE))
    274 
    275 /** 32 op_branch_resync : resync macro-op. */
    276 #define IBS_OP_BRANCH_RESYNC(x)                 ((x->ibs_op_data1_high & BR_MASK_BRN_RESYNC) != 0)
    277 
    278 /** 33 op_mispredict_return : mispredicted return macro-op. */
    279 #define IBS_OP_MISPREDICT_RETURN(x)             ((x->ibs_op_data1_high & BR_MASK_MISP_RETURN) != 0)
    280 
    281 /** 34 IbsOpReturn: return macro-op. */
    282 #define IBS_OP_RETURN(x)                        ((x->ibs_op_data1_high & BR_MASK_RETURN) != 0)
    283 
    284 /** 35 IbsOpBrnTaken: taken branch macro-op. */
    285 #define IBS_OP_BRANCH_TAKEN(x)                  ((x->ibs_op_data1_high & BR_MASK_BRN_TAKEN) != 0)
    286 
    287 /** 36 IbsOpBrnMisp: mispredicted branch macro-op.  */
    288 #define IBS_OP_BRANCH_MISPREDICT(x)             ((x->ibs_op_data1_high & BR_MASK_BRN_MISP) != 0)
    289 
    290 /** 37 IbsOpBrnRet: branch macro-op retired. */
    291 #define IBS_OP_BRANCH_RETIRED(x)                ((x->ibs_op_data1_high & BR_MASK_BRN_RET) != 0)
    292 
    293 /** 38 IbsRipInvalid: RIP invalid. */
    294 #define IBS_OP_RIP_INVALID(x)                   ((x->ibs_op_data1_high & MASK_RIP_INVALID) != 0)
    295 
    296 /**
    297  * MSRC001_1036 IBS Op Data 2 Register (IbsOpData2)
    298  *
    299  * 5 NbIbsReqCacheHitSt: IBS L3 cache state
    300  */
    301 #define IBS_OP_NB_IBS_CACHE_HIT_ST(x)           ((x->ibs_op_data2_low & NB_MASK_L3_STATE) != 0)
    302 
    303 /** 4 NbIbsReqDstProc: IBS request destination processor */
    304 #define IBS_OP_NB_IBS_REQ_DST_PROC(x)           ((x->ibs_op_data2_low & NB_MASK_REQ_DST_PROC) != 0)
    305 
    306 /** 2:0 NbIbsReqSrc: Northbridge IBS request data source */
    307 #define IBS_OP_NB_IBS_REQ_SRC(x)                ((unsigned char)(x->ibs_op_data2_low & NB_MASK_REQ_DATA_SRC))
    308 
    309 #define IBS_OP_NB_IBS_REQ_SRC_01(x)             (IBS_OP_NB_IBS_REQ_SRC(x) == 0x01)
    310 
    311 #define IBS_OP_NB_IBS_REQ_SRC_02(x)             (IBS_OP_NB_IBS_REQ_SRC(x) == 0x02)
    312 
    313 #define IBS_OP_NB_IBS_REQ_SRC_03(x)             (IBS_OP_NB_IBS_REQ_SRC(x) == 0x03)
    314 
    315 #define IBS_OP_NB_IBS_REQ_SRC_07(x)             (IBS_OP_NB_IBS_REQ_SRC(x) == 0x07)
    316 
    317 /**
    318  * MSRC001_1037 IBS Op Data3 Register
    319  *
    320  * Bits 47:32   IbsDcMissLat
    321  */
    322 #define IBS_OP_DC_MISS_LATENCY(x)               ((unsigned short)(x->ibs_op_data3_high & 0xffff))
    323 
    324 /** 0 IbsLdOp: Load op */
    325 #define IBS_OP_IBS_LD_OP(x)                     ((x->ibs_op_data3_low & DC_MASK_LOAD_OP) != 0)
    326 
    327 /** 1 IbsStOp: Store op */
    328 #define IBS_OP_IBS_ST_OP(x)                     ((x->ibs_op_data3_low & DC_MASK_STORE_OP) != 0)
    329 
    330 /** 2 ibs_dc_l1_tlb_miss: Data cache L1TLB miss */
    331 #define IBS_OP_IBS_DC_L1_TLB_MISS(x)            ((x->ibs_op_data3_low & DC_MASK_L1_TLB_MISS) != 0)
    332 
    333 /** 3 ibs_dc_l2_tlb_miss: Data cache L2TLB miss */
    334 #define IBS_OP_IBS_DC_L2_TLB_MISS(x)            ((x->ibs_op_data3_low & DC_MASK_L2_TLB_MISS) != 0)
    335 
    336 /** 4 IbsDcL1tlbHit2M: Data cache L1TLB hit in 2M page */
    337 #define IBS_OP_IBS_DC_L1_TLB_HIT_2MB(x)         ((x->ibs_op_data3_low & DC_MASK_L1_HIT_2M) != 0)
    338 
    339 /** 5 ibs_dc_l1_tlb_hit_1gb: Data cache L1TLB hit in 1G page */
    340 #define IBS_OP_IBS_DC_L1_TLB_HIT_1GB(x)         ((x->ibs_op_data3_low & DC_MASK_L1_HIT_1G) != 0)
    341 
    342 /** 6 ibs_dc_l2_tlb_hit_2mb: Data cache L2TLB hit in 2M page */
    343 #define IBS_OP_IBS_DC_L2_TLB_HIT_2MB(x)         ((x->ibs_op_data3_low & DC_MASK_L2_HIT_2M) != 0)
    344 
    345 /** 7 ibs_dc_miss: Data cache miss */
    346 #define IBS_OP_IBS_DC_MISS(x)                   ((x->ibs_op_data3_low & DC_MASK_DC_MISS) != 0)
    347 
    348 /** 8 ibs_dc_miss_acc: Misaligned access */
    349 #define IBS_OP_IBS_DC_MISS_ACC(x)               ((x->ibs_op_data3_low & DC_MASK_MISALIGN_ACCESS) != 0)
    350 
    351 /** 9 ibs_dc_ld_bnk_con: Bank conflict on load operation */
    352 #define IBS_OP_IBS_DC_LD_BNK_CON(x)             ((x->ibs_op_data3_low & DC_MASK_LD_BANK_CONFLICT) != 0)
    353 
    354 /** 10 ibs_dc_st_bnk_con: Bank conflict on store operation */
    355 #define IBS_OP_IBS_DC_ST_BNK_CON(x)             ((x->ibs_op_data3_low & DC_MASK_ST_BANK_CONFLICT) != 0)
    356 
    357 /** 11 ibs_dc_st_to_ld_fwd : Data forwarded from store to load operation */
    358 #define IBS_OP_IBS_DC_ST_TO_LD_FWD(x)           ((x->ibs_op_data3_low & DC_MASK_ST_TO_LD_FOR) != 0)
    359 
    360 /** 12 ibs_dc_st_to_ld_can: Data forwarding from store to load operation cancelled */
    361 #define IBS_OP_IBS_DC_ST_TO_LD_CAN(x)           ((x->ibs_op_data3_low & DC_MASK_ST_TO_LD_CANCEL) != 0)
    362 
    363 /** 13 ibs_dc_wc_mem_acc : WC memory access */
    364 #define IBS_OP_IBS_DC_WC_MEM_ACC(x)             ((x->ibs_op_data3_low & DC_MASK_WC_MEM_ACCESS) != 0)
    365 
    366 /** 14 ibs_dc_uc_mem_acc : UC memory access */
    367 #define IBS_OP_IBS_DC_UC_MEM_ACC(x)             ((x->ibs_op_data3_low & DC_MASK_UC_MEM_ACCESS) != 0)
    368 
    369 /** 15 ibs_locked_op: Locked operation */
    370 #define IBS_OP_IBS_LOCKED_OP(x)                 ((x->ibs_op_data3_low & DC_MASK_LOCKED_OP) != 0)
    371 
    372 /** 16 ibs_dc_mab_hit : MAB hit */
    373 #define IBS_OP_IBS_DC_MAB_HIT(x)                ((x->ibs_op_data3_low & DC_MASK_MAB_HIT) != 0)
    374 
    375 /** 17 IbsDcLinAddrValid: Data cache linear address valid */
    376 #define IBS_OP_IBS_DC_LIN_ADDR_VALID(x)         ((x->ibs_op_data3_low & DC_MASK_LIN_ADDR_VALID) != 0)
    377 
    378 /** 18 ibs_dc_phy_addr_valid: Data cache physical address valid */
    379 #define IBS_OP_IBS_DC_PHY_ADDR_VALID(x)         ((x->ibs_op_data3_low & DC_MASK_PHY_ADDR_VALID) != 0)
    380 
    381 /** 19 ibs_dc_l2_tlb_hit_1gb: Data cache L2TLB hit in 1G page */
    382 #define IBS_OP_IBS_DC_L2_TLB_HIT_1GB(x)         ((x->ibs_op_data3_low & DC_MASK_L2_HIT_1G) != 0)
    383 
    384 
    385 /**
    386  * Aggregate the IBS derived event. Increase the
    387  * derived event count by one.
    388  */
    389 #define AGG_IBS_EVENT(EV)               opd_log_ibs_event(EV, trans)
    390 
    391 /**
    392  * Aggregate the IBS latency/cycle counts. Increase the
    393  * derived event count by the specified count value.
    394  */
    395 #define AGG_IBS_COUNT(EV, COUNT)        opd_log_ibs_count(EV, trans, COUNT)
    396 
    397 #endif /*OPD_IBS_MACRO_H*/
    398