Module Name: src Committed By: msaitoh Date: Wed Dec 7 08:11:49 UTC 2022
Modified Files: src/usr.sbin/tprof/arch: tprof_x86.c Log Message: KNF. No functional change. To generate a diff of this commit: cvs rdiff -u -r1.12 -r1.13 src/usr.sbin/tprof/arch/tprof_x86.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/tprof/arch/tprof_x86.c diff -u src/usr.sbin/tprof/arch/tprof_x86.c:1.12 src/usr.sbin/tprof/arch/tprof_x86.c:1.13 --- src/usr.sbin/tprof/arch/tprof_x86.c:1.12 Mon Jun 13 09:28:58 2022 +++ src/usr.sbin/tprof/arch/tprof_x86.c Wed Dec 7 08:11:49 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: tprof_x86.c,v 1.12 2022/06/13 09:28:58 msaitoh Exp $ */ +/* $NetBSD: tprof_x86.c,v 1.13 2022/12/07 08:11:49 msaitoh Exp $ */ /* * Copyright (c) 2018-2019 The NetBSD Foundation, Inc. @@ -71,7 +71,7 @@ static void x86_cpuid(unsigned int *eax, : "0" (*eax), "2" (*ecx)); } -/* -------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------- */ /* * Intel Architectural Version 1. @@ -374,142 +374,143 @@ init_intel_goldmontplus(void) */ static struct name_to_event intel_skylake_kabylake_names[] = { /* Event Name - Event Select - UMask */ - { "LD_BLOCKS.STORE_FORWARD", 0x03, 0x02, true }, - { "LD_BLOCKS.NO_SR", 0x03, 0x08, true }, - { "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS", 0x07, 0x01, true }, - { "DTLB_LOAD_MISSES.MISS_CAUSES_A_WALK", 0x08, 0x01, true }, - { "DTLB_LOAD_MISSES.WALK_COMPLETED_4K", 0x08, 0x02, true }, - { "DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M", 0x08, 0x04, true }, - { "DTLB_LOAD_MISSES.WALK_COMPLETED_1G", 0x08, 0x08, true }, - { "DTLB_LOAD_MISSES.WALK_COMPLETED", 0x08, 0x0E, true }, - { "DTLB_LOAD_MISSES.WALK_PENDING", 0x08, 0x10, true }, - { "DTLB_LOAD_MISSES.STLB_HIT", 0x08, 0x20, true }, - { "INT_MISC.RECOVERY_CYCLES", 0x0D, 0x01, true }, - { "INT_MISC.CLEAR_RESTEER_CYCLES", 0x0D, 0x80, true }, - { "UOPS_ISSUED.ANY", 0x0E, 0x01, true }, - { "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH", 0x0E, 0x02, true }, - { "UOPS_ISSUED.SLOW_LEA", 0x0E, 0x20, true }, - { "L2_RQSTS.DEMAND_DATA_RD_MISS", 0x24, 0x21, true }, - { "L2_RQSTS.RFO_MISS", 0x24, 0x22, true }, - { "L2_RQSTS.CODE_RD_MISS", 0x24, 0x24, true }, - { "L2_RQSTS.ALL_DEMAND_MISS", 0x24, 0x27, true }, - { "L2_RQSTS.PF_MISS", 0x24, 0x38, true }, - { "L2_RQSTS.MISS", 0x24, 0x3F, true }, - { "L2_RQSTS.DEMAND_DATA_RD_HIT", 0x24, 0x41, true }, - { "L2_RQSTS.RFO_HIT", 0x24, 0x42, true }, - { "L2_RQSTS.CODE_RD_HIT", 0x24, 0x44, true }, - { "L2_RQSTS.PF_HIT", 0x24, 0xD8, true }, - { "L2_RQSTS.ALL_DEMAND_DATA_RD", 0x24, 0xE1, true }, - { "L2_RQSTS.ALL_RFO", 0x24, 0xE2, true }, - { "L2_RQSTS.ALL_CODE_RD", 0x24, 0xE4, true }, - { "L2_RQSTS.ALL_DEMAND_REFERENCES", 0x24, 0xE7, true }, - { "L2_RQSTS.ALL_PF", 0x24, 0xF8, true }, - { "L2_RQSTS.REFERENCES", 0x24, 0xFF, true }, - { "SW_PREFETCH_ACCESS.NTA", 0x32, 0x01, true }, - { "SW_PREFETCH_ACCESS.T0", 0x32, 0x02, true }, - { "SW_PREFETCH_ACCESS.T1_T2", 0x32, 0x04, true }, - { "SW_PREFETCH_ACCESS.PREFETCHW", 0x32, 0x08, true }, - { "CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE", 0x3C, 0x02, true }, - { "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", 0x3C, 0x02, true }, - { "L1D_PEND_MISS.PENDING", 0x48, 0x01, true }, - { "L1D_PEND_MISS.FB_FULL", 0x48, 0x02, true }, - { "DTLB_STORE_MISSES.MISS_CAUSES_A_WALK", 0x49, 0x01, true }, - { "DTLB_STORE_MISSES.WALK_COMPLETED_4K", 0x49, 0x02, true }, - { "DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M", 0x49, 0x04, true }, - { "DTLB_STORE_MISSES.WALK_COMPLETED_1G", 0x49, 0x08, true }, - { "DTLB_STORE_MISSES.WALK_COMPLETED", 0x49, 0x0E, true }, - { "DTLB_STORE_MISSES.WALK_PENDING", 0x49, 0x10, true }, - { "DTLB_STORE_MISSES.STLB_HIT", 0x49, 0x20, true }, - { "LOAD_HIT_PRE.SW_PF", 0x4C, 0x01, true }, - { "EPT.WALK_PENDING", 0x4F, 0x10, true }, - { "L1D.REPLACEMENT", 0x51, 0x01, true }, - { "RS_EVENTS.EMPTY_CYCLES", 0x5E, 0x01, true }, - { "OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD", 0x60, 0x01, true }, - { "OFFCORE_REQUESTS_OUTSTANDING.DEMAND_CODE_RD", 0x60, 0x02, true }, - { "OFFCORE_REQUESTS_OUTSTANDING.DEMAND_RFO", 0x60, 0x04, true }, - { "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD", 0x60, 0x08, true }, - { "OFFCORE_REQUESTS_OUTSTANDING.L3_MISS_DEMAND_DATA_RD", 0x60, 0x10, true }, - { "IDQ.MITE_UOPS", 0x79, 0x04, true }, - { "IDQ.DSB_UOPS", 0x79, 0x08, true }, - { "IDQ.MS_MITE_UOPS", 0x79, 0x20, true }, - { "IDQ.MS_UOPS", 0x79, 0x30, true }, - { "ICACHE_16B.IFDATA_STALL", 0x80, 0x04, true }, - { "ICACHE_64B.IFTAG_HIT", 0x83, 0x01, true }, - { "ICACHE_64B.IFTAG_MISS", 0x83, 0x02, true }, - { "ICACHE_64B.IFTAG_STALL", 0x83, 0x04, true }, - { "ITLB_MISSES.MISS_CAUSES_A_WALK", 0x85, 0x01, true }, - { "ITLB_MISSES.WALK_COMPLETED_4K", 0x85, 0x02, true }, - { "ITLB_MISSES.WALK_COMPLETED_2M_4M", 0x85, 0x04, true }, - { "ITLB_MISSES.WALK_COMPLETED_1G", 0x85, 0x08, true }, - { "ITLB_MISSES.WALK_COMPLETED", 0x85, 0x0E, true }, - { "ITLB_MISSES.WALK_PENDING", 0x85, 0x10, true }, - { "ITLB_MISSES.STLB_HIT", 0x85, 0x20, true }, - { "ILD_STALL.LCP", 0x87, 0x01, true }, - { "IDQ_UOPS_NOT_DELIVERED.CORE", 0x9C, 0x01, true }, - { "RESOURCE_STALLS.ANY", 0xA2, 0x01, true }, - { "RESOURCE_STALLS.SB", 0xA2, 0x08, true }, - { "EXE_ACTIVITY.EXE_BOUND_0_PORTS", 0xA6, 0x01, true }, - { "EXE_ACTIVITY.1_PORTS_UTIL", 0xA6, 0x02, true }, - { "EXE_ACTIVITY.2_PORTS_UTIL", 0xA6, 0x04, true }, - { "EXE_ACTIVITY.3_PORTS_UTIL", 0xA6, 0x08, true }, - { "EXE_ACTIVITY.4_PORTS_UTIL", 0xA6, 0x10, true }, - { "EXE_ACTIVITY.BOUND_ON_STORES", 0xA6, 0x40, true }, - { "LSD.UOPS", 0xA8, 0x01, true }, - { "DSB2MITE_SWITCHES.PENALTY_CYCLES", 0xAB, 0x02, true }, - { "ITLB.ITLB_FLUSH", 0xAE, 0x01, true }, - { "OFFCORE_REQUESTS.DEMAND_DATA_RD", 0xB0, 0x01, true }, - { "OFFCORE_REQUESTS.DEMAND_CODE_RD", 0xB0, 0x02, true }, - { "OFFCORE_REQUESTS.DEMAND_RFO", 0xB0, 0x04, true }, - { "OFFCORE_REQUESTS.ALL_DATA_RD", 0xB0, 0x08, true }, - { "OFFCORE_REQUESTS.L3_MISS_DEMAND_DATA_RD", 0xB0, 0x10, true }, - { "OFFCORE_REQUESTS.ALL_REQUESTS", 0xB0, 0x80, true }, - { "UOPS_EXECUTED.THREAD", 0xB1, 0x01, true }, - { "UOPS_EXECUTED.CORE", 0xB1, 0x02, true }, - { "UOPS_EXECUTED.X87", 0xB1, 0x10, true }, - { "OFFCORE_REQUESTS_BUFFER.SQ_FULL", 0xB2, 0x01, true }, - { "TLB_FLUSH.DTLB_THREAD", 0xBD, 0x01, true }, - { "TLB_FLUSH.STLB_ANY", 0xBD, 0x20, true }, - { "INST_RETIRED.PREC_DIST", 0xC0, 0x01, true }, - { "OTHER_ASSISTS.ANY", 0xC1, 0x3F, true }, - { "UOPS_RETIRED.RETIRE_SLOTS", 0xC2, 0x02, true }, - { "MACHINE_CLEARS.MEMORY_ORDERING", 0xC3, 0x02, true }, - { "MACHINE_CLEARS.SMC", 0xC3, 0x04, true }, - { "BR_INST_RETIRED.CONDITIONAL", 0xC4, 0x01, true }, - { "BR_INST_RETIRED.NEAR_CALL", 0xC4, 0x02, true }, - { "BR_INST_RETIRED.NEAR_RETURN", 0xC4, 0x08, true }, - { "BR_INST_RETIRED.NOT_TAKEN", 0xC4, 0x10, true }, - { "BR_INST_RETIRED.NEAR_TAKEN", 0xC4, 0x20, true }, - { "BR_INST_RETIRED.FAR_BRANCH", 0xC4, 0x40, true }, - { "BR_MISP_RETIRED.CONDITIONAL", 0xC5, 0x01, true }, - { "BR_MISP_RETIRED.NEAR_CALL", 0xC5, 0x02, true }, - { "BR_MISP_RETIRED.NEAR_TAKEN", 0xC5, 0x20, true }, - { "HW_INTERRUPTS.RECEIVED", 0xCB, 0x01, true }, - { "MEM_INST_RETIRED.STLB_MISS_LOADS", 0xD0, 0x11, true }, - { "MEM_INST_RETIRED.STLB_MISS_STORES", 0xD0, 0x12, true }, - { "MEM_INST_RETIRED.LOCK_LOADS", 0xD0, 0x21, true }, - { "MEM_INST_RETIRED.SPLIT_LOADS", 0xD0, 0x41, true }, - { "MEM_INST_RETIRED.SPLIT_STORES", 0xD0, 0x42, true }, - { "MEM_INST_RETIRED.ALL_LOADS", 0xD0, 0x81, true }, - { "MEM_INST_RETIRED.ALL_STORES", 0xD0, 0x82, true }, - { "MEM_LOAD_RETIRED.L1_HIT", 0xD1, 0x01, true }, - { "MEM_LOAD_RETIRED.L2_HIT", 0xD1, 0x02, true }, - { "MEM_LOAD_RETIRED.L3_HIT", 0xD1, 0x04, true }, - { "MEM_LOAD_RETIRED.L1_MISS", 0xD1, 0x08, true }, - { "MEM_LOAD_RETIRED.L2_MISS", 0xD1, 0x10, true }, - { "MEM_LOAD_RETIRED.L3_MISS", 0xD1, 0x20, true }, - { "MEM_LOAD_RETIRED.FB_HIT", 0xD1, 0x40, true }, - { "MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS", 0xD2, 0x01, true }, - { "MEM_LOAD_L3_HIT_RETIRED.XSNP_HIT", 0xD2, 0x02, true }, - { "MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM", 0xD2, 0x04, true }, - { "MEM_LOAD_L3_HIT_RETIRED.XSNP_NONE", 0xD2, 0x08, true }, - { "MEM_LOAD_MISC_RETIRED.UC", 0xD4, 0x04, true }, - { "BACLEARS.ANY", 0xE6, 0x01, true }, - { "L2_TRANS.L2_WB", 0xF0, 0x40, true }, - { "L2_LINES_IN.ALL", 0xF1, 0x1F, true }, - { "L2_LINES_OUT.SILENT", 0xF2, 0x01, true }, - { "L2_LINES_OUT.NON_SILENT", 0xF2, 0x02, true }, - { "L2_LINES_OUT.USELESS_HWPF", 0xF2, 0x04, true }, - { "SQ_MISC.SPLIT_LOCK", 0xF4, 0x10, true }, + { "LD_BLOCKS.STORE_FORWARD", 0x03, 0x02, true }, + { "LD_BLOCKS.NO_SR", 0x03, 0x08, true }, + { "LD_BLOCKS_PARTIAL.ADDRESS_ALIAS", 0x07, 0x01, true }, + { "DTLB_LOAD_MISSES.MISS_CAUSES_A_WALK", 0x08, 0x01, true }, + { "DTLB_LOAD_MISSES.WALK_COMPLETED_4K", 0x08, 0x02, true }, + { "DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4M", 0x08, 0x04, true }, + { "DTLB_LOAD_MISSES.WALK_COMPLETED_1G", 0x08, 0x08, true }, + { "DTLB_LOAD_MISSES.WALK_COMPLETED", 0x08, 0x0E, true }, + { "DTLB_LOAD_MISSES.WALK_PENDING", 0x08, 0x10, true }, + { "DTLB_LOAD_MISSES.STLB_HIT", 0x08, 0x20, true }, + { "INT_MISC.RECOVERY_CYCLES", 0x0D, 0x01, true }, + { "INT_MISC.CLEAR_RESTEER_CYCLES", 0x0D, 0x80, true }, + { "UOPS_ISSUED.ANY", 0x0E, 0x01, true }, + { "UOPS_ISSUED.VECTOR_WIDTH_MISMATCH", 0x0E, 0x02, true }, + { "UOPS_ISSUED.SLOW_LEA", 0x0E, 0x20, true }, + { "L2_RQSTS.DEMAND_DATA_RD_MISS", 0x24, 0x21, true }, + { "L2_RQSTS.RFO_MISS", 0x24, 0x22, true }, + { "L2_RQSTS.CODE_RD_MISS", 0x24, 0x24, true }, + { "L2_RQSTS.ALL_DEMAND_MISS", 0x24, 0x27, true }, + { "L2_RQSTS.PF_MISS", 0x24, 0x38, true }, + { "L2_RQSTS.MISS", 0x24, 0x3F, true }, + { "L2_RQSTS.DEMAND_DATA_RD_HIT", 0x24, 0x41, true }, + { "L2_RQSTS.RFO_HIT", 0x24, 0x42, true }, + { "L2_RQSTS.CODE_RD_HIT", 0x24, 0x44, true }, + { "L2_RQSTS.PF_HIT", 0x24, 0xD8, true }, + { "L2_RQSTS.ALL_DEMAND_DATA_RD", 0x24, 0xE1, true }, + { "L2_RQSTS.ALL_RFO", 0x24, 0xE2, true }, + { "L2_RQSTS.ALL_CODE_RD", 0x24, 0xE4, true }, + { "L2_RQSTS.ALL_DEMAND_REFERENCES", 0x24, 0xE7, true }, + { "L2_RQSTS.ALL_PF", 0x24, 0xF8, true }, + { "L2_RQSTS.REFERENCES", 0x24, 0xFF, true }, + { "SW_PREFETCH_ACCESS.NTA", 0x32, 0x01, true }, + { "SW_PREFETCH_ACCESS.T0", 0x32, 0x02, true }, + { "SW_PREFETCH_ACCESS.T1_T2", 0x32, 0x04, true }, + { "SW_PREFETCH_ACCESS.PREFETCHW", 0x32, 0x08, true }, + { "CPU_CLK_THREAD_UNHALTED.ONE_THREAD_ACTIVE", 0x3C, 0x02, true }, + { "CPU_CLK_UNHALTED.ONE_THREAD_ACTIVE", 0x3C, 0x02, true }, + { "L1D_PEND_MISS.PENDING", 0x48, 0x01, true }, + { "L1D_PEND_MISS.FB_FULL", 0x48, 0x02, true }, + { "DTLB_STORE_MISSES.MISS_CAUSES_A_WALK", 0x49, 0x01, true }, + { "DTLB_STORE_MISSES.WALK_COMPLETED_4K", 0x49, 0x02, true }, + { "DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M", 0x49, 0x04, true }, + { "DTLB_STORE_MISSES.WALK_COMPLETED_1G", 0x49, 0x08, true }, + { "DTLB_STORE_MISSES.WALK_COMPLETED", 0x49, 0x0E, true }, + { "DTLB_STORE_MISSES.WALK_PENDING", 0x49, 0x10, true }, + { "DTLB_STORE_MISSES.STLB_HIT", 0x49, 0x20, true }, + { "LOAD_HIT_PRE.SW_PF", 0x4C, 0x01, true }, + { "EPT.WALK_PENDING", 0x4F, 0x10, true }, + { "L1D.REPLACEMENT", 0x51, 0x01, true }, + { "RS_EVENTS.EMPTY_CYCLES", 0x5E, 0x01, true }, + { "OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD", 0x60, 0x01, true }, + { "OFFCORE_REQUESTS_OUTSTANDING.DEMAND_CODE_RD", 0x60, 0x02, true }, + { "OFFCORE_REQUESTS_OUTSTANDING.DEMAND_RFO", 0x60, 0x04, true }, + { "OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD", 0x60, 0x08, true }, + { "OFFCORE_REQUESTS_OUTSTANDING.L3_MISS_DEMAND_DATA_RD", + 0x60, 0x10, true }, + { "IDQ.MITE_UOPS", 0x79, 0x04, true }, + { "IDQ.DSB_UOPS", 0x79, 0x08, true }, + { "IDQ.MS_MITE_UOPS", 0x79, 0x20, true }, + { "IDQ.MS_UOPS", 0x79, 0x30, true }, + { "ICACHE_16B.IFDATA_STALL", 0x80, 0x04, true }, + { "ICACHE_64B.IFTAG_HIT", 0x83, 0x01, true }, + { "ICACHE_64B.IFTAG_MISS", 0x83, 0x02, true }, + { "ICACHE_64B.IFTAG_STALL", 0x83, 0x04, true }, + { "ITLB_MISSES.MISS_CAUSES_A_WALK", 0x85, 0x01, true }, + { "ITLB_MISSES.WALK_COMPLETED_4K", 0x85, 0x02, true }, + { "ITLB_MISSES.WALK_COMPLETED_2M_4M", 0x85, 0x04, true }, + { "ITLB_MISSES.WALK_COMPLETED_1G", 0x85, 0x08, true }, + { "ITLB_MISSES.WALK_COMPLETED", 0x85, 0x0E, true }, + { "ITLB_MISSES.WALK_PENDING", 0x85, 0x10, true }, + { "ITLB_MISSES.STLB_HIT", 0x85, 0x20, true }, + { "ILD_STALL.LCP", 0x87, 0x01, true }, + { "IDQ_UOPS_NOT_DELIVERED.CORE", 0x9C, 0x01, true }, + { "RESOURCE_STALLS.ANY", 0xA2, 0x01, true }, + { "RESOURCE_STALLS.SB", 0xA2, 0x08, true }, + { "EXE_ACTIVITY.EXE_BOUND_0_PORTS", 0xA6, 0x01, true }, + { "EXE_ACTIVITY.1_PORTS_UTIL", 0xA6, 0x02, true }, + { "EXE_ACTIVITY.2_PORTS_UTIL", 0xA6, 0x04, true }, + { "EXE_ACTIVITY.3_PORTS_UTIL", 0xA6, 0x08, true }, + { "EXE_ACTIVITY.4_PORTS_UTIL", 0xA6, 0x10, true }, + { "EXE_ACTIVITY.BOUND_ON_STORES", 0xA6, 0x40, true }, + { "LSD.UOPS", 0xA8, 0x01, true }, + { "DSB2MITE_SWITCHES.PENALTY_CYCLES", 0xAB, 0x02, true }, + { "ITLB.ITLB_FLUSH", 0xAE, 0x01, true }, + { "OFFCORE_REQUESTS.DEMAND_DATA_RD", 0xB0, 0x01, true }, + { "OFFCORE_REQUESTS.DEMAND_CODE_RD", 0xB0, 0x02, true }, + { "OFFCORE_REQUESTS.DEMAND_RFO", 0xB0, 0x04, true }, + { "OFFCORE_REQUESTS.ALL_DATA_RD", 0xB0, 0x08, true }, + { "OFFCORE_REQUESTS.L3_MISS_DEMAND_DATA_RD", 0xB0, 0x10, true }, + { "OFFCORE_REQUESTS.ALL_REQUESTS", 0xB0, 0x80, true }, + { "UOPS_EXECUTED.THREAD", 0xB1, 0x01, true }, + { "UOPS_EXECUTED.CORE", 0xB1, 0x02, true }, + { "UOPS_EXECUTED.X87", 0xB1, 0x10, true }, + { "OFFCORE_REQUESTS_BUFFER.SQ_FULL", 0xB2, 0x01, true }, + { "TLB_FLUSH.DTLB_THREAD", 0xBD, 0x01, true }, + { "TLB_FLUSH.STLB_ANY", 0xBD, 0x20, true }, + { "INST_RETIRED.PREC_DIST", 0xC0, 0x01, true }, + { "OTHER_ASSISTS.ANY", 0xC1, 0x3F, true }, + { "UOPS_RETIRED.RETIRE_SLOTS", 0xC2, 0x02, true }, + { "MACHINE_CLEARS.MEMORY_ORDERING", 0xC3, 0x02, true }, + { "MACHINE_CLEARS.SMC", 0xC3, 0x04, true }, + { "BR_INST_RETIRED.CONDITIONAL", 0xC4, 0x01, true }, + { "BR_INST_RETIRED.NEAR_CALL", 0xC4, 0x02, true }, + { "BR_INST_RETIRED.NEAR_RETURN", 0xC4, 0x08, true }, + { "BR_INST_RETIRED.NOT_TAKEN", 0xC4, 0x10, true }, + { "BR_INST_RETIRED.NEAR_TAKEN", 0xC4, 0x20, true }, + { "BR_INST_RETIRED.FAR_BRANCH", 0xC4, 0x40, true }, + { "BR_MISP_RETIRED.CONDITIONAL", 0xC5, 0x01, true }, + { "BR_MISP_RETIRED.NEAR_CALL", 0xC5, 0x02, true }, + { "BR_MISP_RETIRED.NEAR_TAKEN", 0xC5, 0x20, true }, + { "HW_INTERRUPTS.RECEIVED", 0xCB, 0x01, true }, + { "MEM_INST_RETIRED.STLB_MISS_LOADS", 0xD0, 0x11, true }, + { "MEM_INST_RETIRED.STLB_MISS_STORES", 0xD0, 0x12, true }, + { "MEM_INST_RETIRED.LOCK_LOADS", 0xD0, 0x21, true }, + { "MEM_INST_RETIRED.SPLIT_LOADS", 0xD0, 0x41, true }, + { "MEM_INST_RETIRED.SPLIT_STORES", 0xD0, 0x42, true }, + { "MEM_INST_RETIRED.ALL_LOADS", 0xD0, 0x81, true }, + { "MEM_INST_RETIRED.ALL_STORES", 0xD0, 0x82, true }, + { "MEM_LOAD_RETIRED.L1_HIT", 0xD1, 0x01, true }, + { "MEM_LOAD_RETIRED.L2_HIT", 0xD1, 0x02, true }, + { "MEM_LOAD_RETIRED.L3_HIT", 0xD1, 0x04, true }, + { "MEM_LOAD_RETIRED.L1_MISS", 0xD1, 0x08, true }, + { "MEM_LOAD_RETIRED.L2_MISS", 0xD1, 0x10, true }, + { "MEM_LOAD_RETIRED.L3_MISS", 0xD1, 0x20, true }, + { "MEM_LOAD_RETIRED.FB_HIT", 0xD1, 0x40, true }, + { "MEM_LOAD_L3_HIT_RETIRED.XSNP_MISS", 0xD2, 0x01, true }, + { "MEM_LOAD_L3_HIT_RETIRED.XSNP_HIT", 0xD2, 0x02, true }, + { "MEM_LOAD_L3_HIT_RETIRED.XSNP_HITM", 0xD2, 0x04, true }, + { "MEM_LOAD_L3_HIT_RETIRED.XSNP_NONE", 0xD2, 0x08, true }, + { "MEM_LOAD_MISC_RETIRED.UC", 0xD4, 0x04, true }, + { "BACLEARS.ANY", 0xE6, 0x01, true }, + { "L2_TRANS.L2_WB", 0xF0, 0x40, true }, + { "L2_LINES_IN.ALL", 0xF1, 0x1F, true }, + { "L2_LINES_OUT.SILENT", 0xF2, 0x01, true }, + { "L2_LINES_OUT.NON_SILENT", 0xF2, 0x02, true }, + { "L2_LINES_OUT.USELESS_HWPF", 0xF2, 0x04, true }, + { "SQ_MISC.SPLIT_LOCK", 0xF4, 0x10, true }, }; static struct event_table intel_skylake_kabylake = { @@ -523,6 +524,7 @@ static struct event_table intel_skylake_ static struct event_table * init_intel_skylake_kabylake(void) { + return &intel_skylake_kabylake; } @@ -577,7 +579,7 @@ init_intel_generic(void) return table; } -/* -------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------- */ /* * AMD Family 10h @@ -852,11 +854,12 @@ init_amd_generic(void) return NULL; } -/* -------------------------------------------------------------------------- */ +/* ------------------------------------------------------------------------- */ int tprof_event_init(uint32_t ident) { + switch (ident) { case TPROF_IDENT_NONE: return -1; @@ -882,14 +885,14 @@ recursive_event_list(struct event_table printf("\t%s\n", table->names[i].name); } - if (table->next != NULL) { + if (table->next != NULL) recursive_event_list(table->next); - } } void tprof_event_list(void) { + recursive_event_list(cpuevents); } @@ -909,15 +912,15 @@ recursive_event_lookup(struct event_tabl } } - if (table->next != NULL) { + if (table->next != NULL) recursive_event_lookup(table->next, name, param); - } else { + else errx(EXIT_FAILURE, "event '%s' unknown", name); - } } void tprof_event_lookup(const char *name, struct tprof_param *param) { + recursive_event_lookup(cpuevents, name, param); }