/* * * (C) COPYRIGHT 2011-2012 ARM Limited. All rights reserved. * * This program is free software and is provided to you under the terms of the GNU General Public License version 2 * as published by the Free Software Foundation, and any use by you of this program is subject to the terms of such GNU licence. * * A copy of the licence is included with the program, and can also be obtained from Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ #if !defined(_TRACE_MALI_HWC_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_MALI_HWC_H #undef TRACE_SYSTEM #define TRACE_SYSTEM mali_hwc #include DECLARE_EVENT_CLASS(mali_hw_counter_template, TP_PROTO(unsigned int val), TP_ARGS(val), TP_STRUCT__entry( __field( unsigned int, val ) ), TP_fast_assign( __entry->val = val; ), TP_printk("val=%u", __entry->val) ); #define DEFINE_MALI_HW_COUNTER_EVENT(name) \ DEFINE_EVENT(mali_hw_counter_template, mali_hwc_##name, \ TP_PROTO(unsigned int info_val), \ TP_ARGS(info_val)) DEFINE_MALI_HW_COUNTER_EVENT(MESSAGES_SENT); DEFINE_MALI_HW_COUNTER_EVENT(MESSAGES_RECEIVED); DEFINE_MALI_HW_COUNTER_EVENT(GPU_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(IRQ_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(JS0_JOBS); DEFINE_MALI_HW_COUNTER_EVENT(JS0_TASKS); DEFINE_MALI_HW_COUNTER_EVENT(JS0_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(JS0_WAIT_READ); DEFINE_MALI_HW_COUNTER_EVENT(JS0_WAIT_ISSUE); DEFINE_MALI_HW_COUNTER_EVENT(JS0_WAIT_DEPEND); DEFINE_MALI_HW_COUNTER_EVENT(JS0_WAIT_FINISH); DEFINE_MALI_HW_COUNTER_EVENT(JS1_JOBS); DEFINE_MALI_HW_COUNTER_EVENT(JS1_TASKS); DEFINE_MALI_HW_COUNTER_EVENT(JS1_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(JS1_WAIT_READ); DEFINE_MALI_HW_COUNTER_EVENT(JS1_WAIT_ISSUE); DEFINE_MALI_HW_COUNTER_EVENT(JS1_WAIT_DEPEND); DEFINE_MALI_HW_COUNTER_EVENT(JS1_WAIT_FINISH); DEFINE_MALI_HW_COUNTER_EVENT(JS2_JOBS); DEFINE_MALI_HW_COUNTER_EVENT(JS2_TASKS); DEFINE_MALI_HW_COUNTER_EVENT(JS2_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(JS2_WAIT_READ); DEFINE_MALI_HW_COUNTER_EVENT(JS2_WAIT_ISSUE); DEFINE_MALI_HW_COUNTER_EVENT(JS2_WAIT_DEPEND); DEFINE_MALI_HW_COUNTER_EVENT(JS2_WAIT_FINISH); DEFINE_MALI_HW_COUNTER_EVENT(JS3_JOBS); DEFINE_MALI_HW_COUNTER_EVENT(JS3_TASKS); DEFINE_MALI_HW_COUNTER_EVENT(JS3_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(JS3_WAIT_READ); DEFINE_MALI_HW_COUNTER_EVENT(JS3_WAIT_ISSUE); DEFINE_MALI_HW_COUNTER_EVENT(JS3_WAIT_DEPEND); DEFINE_MALI_HW_COUNTER_EVENT(JS3_WAIT_FINISH); DEFINE_MALI_HW_COUNTER_EVENT(JS4_JOBS); DEFINE_MALI_HW_COUNTER_EVENT(JS4_TASKS); DEFINE_MALI_HW_COUNTER_EVENT(JS4_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(JS4_WAIT_READ); DEFINE_MALI_HW_COUNTER_EVENT(JS4_WAIT_ISSUE); DEFINE_MALI_HW_COUNTER_EVENT(JS4_WAIT_DEPEND); DEFINE_MALI_HW_COUNTER_EVENT(JS4_WAIT_FINISH); DEFINE_MALI_HW_COUNTER_EVENT(JS5_JOBS); DEFINE_MALI_HW_COUNTER_EVENT(JS5_TASKS); DEFINE_MALI_HW_COUNTER_EVENT(JS5_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(JS5_WAIT_READ); DEFINE_MALI_HW_COUNTER_EVENT(JS5_WAIT_ISSUE); DEFINE_MALI_HW_COUNTER_EVENT(JS5_WAIT_DEPEND); DEFINE_MALI_HW_COUNTER_EVENT(JS5_WAIT_FINISH); DEFINE_MALI_HW_COUNTER_EVENT(JS6_JOBS); DEFINE_MALI_HW_COUNTER_EVENT(JS6_TASKS); DEFINE_MALI_HW_COUNTER_EVENT(JS6_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(JS6_WAIT_READ); DEFINE_MALI_HW_COUNTER_EVENT(JS6_WAIT_ISSUE); DEFINE_MALI_HW_COUNTER_EVENT(JS6_WAIT_DEPEND); DEFINE_MALI_HW_COUNTER_EVENT(JS6_WAIT_FINISH); DEFINE_MALI_HW_COUNTER_EVENT(JOBS_PROCESSED); DEFINE_MALI_HW_COUNTER_EVENT(TRIANGLES); DEFINE_MALI_HW_COUNTER_EVENT(QUADS); DEFINE_MALI_HW_COUNTER_EVENT(POLYGONS); DEFINE_MALI_HW_COUNTER_EVENT(POINTS); DEFINE_MALI_HW_COUNTER_EVENT(LINES); DEFINE_MALI_HW_COUNTER_EVENT(VCACHE_HIT); DEFINE_MALI_HW_COUNTER_EVENT(VCACHE_MISS); DEFINE_MALI_HW_COUNTER_EVENT(FRONT_FACING); DEFINE_MALI_HW_COUNTER_EVENT(BACK_FACING); DEFINE_MALI_HW_COUNTER_EVENT(PRIM_VISIBLE); DEFINE_MALI_HW_COUNTER_EVENT(PRIM_CULLED); DEFINE_MALI_HW_COUNTER_EVENT(PRIM_CLIPPED); DEFINE_MALI_HW_COUNTER_EVENT(LEVEL0); DEFINE_MALI_HW_COUNTER_EVENT(LEVEL1); DEFINE_MALI_HW_COUNTER_EVENT(LEVEL2); DEFINE_MALI_HW_COUNTER_EVENT(LEVEL3); DEFINE_MALI_HW_COUNTER_EVENT(LEVEL4); DEFINE_MALI_HW_COUNTER_EVENT(LEVEL5); DEFINE_MALI_HW_COUNTER_EVENT(LEVEL6); DEFINE_MALI_HW_COUNTER_EVENT(LEVEL7); DEFINE_MALI_HW_COUNTER_EVENT(COMMAND_1); DEFINE_MALI_HW_COUNTER_EVENT(COMMAND_2); DEFINE_MALI_HW_COUNTER_EVENT(COMMAND_3); DEFINE_MALI_HW_COUNTER_EVENT(COMMAND_4); DEFINE_MALI_HW_COUNTER_EVENT(COMMAND_4_7); DEFINE_MALI_HW_COUNTER_EVENT(COMMAND_8_15); DEFINE_MALI_HW_COUNTER_EVENT(COMMAND_16_63); DEFINE_MALI_HW_COUNTER_EVENT(COMMAND_64); DEFINE_MALI_HW_COUNTER_EVENT(COMPRESS_IN); DEFINE_MALI_HW_COUNTER_EVENT(COMPRESS_OUT); DEFINE_MALI_HW_COUNTER_EVENT(COMPRESS_FLUSH); DEFINE_MALI_HW_COUNTER_EVENT(TIMESTAMPS); DEFINE_MALI_HW_COUNTER_EVENT(PCACHE_HIT); DEFINE_MALI_HW_COUNTER_EVENT(PCACHE_MISS); DEFINE_MALI_HW_COUNTER_EVENT(PCACHE_LINE); DEFINE_MALI_HW_COUNTER_EVENT(PCACHE_STALL); DEFINE_MALI_HW_COUNTER_EVENT(WRBUF_HIT); DEFINE_MALI_HW_COUNTER_EVENT(WRBUF_MISS); DEFINE_MALI_HW_COUNTER_EVENT(WRBUF_LINE); DEFINE_MALI_HW_COUNTER_EVENT(WRBUF_PARTIAL); DEFINE_MALI_HW_COUNTER_EVENT(WRBUF_STALL); DEFINE_MALI_HW_COUNTER_EVENT(ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(LOADING_DESC); DEFINE_MALI_HW_COUNTER_EVENT(INDEX_WAIT); DEFINE_MALI_HW_COUNTER_EVENT(INDEX_RANGE_WAIT); DEFINE_MALI_HW_COUNTER_EVENT(VERTEX_WAIT); DEFINE_MALI_HW_COUNTER_EVENT(PCACHE_WAIT); DEFINE_MALI_HW_COUNTER_EVENT(WRBUF_WAIT); DEFINE_MALI_HW_COUNTER_EVENT(BUS_READ); DEFINE_MALI_HW_COUNTER_EVENT(BUS_WRITE); DEFINE_MALI_HW_COUNTER_EVENT(TILER_UTLB_STALL); DEFINE_MALI_HW_COUNTER_EVENT(TILER_UTLB_REPLAY_MISS); DEFINE_MALI_HW_COUNTER_EVENT(TILER_UTLB_REPLAY_FULL); DEFINE_MALI_HW_COUNTER_EVENT(TILER_UTLB_NEW_MISS); DEFINE_MALI_HW_COUNTER_EVENT(TILER_UTLB_HIT); DEFINE_MALI_HW_COUNTER_EVENT(SHADER_CORE_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_PRIMATIVES); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_PRIMATIVES_DROPPED); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_CYCLE_DESC); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_CYCLES_PLR); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_CYCLES_VERT); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_CYCLES_TRISETUP); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_CYCLES_RAST); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_THREADS); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_DUMMY_THREADS); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_QUADS_RAST); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_QUADS_EZS_TEST); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_QUADS_EZS_KILLED); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_QUADS_LZS_TEST); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_QUADS_LZS_KILLED); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_CYCLE_NO_TILE); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_NUM_TILES); DEFINE_MALI_HW_COUNTER_EVENT(FRAG_TRANS_ELIM); DEFINE_MALI_HW_COUNTER_EVENT(COMPUTE_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(COMPUTE_TASKS); DEFINE_MALI_HW_COUNTER_EVENT(COMPUTE_THREADS); DEFINE_MALI_HW_COUNTER_EVENT(COMPUTE_CYCLES_DESC); DEFINE_MALI_HW_COUNTER_EVENT(TRIPIPE_ACTIVE); DEFINE_MALI_HW_COUNTER_EVENT(ARITH_WORDS); DEFINE_MALI_HW_COUNTER_EVENT(ARITH_CYCLES_REG); DEFINE_MALI_HW_COUNTER_EVENT(ARITH_CYCLES_L0); DEFINE_MALI_HW_COUNTER_EVENT(ARITH_FRAG_DEPEND); DEFINE_MALI_HW_COUNTER_EVENT(LS_WORDS); DEFINE_MALI_HW_COUNTER_EVENT(LS_ISSUES); DEFINE_MALI_HW_COUNTER_EVENT(LS_RESTARTS); DEFINE_MALI_HW_COUNTER_EVENT(LS_REISSUES_MISS); DEFINE_MALI_HW_COUNTER_EVENT(LS_REISSUES_VD); DEFINE_MALI_HW_COUNTER_EVENT(LS_REISSUE_ATTRIB_MISS); DEFINE_MALI_HW_COUNTER_EVENT(LS_NO_WB); DEFINE_MALI_HW_COUNTER_EVENT(TEX_WORDS); DEFINE_MALI_HW_COUNTER_EVENT(TEX_BUBBLES); DEFINE_MALI_HW_COUNTER_EVENT(TEX_WORDS_L0); DEFINE_MALI_HW_COUNTER_EVENT(TEX_WORDS_DESC); DEFINE_MALI_HW_COUNTER_EVENT(TEX_THREADS); DEFINE_MALI_HW_COUNTER_EVENT(TEX_RECIRC_FMISS); DEFINE_MALI_HW_COUNTER_EVENT(TEX_RECIRC_DESC); DEFINE_MALI_HW_COUNTER_EVENT(TEX_RECIRC_MULTI); DEFINE_MALI_HW_COUNTER_EVENT(TEX_RECIRC_PMISS); DEFINE_MALI_HW_COUNTER_EVENT(TEX_RECIRC_CONF); DEFINE_MALI_HW_COUNTER_EVENT(LSC_READ_HITS); DEFINE_MALI_HW_COUNTER_EVENT(LSC_READ_MISSES); DEFINE_MALI_HW_COUNTER_EVENT(LSC_WRITE_HITS); DEFINE_MALI_HW_COUNTER_EVENT(LSC_WRITE_MISSES); DEFINE_MALI_HW_COUNTER_EVENT(LSC_ATOMIC_HITS); DEFINE_MALI_HW_COUNTER_EVENT(LSC_ATOMIC_MISSES); DEFINE_MALI_HW_COUNTER_EVENT(LSC_LINE_FETCHES); DEFINE_MALI_HW_COUNTER_EVENT(LSC_DIRTY_LINE); DEFINE_MALI_HW_COUNTER_EVENT(LSC_SNOOPS); DEFINE_MALI_HW_COUNTER_EVENT(AXI_TLB_STALL); DEFINE_MALI_HW_COUNTER_EVENT(AXI_TLB_MISS); DEFINE_MALI_HW_COUNTER_EVENT(AXI_TLB_TRANSACTION); DEFINE_MALI_HW_COUNTER_EVENT(LS_TLB_MISS); DEFINE_MALI_HW_COUNTER_EVENT(LS_TLB_HIT); DEFINE_MALI_HW_COUNTER_EVENT(AXI_BEATS_READ); DEFINE_MALI_HW_COUNTER_EVENT(AXI_BEATS_WRITE); DEFINE_MALI_HW_COUNTER_EVENT(MMU_TABLE_WALK); DEFINE_MALI_HW_COUNTER_EVENT(MMU_REPLAY_MISS); DEFINE_MALI_HW_COUNTER_EVENT(MMU_REPLAY_FULL); DEFINE_MALI_HW_COUNTER_EVENT(MMU_NEW_MISS); DEFINE_MALI_HW_COUNTER_EVENT(MMU_HIT); DEFINE_MALI_HW_COUNTER_EVENT(UTLB_STALL); DEFINE_MALI_HW_COUNTER_EVENT(UTLB_REPLAY_MISS); DEFINE_MALI_HW_COUNTER_EVENT(UTLB_REPLAY_FULL); DEFINE_MALI_HW_COUNTER_EVENT(UTLB_NEW_MISS); DEFINE_MALI_HW_COUNTER_EVENT(UTLB_HIT); DEFINE_MALI_HW_COUNTER_EVENT(L2_WRITE_BEATS); DEFINE_MALI_HW_COUNTER_EVENT(L2_READ_BEATS); DEFINE_MALI_HW_COUNTER_EVENT(L2_ANY_LOOKUP); DEFINE_MALI_HW_COUNTER_EVENT(L2_READ_LOOKUP); DEFINE_MALI_HW_COUNTER_EVENT(L2_SREAD_LOOKUP); DEFINE_MALI_HW_COUNTER_EVENT(L2_READ_REPLAY); DEFINE_MALI_HW_COUNTER_EVENT(L2_READ_SNOOP); DEFINE_MALI_HW_COUNTER_EVENT(L2_READ_HIT); DEFINE_MALI_HW_COUNTER_EVENT(L2_CLEAN_MISS); DEFINE_MALI_HW_COUNTER_EVENT(L2_WRITE_LOOKUP); DEFINE_MALI_HW_COUNTER_EVENT(L2_SWRITE_LOOKUP); DEFINE_MALI_HW_COUNTER_EVENT(L2_WRITE_REPLAY); DEFINE_MALI_HW_COUNTER_EVENT(L2_WRITE_SNOOP); DEFINE_MALI_HW_COUNTER_EVENT(L2_WRITE_HIT); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_READ_FULL); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_READ_HALF); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_WRITE_FULL); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_WRITE_HALF); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_READ); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_READ_LINE); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_WRITE); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_WRITE_LINE); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_WRITE_SMALL); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_BARRIER); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_AR_STALL); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_R_BUF_FULL); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_RD_BUF_FULL); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_R_RAW); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_W_STALL); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_W_BUF_FULL); DEFINE_MALI_HW_COUNTER_EVENT(L2_EXT_R_W_HAZARD); DEFINE_MALI_HW_COUNTER_EVENT(L2_TAG_HAZARD); DEFINE_MALI_HW_COUNTER_EVENT(L2_SNOOP_FULL); DEFINE_MALI_HW_COUNTER_EVENT(L2_REPLAY_FULL); #undef DEFINE_MALI_HW_COUNTER_EVENT #endif /* _TRACE_MALI_HWC_H */ #undef TRACE_INCLUDE_PATH #undef linux #define TRACE_INCLUDE_PATH MALI_KBASE_THIRDPARTY_PATH #undef TRACE_INCLUDE_FILE #define TRACE_INCLUDE_FILE mali_linux_hwc_trace /* This part must be outside protection */ #include