# Parameter definitions for thorn PAPIClocks # $Header$ # -------------------------- # Counter events available on origin # # PAPI_L1_DCM: Level 1 data cache misses # PAPI_L1_ICM: Level 1 instruction cache misses # PAPI_L2_DCM: Level 2 data cache misses # PAPI_L2_ICM: Level 2 instruction cache misses # PAPI_L1_TCM: Level 1 cache misses # PAPI_L2_TCM: Level 2 cache misses # PAPI_CA_SHR: Requests for exclusive access to shared cache line # PAPI_CA_CLN: Requests for exclusive access to clean cache line # PAPI_CA_INV: Requests for cache line invalidation # PAPI_CA_ITV: Requests for cache line intervention # PAPI_TLB_TL: Total translation lookaside buffer misses # PAPI_CSR_FAL: Failed store conditional instructions # PAPI_CSR_SUC: Successful store conditional instructions # PAPI_CSR_TOT: Total store conditional instructions # PAPI_BR_MSP: Conditional branch instructions mispredicted # PAPI_TOT_IIS: Instructions issued # PAPI_TOT_INS: Instructions completed # PAPI_FP_INS: Floating point instructions # PAPI_LD_INS: Load instructions # PAPI_SR_INS: Store instructions # PAPI_BR_INS: Branch instructions # PAPI_FLOPS: Floating point instructions per second # PAPI_TOT_CYC: Total cycles # PAPI_IPS: Instructions per second # ------------------------- # Counter events available on Pentium III computers # # PAPI_L1_DCM: Level 1 data cache misses # PAPI_L1_ICM: Level 1 instruction cache misses # PAPI_L2_DCM: Level 2 data cache misses # PAPI_L2_ICM: Level 2 instruction cache misses # PAPI_L1_TCM: Level 1 cache misses # PAPI_L2_TCM: Level 2 cache misses# # PAPI_L1_DCH: Level 1 data cache hits # PAPI_L1_DCA: Level 1 data cache accesses # PAPI_L2_DCA: Level 2 data cache accesses # PAPI_L2_DCR: Level 2 data cache reads # PAPI_L2_DCW: Level 2 data cache writes # PAPI_L1_ICH: Level 1 instruction cache hits # PAPI_L2_ICH: Level 2 instruction cache hits # PAPI_L1_ICA: Level 1 instruction cache accesses # PAPI_L2_ICA: Level 2 instruction cache accesses # PAPI_L1_ICR: Level 1 instruction cache reads # PAPI_L2_ICR: Level 2 instruction cache reads # PAPI_L2_TCH: Level 2 total cache hits # PAPI_L1_TCA: Level 1 total cache accesses # PAPI_L2_TCA: Level 2 total cache accesses # PAPI_L2_TCR: Level 2 total cache reads # PAPI_L2_TCW: Level 2 total cache writes ## PAPI_CA_SHR: Requests for exclusive access to shared cache line # PAPI_CA_CLN: Requests for exclusive access to clean cache line # PAPI_CA_INV: Requests for cache line invalidation # PAPI_CA_ITV: Requests for cache line intervention # PAPI_TLB_IM: Instruction translation lookaside buffer misses # PAPI_FML_INS: Floating point multiply instructions # PAPI_FDV_INS: Floating point divide instructions # PAPI_TOT_IIS: Instructions issued # PAPI_TOT_INS: Instructions completed # PAPI_FP_INS: Floating point instructions # PAPI_BR_INS: Branch instructions # PAPI_VEC_INS: Vector/SIMD instructions # PAPI_FLOPS: Floating point instructions per second # PAPI_RES_STL: Cycles stalled on any resource # PAPI_TOT_CYC: Total cycles # PAPI_IPS: Instructions per second # PAPI_BTAC_M: Branch target address cache misses # PAPI_HW_INT: Hardware interrupts # PAPI_BR_CN: Conditional branch instructions # PAPI_BR_TKN: Conditional branch instructions taken # PAPI_BR_NTK: Conditional branch instructions not taken # PAPI_BR_MSP: Conditional branch instructions mispredicted # PAPI_BR_PRC: Conditional branch instructions correctly predicted # PAPI_L1_LDM: Level 1 load misses # PAPI_L1_STM: Level 1 store misses # PAPI_L2_LDM: Level 2 load misses # PAPI_L2_STM: Level 2 store misses #-------------------------------------------------------- # PAPI counter multiplexing KEYWORD multiplexing "switch on and off multiplexing" { "on" :: "on" "off" :: "off" } "off" STRING output_file "Output file name for statistics" { .* :: "event" } "Statistics.dat" KEYWORD output_in_file "write the test output into a file ?" { "yes" :: "yes" "no" :: "no" } "no" #------------------------------------------------------- # counter types KEYWORD time_counter "Type of the time counter" { "virtual" :: "virtual time" "real" :: "real time" } "real" KEYWORD cycles_counter "Type of the cycles counter" { "virtual" :: "measure only user mode time / user mode events" "real" :: "measure wall time / all events" } "real" #--------------------- KEYWORD instruction_event "Type of the instruction counter" { "PAPI_LST_INS" :: "counts loads and stores" "PAPI_LD_INS" :: "counts loads" "PAPI_SR_INS" :: "counts stores" "PAPI_TOT_INS" :: "all instructions completed" "PAPI_FP_INS" :: "floating point instructions" "PAPI_VEC_INS" :: "vector instructions" } "PAPI_FP_INS" KEYWORD cache_event "Type of cache miss events" { "PAPI_L1_TCM" :: "1. level total cache misses" "PAPI_L2_TCM" :: "2. level total cache misses" "PAPI_L3_TCM" :: "3. level cache misses" "PAPI_L1_DCM" :: "1. level data cache misses" "PAPI_L2_DCM" :: "2. level data cache misses" "PAPI_L3_DCM" :: "3. level data cache misses" "PAPI_L1_ICM" :: "1. level instruction cache misses" "PAPI_L2_ICM" :: "2. level instruction cache misses" "PAPI_L3_ICM" :: "3. level instruction cache misses" } "PAPI_L2_DCM" #-------------------------------------- # user defined clocks STRING userclock1_event "Event type for user clock 1" { .* :: "event" } "NONE" STRING userclock2_event "Event type for user clock 2" { .* :: "event" } "NONE" STRING userclock3_event "Event type for user clock 3" { .* :: "event" } "NONE" STRING userclock4_event "Event type for user clock 4" { .* :: "event" } "NONE" STRING userclock5_event "Event type for user clock 5" { .* :: "event" } "NONE" STRING userclock6_event "Event type for user clock 6" { .* :: "event" } "NONE" STRING userclock7_event "Event type for user clock 7" { .* :: "event" } "NONE" STRING userclock8_event "Event type for user clock 8" { .* :: "event" } "NONE" #-------------------------------------- # clocks on and off KEYWORD clock_instr "switch on and off the instructions clock" { "on" :: "instrcutions clock on" "off" :: "instrcutions clock off" } "off" KEYWORD clock_cache "switch on and off the cache miss clock" { "on" :: "cache misses clock on" "off" :: "cache misses clock off" } "off" KEYWORD clock_cycles "switch on and off the cycles clock" { "on" :: "cycles clock on" "off" :: "cycles clock off" } "off" KEYWORD clock_time "switch on and off the time clock" { "on" :: "time clock on" "off" :: "time clock off" } "off" KEYWORD clock_instr_per_sec "switch on and off the instr/sec clock" { "on" :: "instr/sec clock on" "off" :: "instr/sec clock off" } "off" KEYWORD clock_cycles_per_instr "switch on and off cycles/instr clock" { "on" :: "cycles/instr clock on" "off" :: "cycles/instr clock off" } "off" KEYWORD clock_cmiss_per_instr "switch cache miss/instr clock" { "on" :: "cache misses/instr clock on" "off" :: "cache misses/instr clock off" } "off" KEYWORD clock_cmiss_per_cycle "switch cache miss/cycle clock" { "on" :: "cache misses/cycle clock on" "off" :: "cache misses/cycle clock off" } "off"