OSDN Git Service

Create 32- and 64-bit versions of OProfile host tools for post processing.
authorBen Cheng <bccheng@google.com>
Fri, 2 Oct 2009 17:06:12 +0000 (10:06 -0700)
committerBen Cheng <bccheng@google.com>
Fri, 2 Oct 2009 17:21:19 +0000 (10:21 -0700)
android-bc__triaged bug 2162989.

linux-x86_64/oprofile/abi/arm_abi [new file with mode: 0644]
linux-x86_64/oprofile/arm/armv6/events [new file with mode: 0644]
linux-x86_64/oprofile/arm/armv6/unit_masks [new file with mode: 0644]
linux-x86_64/oprofile/arm/armv7/events [new file with mode: 0644]
linux-x86_64/oprofile/arm/armv7/unit_masks [new file with mode: 0644]
linux-x86_64/oprofile/bin/opannotate [new file with mode: 0755]
linux-x86_64/oprofile/bin/oparchive [new file with mode: 0755]
linux-x86_64/oprofile/bin/opimport [new file with mode: 0755]
linux-x86_64/oprofile/bin/opreport [new file with mode: 0755]

diff --git a/linux-x86_64/oprofile/abi/arm_abi b/linux-x86_64/oprofile/abi/arm_abi
new file mode 100644 (file)
index 0000000..f27e0c6
--- /dev/null
@@ -0,0 +1,31 @@
+sizeof_double 8
+sizeof_time_t 4
+sizeof_u8 1
+sizeof_u32 4
+sizeof_int 4
+sizeof_unsigned_int 4
+sizeof_odb_key_t 8
+sizeof_odb_index_t 4
+sizeof_odb_value_t 4
+sizeof_odb_node_nr_t 4
+sizeof_odb_descr_t 32
+sizeof_odb_node_t 16
+sizeof_struct_opd_header 88
+offsetof_node_key 0
+offsetof_node_value 8
+offsetof_node_next 12
+offsetof_descr_size 0
+offsetof_descr_current_size 4
+offsetof_header_magic 0
+offsetof_header_version 4
+offsetof_header_cpu_type 8
+offsetof_header_ctr_event 12
+offsetof_header_ctr_um 16
+offsetof_header_ctr_count 20
+offsetof_header_is_kernel 24
+offsetof_header_cpu_speed 32
+offsetof_header_mtime 40
+offsetof_header_cg_to_is_kernel 44
+offsetof_header_anon_start 64
+offsetof_header_cg_to_anon_start 72
+little_endian 1
diff --git a/linux-x86_64/oprofile/arm/armv6/events b/linux-x86_64/oprofile/arm/armv6/events
new file mode 100644 (file)
index 0000000..d885118
--- /dev/null
@@ -0,0 +1,23 @@
+# ARM V6 events
+#
+event:0x00 counters:0,1 um:zero minimum:500 name:IFU_IFETCH_MISS : number of instruction fetch misses
+event:0x01 counters:0,1 um:zero minimum:500 name:CYCLES_IFU_MEM_STALL : cycles instruction fetch pipe is stalled
+event:0x02 counters:0,1 um:zero minimum:500 name:CYCLES_DATA_STALL : cycles stall occurs for due to data dependency
+event:0x03 counters:0,1 um:zero minimum:500 name:ITLB_MISS : number of Instruction MicroTLB misses
+event:0x04 counters:0,1 um:zero minimum:500 name:DTLB_MISS : number of Data MicroTLB misses
+event:0x05 counters:0,1 um:zero minimum:500 name:BR_INST_EXECUTED : branch instruction executed w/ or w/o program flow change
+event:0x06 counters:0,1 um:zero minimum:500 name:BR_INST_MISS_PRED : branch mispredicted
+event:0x07 counters:0,1 um:zero minimum:500 name:INSN_EXECUTED : instructions executed
+event:0x09 counters:0,1 um:zero minimum:500 name:DCACHE_ACCESS : data cache access, cacheable locations
+event:0x0a counters:0,1 um:zero minimum:500 name:DCACHE_ACCESS_ALL : data cache access, all locations
+event:0x0b counters:0,1 um:zero minimum:500 name:DCACHE_MISS : data cache miss
+event:0x0c counters:0,1 um:zero minimum:500 name:DCACHE_WB : data cache writeback, 1 event for every half cacheline
+event:0x0d counters:0,1 um:zero minimum:500 name:PC_CHANGE : number of times the program counter was changed without a mode switch
+event:0x0f counters:0,1 um:zero minimum:500 name:TLB_MISS : Main TLB miss
+event:0x10 counters:0,1 um:zero minimum:500 name:EXP_EXTERNAL : Explict external data access
+event:0x11 counters:0,1 um:zero minimum:500 name:LSU_STALL : cycles stalled because Load Store request queque is full
+event:0x12 counters:0,1 um:zero minimum:500 name:WRITE_DRAIN : Times write buffer was drained
+event:0x20 counters:0,1 um:zero minimum:500 name:ETMEXTOUT0 : nuber of cycles ETMEXTOUT[0] signal was asserted
+event:0x21 counters:0,1 um:zero minimum:500 name:ETMEXTOUT1 : nuber of cycles ETMEXTOUT[1] signal was asserted
+event:0x22 counters:0,1 um:zero minimum:500 name:ETMEXTOUT_BOTH : nuber of cycles both ETMEXTOUT [0] and [1] were asserted * 2
+event:0xff counters:0,1,2 um:zero minimum:500 name:CPU_CYCLES : clock cycles counter
diff --git a/linux-x86_64/oprofile/arm/armv6/unit_masks b/linux-x86_64/oprofile/arm/armv6/unit_masks
new file mode 100644 (file)
index 0000000..4add7e4
--- /dev/null
@@ -0,0 +1,4 @@
+# ARM V6 PMU possible unit masks
+#
+name:zero type:mandatory default:0x00
+       0x00 No unit mask
diff --git a/linux-x86_64/oprofile/arm/armv7/events b/linux-x86_64/oprofile/arm/armv7/events
new file mode 100644 (file)
index 0000000..ffecf2b
--- /dev/null
@@ -0,0 +1,53 @@
+# ARM V7 events
+# From Cortex A8 DDI (ARM DDI 0344B, revision r1p1) 
+#
+event:0x00 counters:1,2,3,4 um:zero minimum:500 name:PMNC_SW_INCR : Software increment of PMNC registers
+event:0x01 counters:1,2,3,4 um:zero minimum:500 name:IFETCH_MISS : Instruction fetch misses from cache or normal cacheable memory
+event:0x02 counters:1,2,3,4 um:zero minimum:500 name:ITLB_MISS : Instruction fetch misses from TLB
+event:0x03 counters:1,2,3,4 um:zero minimum:500 name:DCACHE_REFILL : Data R/W operation that causes a refill from cache or normal cacheable memory
+event:0x04 counters:1,2,3,4 um:zero minimum:500 name:DCACHE_ACCESS : Data R/W from cache
+event:0x05 counters:1,2,3,4 um:zero minimum:500 name:DTLB_REFILL : Data R/W that causes a TLB refill
+event:0x06 counters:1,2,3,4 um:zero minimum:500 name:DREAD : Data read architecturally executed (note: architecturally executed = for instructions that are unconditional or that pass the condition code)
+event:0x07 counters:1,2,3,4 um:zero minimum:500 name:DWRITE : Data write architecturally executed
+event:0x08 counters:1,2,3,4 um:zero minimum:500 name:INSTR_EXECUTED : All executed instructions
+event:0x09 counters:1,2,3,4 um:zero minimum:500 name:EXC_TAKEN : Exception taken
+event:0x0A counters:1,2,3,4 um:zero minimum:500 name:EXC_EXECUTED : Exception return architecturally executed
+event:0x0B counters:1,2,3,4 um:zero minimum:500 name:CID_WRITE : Instruction that writes to the Context ID Register architecturally executed
+event:0x0C counters:1,2,3,4 um:zero minimum:500 name:PC_WRITE : SW change of PC, architecturally executed (not by exceptions)
+event:0x0D counters:1,2,3,4 um:zero minimum:500 name:PC_IMM_BRANCH : Immediate branch instruction executed (taken or not)
+event:0x0E counters:1,2,3,4 um:zero minimum:500 name:PC_PROC_RETURN : Procedure return architecturally executed (not by exceptions)
+event:0x0F counters:1,2,3,4 um:zero minimum:500 name:UNALIGNED_ACCESS : Unaligned access architecturally executed
+event:0x10 counters:1,2,3,4 um:zero minimum:500 name:PC_BRANCH_MIS_PRED : Branch mispredicted or not predicted. Counts pipeline flushes because of misprediction
+event:0x12 counters:1,2,3,4 um:zero minimum:500 name:PC_BRANCH_MIS_USED : Branch or change in program flow that could have been predicted
+event:0x40 counters:1,2,3,4 um:zero minimum:500 name:WRITE_BUFFER_FULL : Any write buffer full cycle
+event:0x41 counters:1,2,3,4 um:zero minimum:500 name:L2_STORE_MERGED : Any store that is merged in L2 cache
+event:0x42 counters:1,2,3,4 um:zero minimum:500 name:L2_STORE_BUFF : Any bufferable store from load/store to L2 cache
+event:0x43 counters:1,2,3,4 um:zero minimum:500 name:L2_ACCESS : Any access to L2 cache
+event:0x44 counters:1,2,3,4 um:zero minimum:500 name:L2_CACH_MISS : Any cacheable miss in L2 cache
+event:0x45 counters:1,2,3,4 um:zero minimum:500 name:AXI_READ_CYCLES : Number of cycles for an active AXI read
+event:0x46 counters:1,2,3,4 um:zero minimum:500 name:AXI_WRITE_CYCLES : Number of cycles for an active AXI write
+event:0x47 counters:1,2,3,4 um:zero minimum:500 name:MEMORY_REPLAY : Any replay event in the memory subsystem
+event:0x48 counters:1,2,3,4 um:zero minimum:500 name:UNALIGNED_ACCESS_REPLAY : Unaligned access that causes a replay
+event:0x49 counters:1,2,3,4 um:zero minimum:500 name:L1_DATA_MISS : L1 data cache miss as a result of the hashing algorithm
+event:0x4A counters:1,2,3,4 um:zero minimum:500 name:L1_INST_MISS : L1 instruction cache miss as a result of the hashing algorithm
+event:0x4B counters:1,2,3,4 um:zero minimum:500 name:L1_DATA_COLORING : L1 data access in which a page coloring alias occurs
+event:0x4C counters:1,2,3,4 um:zero minimum:500 name:L1_NEON_DATA : NEON data access that hits L1 cache
+event:0x4D counters:1,2,3,4 um:zero minimum:500 name:L1_NEON_CACH_DATA : NEON cacheable data access that hits L1 cache
+event:0x4E counters:1,2,3,4 um:zero minimum:500 name:L2_NEON : L2 access as a result of NEON memory access
+event:0x4F counters:1,2,3,4 um:zero minimum:500 name:L2_NEON_HIT : Any NEON hit in L2 cache
+event:0x50 counters:1,2,3,4 um:zero minimum:500 name:L1_INST : Any L1 instruction cache access, excluding CP15 cache accesses
+event:0x51 counters:1,2,3,4 um:zero minimum:500 name:PC_RETURN_MIS_PRED : Return stack misprediction at return stack pop (incorrect target address)
+event:0x52 counters:1,2,3,4 um:zero minimum:500 name:PC_BRANCH_FAILED : Branch prediction misprediction
+event:0x53 counters:1,2,3,4 um:zero minimum:500 name:PC_BRANCH_TAKEN : Any predicted branch that is taken
+event:0x54 counters:1,2,3,4 um:zero minimum:500 name:PC_BRANCH_EXECUTED : Any taken branch that is executed
+event:0x55 counters:1,2,3,4 um:zero minimum:500 name:OP_EXECUTED : Number of operations executed (in instruction or mutli-cycle instruction)
+event:0x56 counters:1,2,3,4 um:zero minimum:500 name:CYCLES_INST_STALL : Cycles where no instruction available
+event:0x57 counters:1,2,3,4 um:zero minimum:500 name:CYCLES_INST : Number of instructions issued in a cycle
+event:0x58 counters:1,2,3,4 um:zero minimum:500 name:CYCLES_NEON_DATA_STALL : Number of cycles the processor waits on MRC data from NEON
+event:0x59 counters:1,2,3,4 um:zero minimum:500 name:CYCLES_NEON_INST_STALL : Number of cycles the processor waits on NEON instruction queue or NEON load queue
+event:0x5A counters:1,2,3,4 um:zero minimum:500 name:NEON_CYCLES : Number of cycles NEON and integer processors are not idle
+event:0x70 counters:1,2,3,4 um:zero minimum:500 name:PMU0_EVENTS : Number of events from external input source PMUEXTIN[0]
+event:0x71 counters:1,2,3,4 um:zero minimum:500 name:PMU1_EVENTS : Number of events from external input source PMUEXTIN[1]
+event:0x72 counters:1,2,3,4 um:zero minimum:500 name:PMU_EVENTS : Number of events from both external input sources PMUEXTIN[0] and PMUEXTIN[1]
+event:0xFF counters:0 um:zero minimum:500 name:CPU_CYCLES : Number of CPU cycles
+
diff --git a/linux-x86_64/oprofile/arm/armv7/unit_masks b/linux-x86_64/oprofile/arm/armv7/unit_masks
new file mode 100644 (file)
index 0000000..4027469
--- /dev/null
@@ -0,0 +1,4 @@
+# ARM V7 PMNC possible unit masks
+#
+name:zero type:mandatory default:0x00
+       0x00 No unit mask
diff --git a/linux-x86_64/oprofile/bin/opannotate b/linux-x86_64/oprofile/bin/opannotate
new file mode 100755 (executable)
index 0000000..675def3
Binary files /dev/null and b/linux-x86_64/oprofile/bin/opannotate differ
diff --git a/linux-x86_64/oprofile/bin/oparchive b/linux-x86_64/oprofile/bin/oparchive
new file mode 100755 (executable)
index 0000000..9c2fe73
Binary files /dev/null and b/linux-x86_64/oprofile/bin/oparchive differ
diff --git a/linux-x86_64/oprofile/bin/opimport b/linux-x86_64/oprofile/bin/opimport
new file mode 100755 (executable)
index 0000000..2f20419
Binary files /dev/null and b/linux-x86_64/oprofile/bin/opimport differ
diff --git a/linux-x86_64/oprofile/bin/opreport b/linux-x86_64/oprofile/bin/opreport
new file mode 100755 (executable)
index 0000000..b288482
Binary files /dev/null and b/linux-x86_64/oprofile/bin/opreport differ