cell_events.h: Cell PM event definitions. Only 'PPE signal group(Thread0)'
events are included.
(Note: Because the event names are created from oprofile event file
automatically, some character gaps etc. exist.)
Signed-off-by: Yoshio Funayama <[EMAIL PROTECTED]>
Signed-off-by: Takayuki Uchikawa <[EMAIL PROTECTED]>
Index: libpfm-3.2-070725/lib/cell_events.h
===================================================================
--- libpfm-3.2-070725_org/lib/cell_events.h
+++ libpfm-3.2-070725/lib/cell_events.h
@@ -0,0 +1,110 @@
+/*
+ * Copyright (c) 2007 TOSHIBA CORPORATION based on code from
+ * Copyright (c) 2001-2006 Hewlett-Packard Development Company, L.P.
+ * Contributed by Stephane Eranian <[EMAIL PROTECTED]>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of version 2 of the GNU General Public
+ * License as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110,
+ * USA
+ *
+ * This file is part of libpfm, a performance monitoring support
+ * library for applications on Linux.
+ */
+
+static pme_cell_entry_t cell_pe[] = {
+ {.pme_name = "Branch_Commit",
+ .pme_desc = " Branch instruction committed. ",
+ .pme_code = 0x834,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_OCCURRENCE,
+ },
+ {.pme_name = "Branch_Flush",
+ .pme_desc = " Branch instruction that caused a misprediction flush is
committed. Branch misprediction includes: (1) misprediction of taken or
not-taken on conditional branch, (2) misprediction of branch target address on
bclr[1] and bcctr[1]. ",
+ .pme_code = 0x835,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_OCCURRENCE,
+ },
+ {.pme_name = "Ibuf_Empty",
+ .pme_desc = " Instruction buffer empty. ",
+ .pme_code = 0x836,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_CUMULATIVE_LEN,
+ },
+ {.pme_name = "IERAT_Miss",
+ .pme_desc = " Instruction effective-address-to-real-address
translation (I-ERAT) miss. ",
+ .pme_code = 0x837,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_OCCURRENCE,
+ },
+ {.pme_name = "IL1_Miss_Cycles",
+ .pme_desc = " : L1 Instruction cache miss cycles. Counts the cycles
from the miss event until the returned instruction is dispatched or cancelled
due to branch misprediction, completion restart, or exceptions (see Note 1). ",
+ .pme_code = 0x838,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_BOTH_TYPE,
+ },
+ {.pme_name = "Dispatch_Blocked",
+ .pme_desc = " : Valid instruction available for dispatch, but dispatch
is blocked. ",
+ .pme_code = 0x83a,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_CUMULATIVE_LEN,
+ },
+ {.pme_name = "Instr_Flushed",
+ .pme_desc = " Instruction in pipeline stage EX7 causes a flush. ",
+ .pme_code = 0x83d,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_OCCURRENCE,
+ },
+ {.pme_name = "PPC_Commit",
+ .pme_desc = " Two PowerPC instructions committed. For microcode
sequences, only the last microcode operation is counted. Committed instructions
are counted two at a time. If only one instruction has committed for a given
cycle, this event will not be raised until another instruction has been
committed in a future cycle. ",
+ .pme_code = 0x83f,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_OCCURRENCE,
+ },
+ {.pme_name = "23_2",
+ .pme_desc = " Data effective-address-to-real-address translation
(D-ERAT) miss. This event is not speculative. ",
+ .pme_code = 0x8fe,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_CUMULATIVE_LEN,
+ },
+ {.pme_name = "23_3",
+ .pme_desc = " Store request counted at the L2 interface. This counts
microcoded PowerPC Processor Element (PPE) sequences more than once (see Note 1
for exceptions). ",
+ .pme_code = 0x8ff,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_CUMULATIVE_LEN,
+ },
+ {.pme_name = "23_4",
+ .pme_desc = " Load valid at a particular pipe stage. This is
speculative because flushed operations are also counted. Counts microcoded PPE
sequences more than once. Misaligned flushes might be counted the first time as
well. Load operations include all loads that read data from the cache, dcbt and
dcbtst. This event does not include load Vector/single instruction multiple
data (SIMD) multimedia extension pattern instructions. ",
+ .pme_code = 0x900,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_CUMULATIVE_LEN,
+ },
+ {.pme_name = "23_5",
+ .pme_desc = " L1 D-cache load miss. Pulsed when there is a miss
request that has a tag miss but not an effective-address-to-real-address
translation (ERAT) miss. This is speculative because flushed operations are
counted as well. ",
+ .pme_code = 0x901,
+ .pme_enable_word = WORD_0_AND_1,
+ .pme_freq = PFM_CELL_PME_FREQ_PPU_MFC,
+ .pme_type = COUNT_TYPE_CUMULATIVE_LEN,
+ },
+};
+#define PME_CELL_EVENT_COUNT (sizeof(cell_pe)/sizeof(pme_cell_entry_t))
_______________________________________________
perfmon mailing list
[email protected]
http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/