support for Airmont

This commit is contained in:
Andreas Abel
2022-01-18 02:52:42 +01:00
parent 1bbedf2927
commit 5bffd03b71
5 changed files with 402 additions and 4 deletions

View File

@@ -0,0 +1,212 @@
# Based on https://download.01.org/perfmon/SLM/Silvermont_core_V14.json
# Applies to processors with family-model in {6-37, 6-4D, 6-4C}
# Loads blocked due to store forward restriction
03.01 REHABQ.LD_BLOCK_ST_FORWARD
# Loads blocked due to store data not ready
03.02 REHABQ.LD_BLOCK_STD_NOTREADY
# Store uops that split cache line boundary
03.04 REHABQ.ST_SPLITS
# Load uops that split cache line boundary
03.08 REHABQ.LD_SPLITS
# Uops with lock semantics
03.10 REHABQ.LOCK
# Store address buffer full
03.20 REHABQ.STA_FULL
# Any reissued load uops
03.40 REHABQ.ANY_LD
# Any reissued store uops
03.80 REHABQ.ANY_ST
# Loads missed L1
04.01 MEM_UOPS_RETIRED.L1_MISS_LOADS
# Loads hit L2
04.02 MEM_UOPS_RETIRED.L2_HIT_LOADS
# Loads missed L2
04.04 MEM_UOPS_RETIRED.L2_MISS_LOADS
# Loads missed DTLB
04.08 MEM_UOPS_RETIRED.DTLB_MISS_LOADS
# Loads missed UTLB
04.10 MEM_UOPS_RETIRED.UTLB_MISS
# Cross core or cross module hitm
04.20 MEM_UOPS_RETIRED.HITM
# All Loads
04.40 MEM_UOPS_RETIRED.ALL_LOADS
# All Stores
04.80 MEM_UOPS_RETIRED.ALL_STORES
# Duration of D-side page-walks in core cycles
05.01 PAGE_WALKS.D_SIDE_CYCLES
# D-side page-walks
05.01.EDG PAGE_WALKS.D_SIDE_WALKS
# Duration of I-side page-walks in core cycles
05.02 PAGE_WALKS.I_SIDE_CYCLES
# I-side page-walks
05.02.EDG PAGE_WALKS.I_SIDE_WALKS
# Total cycles for all the page walks. (I-side and D-side)
05.03 PAGE_WALKS.CYCLES
# Total page walks that are completed (I-side and D-side)
05.03.EDG PAGE_WALKS.WALKS
# L2 cache request misses
2E.41 LONGEST_LAT_CACHE.MISS
# L2 cache requests from this core
2E.4F LONGEST_LAT_CACHE.REFERENCE
# Counts the number of request from the L2 that were not accepted into the XQ
30.00 L2_REJECT_XQ.ALL
# Counts the number of request that were not accepted into the L2Q because the L2Q is FULL.
31.00 CORE_REJECT_L2Q.ALL
# Core cycles when core is not halted
3C.00 CPU_CLK_UNHALTED.CORE_P
# Reference cycles when core is not halted
3C.01 CPU_CLK_UNHALTED.REF
# Instruction fetches from Icache
80.01 ICACHE.HIT
# Icache miss
80.02 ICACHE.MISSES
# Instruction fetches
80.03 ICACHE.ACCESSES
# Cycles code-fetch stalled due to an outstanding ITLB miss.
86.02 FETCH_STALL.ITLB_FILL_PENDING_CYCLES
# Cycles code-fetch stalled due to an outstanding ICache miss.
86.04 FETCH_STALL.ICACHE_FILL_PENDING_CYCLES
# Cycles code-fetch stalled due to any reason.
86.3F FETCH_STALL.ALL
# Instructions retired
C0.00 INST_RETIRED.ANY_P
# MSROM micro-ops retired
C2.01 UOPS_RETIRED.MS
# Micro-ops retired
C2.10 UOPS_RETIRED.ALL
# Self-Modifying Code detected
C3.01 MACHINE_CLEARS.SMC
# Stalls due to Memory ordering
C3.02 MACHINE_CLEARS.MEMORY_ORDERING
# Stalls due to FP assists
C3.04 MACHINE_CLEARS.FP_ASSIST
# Counts all machine clears
C3.08 MACHINE_CLEARS.ALL
# Counts the number of branch instructions retired...
C4.00 BR_INST_RETIRED.ALL_BRANCHES
# Counts the number of JCC branch instructions retired
C4.7E BR_INST_RETIRED.JCC
# Counts the number of taken branch instructions retired
C4.80 BR_INST_RETIRED.ALL_TAKEN_BRANCHES
# Counts the number of far branch instructions retired
C4.BF BR_INST_RETIRED.FAR_BRANCH
# Counts the number of near indirect JMP and near indirect CALL branch instructions retired
C4.EB BR_INST_RETIRED.NON_RETURN_IND
# Counts the number of near RET branch instructions retired
C4.F7 BR_INST_RETIRED.RETURN
# Counts the number of near CALL branch instructions retired
C4.F9 BR_INST_RETIRED.CALL
# Counts the number of near indirect CALL branch instructions retired
C4.FB BR_INST_RETIRED.IND_CALL
# Counts the number of near relative CALL branch instructions retired
C4.FD BR_INST_RETIRED.REL_CALL
# Counts the number of taken JCC branch instructions retired
C4.FE BR_INST_RETIRED.TAKEN_JCC
# Counts the number of mispredicted branch instructions retired
C5.00 BR_MISP_RETIRED.ALL_BRANCHES
# Counts the number of mispredicted JCC branch instructions retired
C5.7E BR_MISP_RETIRED.JCC
# Counts the number of mispredicted near indirect JMP and near indirect CALL branch instructions retired
C5.EB BR_MISP_RETIRED.NON_RETURN_IND
# Counts the number of mispredicted near RET branch instructions retired
C5.F7 BR_MISP_RETIRED.RETURN
# Counts the number of mispredicted near indirect CALL branch instructions retired
C5.FB BR_MISP_RETIRED.IND_CALL
# Counts the number of mispredicted taken JCC branch instructions retired
C5.FE BR_MISP_RETIRED.TAKEN_JCC
# Counts the number of cycles when no uops are allocated and the ROB is full (less than 2 entries available)
CA.01 NO_ALLOC_CYCLES.ROB_FULL
# Counts the number of cycles when no uops are allocated and the alloc pipe is stalled waiting for a mispredicted jump to retire. After the misprediction is detected, the front end will start immediately but the allocate pipe stalls until the mispredicted
CA.04 NO_ALLOC_CYCLES.MISPREDICTS
# Counts the number of cycles when no uops are allocated and a RATstall is asserted.
CA.20 NO_ALLOC_CYCLES.RAT_STALL
# Counts the number of cycles when no uops are allocated for any reason.
CA.3F NO_ALLOC_CYCLES.ALL
# Counts the number of cycles when no uops are allocated, the IQ is empty, and no other condition is blocking allocation.
CA.50 NO_ALLOC_CYCLES.NOT_DELIVERED
# Counts the number of cycles and allocation pipeline is stalled and is waiting for a free MEC reservation station entry. The cycles should be appropriately counted in case of the cracked ops e.g. In case of a cracked load-op, the load portion is sent to M
CB.01 RS_FULL_STALL.MEC
# Counts the number of cycles the Alloc pipeline is stalled when any one of the RSs (IEC, FPC and MEC) is full. This event is a superset of all the individual RS stall event counts.
CB.1F RS_FULL_STALL.ALL
# Cycles the divider is busy. Does not imply a stall waiting for the divider.
CD.01 CYCLES_DIV_BUSY.ALL
# Counts the number of baclears
E6.01 BACLEARS.ALL
# Counts the number of RETURN baclears
E6.08 BACLEARS.RETURN
# Counts the number of JCC baclears
E6.10 BACLEARS.COND
# Counts the number of times entered into a ucode flow in the FEC. Includes inserted flows due to front-end detected faults or assists. Speculative count.
E7.01 MS_DECODED.MS_ENTRY
# Counts the number of times a decode restriction reduced the decode throughput due to wrong instruction length prediction
E9.01 DECODE_RESTRICTION.PREDECODE_WRONG

View File

@@ -0,0 +1,170 @@
# Based on https://download.01.org/perfmon/SLM/Silvermont_core_V14.json
# Applies to processors with family-model in {6-37, 6-4D, 6-4C}
# Counts demand and DCU prefetch data read that have any response type.
B7.01.MSR_RSP0=0x0000010001.TakenAlone OFFCORE_RESPONSE.DEMAND_DATA_RD.ANY_RESPONSE
# Counts demand and DCU prefetch instruction cacheline that have any response type.
B7.01.MSR_RSP0=0x0000010004.TakenAlone OFFCORE_RESPONSE.DEMAND_CODE_RD.ANY_RESPONSE
# Counts any rfo reads (demand & prefetch) that have any response type.
B7.01.MSR_RSP0=0x0000010022.TakenAlone OFFCORE_RESPONSE.ANY_RFO.ANY_RESPONSE
# Counts any code reads (demand & prefetch) that have any response type.
B7.01.MSR_RSP0=0x0000010044.TakenAlone OFFCORE_RESPONSE.ANY_CODE_RD.ANY_RESPONSE
# Counts DCU hardware prefetcher data read that have any response type.
B7.01.MSR_RSP0=0x0000012000.TakenAlone OFFCORE_RESPONSE.PF_L1_DATA_RD.ANY_RESPONSE
# Counts any data read (demand & prefetch) that have any response type.
B7.01.MSR_RSP0=0x0000013091.TakenAlone OFFCORE_RESPONSE.ANY_DATA_RD.ANY_RESPONSE
# Counts any request that have any response type.
B7.01.MSR_RSP0=0x0000018008.TakenAlone OFFCORE_RESPONSE.ANY_REQUEST.ANY_RESPONSE
# Counts writeback (modified to exclusive) that miss L2 with no details on snoop-related information.
B7.01.MSR_RSP0=0x0080000008.TakenAlone OFFCORE_RESPONSE.COREWB.L2_MISS.NO_SNOOP_NEEDED
# Counts demand and DCU prefetch data read that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200000001.TakenAlone OFFCORE_RESPONSE.DEMAND_DATA_RD.L2_MISS.SNOOP_MISS
# Counts demand and DCU prefetch RFOs that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200000002.TakenAlone OFFCORE_RESPONSE.DEMAND_RFO.L2_MISS.SNOOP_MISS
# Counts demand and DCU prefetch instruction cacheline that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200000004.TakenAlone OFFCORE_RESPONSE.DEMAND_CODE_RD.L2_MISS.SNOOP_MISS
# Counts data cacheline reads generated by L2 prefetchers that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200000010.TakenAlone OFFCORE_RESPONSE.PF_L2_DATA_RD.L2_MISS.SNOOP_MISS
# Counts RFO requests generated by L2 prefetchers that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200000020.TakenAlone OFFCORE_RESPONSE.PF_L2_RFO.L2_MISS.SNOOP_MISS
# Counts any rfo reads (demand & prefetch) that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200000022.TakenAlone OFFCORE_RESPONSE.ANY_RFO.L2_MISS.SNOOP_MISS
# Counts code reads generated by L2 prefetchers that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200000040.TakenAlone OFFCORE_RESPONSE.PF_L2_CODE_RD.L2_MISS.SNOOP_MISS
# Counts any code reads (demand & prefetch) that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200000044.TakenAlone OFFCORE_RESPONSE.ANY_CODE_RD.L2_MISS.SNOOP_MISS
# Counts DCU hardware prefetcher data read that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200002000.TakenAlone OFFCORE_RESPONSE.PF_L1_DATA_RD.L2_MISS.SNOOP_MISS
# Counts any data read (demand & prefetch) that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200003091.TakenAlone OFFCORE_RESPONSE.ANY_DATA_RD.L2_MISS.SNOOP_MISS
# Counts any request that miss L2 with a snoop miss response.
B7.01.MSR_RSP0=0x0200008008.TakenAlone OFFCORE_RESPONSE.ANY_REQUEST.L2_MISS.SNOOP_MISS
# Counts demand and DCU prefetch data read that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400000001.TakenAlone OFFCORE_RESPONSE.DEMAND_DATA_RD.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts demand and DCU prefetch RFOs that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400000002.TakenAlone OFFCORE_RESPONSE.DEMAND_RFO.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts demand and DCU prefetch instruction cacheline that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400000004.TakenAlone OFFCORE_RESPONSE.DEMAND_CODE_RD.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts data cacheline reads generated by L2 prefetchers that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400000010.TakenAlone OFFCORE_RESPONSE.PF_L2_DATA_RD.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts RFO requests generated by L2 prefetchers that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400000020.TakenAlone OFFCORE_RESPONSE.PF_L2_RFO.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts any rfo reads (demand & prefetch) that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400000022.TakenAlone OFFCORE_RESPONSE.ANY_RFO.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts code reads generated by L2 prefetchers that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400000040.TakenAlone OFFCORE_RESPONSE.PF_L2_CODE_RD.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts any code reads (demand & prefetch) that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400000044.TakenAlone OFFCORE_RESPONSE.ANY_CODE_RD.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts DCU hardware prefetcher data read that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400002000.TakenAlone OFFCORE_RESPONSE.PF_L1_DATA_RD.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts any data read (demand & prefetch) that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400003091.TakenAlone OFFCORE_RESPONSE.ANY_DATA_RD.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts any request that miss L2 and the snoops to sibling cores hit in either E/S state and the line is not forwarded.
B7.01.MSR_RSP0=0x0400008008.TakenAlone OFFCORE_RESPONSE.ANY_REQUEST.L2_MISS.HIT_OTHER_CORE_NO_FWD
# Counts demand and DCU prefetch data read that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000000001.TakenAlone OFFCORE_RESPONSE.DEMAND_DATA_RD.L2_MISS.HITM_OTHER_CORE
# Counts demand and DCU prefetch RFOs that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000000002.TakenAlone OFFCORE_RESPONSE.DEMAND_RFO.L2_MISS.HITM_OTHER_CORE
# Counts data cacheline reads generated by L2 prefetchers that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000000010.TakenAlone OFFCORE_RESPONSE.PF_L2_DATA_RD.L2_MISS.HITM_OTHER_CORE
# Counts RFO requests generated by L2 prefetchers that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000000020.TakenAlone OFFCORE_RESPONSE.PF_L2_RFO.L2_MISS.HITM_OTHER_CORE
# Counts any rfo reads (demand & prefetch) that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000000022.TakenAlone OFFCORE_RESPONSE.ANY_RFO.L2_MISS.HITM_OTHER_CORE
# Counts any code reads (demand & prefetch) that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000000044.TakenAlone OFFCORE_RESPONSE.ANY_CODE_RD.L2_MISS.HITM_OTHER_CORE
# Counts DCU hardware prefetcher data read that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000002000.TakenAlone OFFCORE_RESPONSE.PF_L1_DATA_RD.L2_MISS.HITM_OTHER_CORE
# Counts any data read (demand & prefetch) that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000003091.TakenAlone OFFCORE_RESPONSE.ANY_DATA_RD.L2_MISS.HITM_OTHER_CORE
# Counts any request that hit in the other module where modified copies were found in other core's L1 cache.
B7.01.MSR_RSP0=0x1000008008.TakenAlone OFFCORE_RESPONSE.ANY_REQUEST.L2_MISS.HITM_OTHER_CORE
# Counts demand and DCU prefetch data read that miss L2.
B7.01.MSR_RSP0=0x1680000001.TakenAlone OFFCORE_RESPONSE.DEMAND_DATA_RD.L2_MISS.ANY
# Counts demand and DCU prefetch RFOs that miss L2.
B7.01.MSR_RSP0=0x1680000002.TakenAlone OFFCORE_RESPONSE.DEMAND_RFO.L2_MISS.ANY
# Counts demand and DCU prefetch instruction cacheline that miss L2.
B7.01.MSR_RSP0=0x1680000004.TakenAlone OFFCORE_RESPONSE.DEMAND_CODE_RD.L2_MISS.ANY
# Counts writeback (modified to exclusive) that miss L2.
B7.01.MSR_RSP0=0x1680000008.TakenAlone OFFCORE_RESPONSE.COREWB.L2_MISS.ANY
# Counts data cacheline reads generated by L2 prefetchers that miss L2.
B7.01.MSR_RSP0=0x1680000010.TakenAlone OFFCORE_RESPONSE.PF_L2_DATA_RD.L2_MISS.ANY
# Counts RFO requests generated by L2 prefetchers that miss L2.
B7.01.MSR_RSP0=0x1680000020.TakenAlone OFFCORE_RESPONSE.PF_L2_RFO.L2_MISS.ANY
# Counts any rfo reads (demand & prefetch) that miss L2.
B7.01.MSR_RSP0=0x1680000022.TakenAlone OFFCORE_RESPONSE.ANY_RFO.L2_MISS.ANY
# Counts code reads generated by L2 prefetchers that miss L2.
B7.01.MSR_RSP0=0x1680000040.TakenAlone OFFCORE_RESPONSE.PF_L2_CODE_RD.L2_MISS.ANY
# Counts any code reads (demand & prefetch) that miss L2.
B7.01.MSR_RSP0=0x1680000044.TakenAlone OFFCORE_RESPONSE.ANY_CODE_RD.L2_MISS.ANY
# Counts demand reads of partial cache lines (including UC and WC) that miss L2.
B7.01.MSR_RSP0=0x1680000080.TakenAlone OFFCORE_RESPONSE.PARTIAL_READS.L2_MISS.ANY
# Countsof demand RFO requests to write to partial cache lines that miss L2.
B7.01.MSR_RSP0=0x1680000100.TakenAlone OFFCORE_RESPONSE.PARTIAL_WRITES.L2_MISS.ANY
# Counts DCU hardware prefetcher data read that miss L2.
B7.01.MSR_RSP0=0x1680002000.TakenAlone OFFCORE_RESPONSE.PF_L1_DATA_RD.L2_MISS.ANY
# Counts any data read (demand & prefetch) that miss L2.
B7.01.MSR_RSP0=0x1680003091.TakenAlone OFFCORE_RESPONSE.ANY_DATA_RD.L2_MISS.ANY
# Counts streaming store that miss L2.
B7.01.MSR_RSP0=0x1680004800.TakenAlone OFFCORE_RESPONSE.STREAMING_STORES.L2_MISS.ANY
# Counts demand and DCU prefetch data read that are are outstanding, per cycle, from the time of the L2 miss to when any response is received.
B7.01.MSR_RSP0=0x4000000001.TakenAlone OFFCORE_RESPONSE.DEMAND_DATA_RD.OUTSTANDING
# Counts demand and DCU prefetch RFOs that are are outstanding, per cycle, from the time of the L2 miss to when any response is received.
B7.01.MSR_RSP0=0x4000000002.TakenAlone OFFCORE_RESPONSE.DEMAND_RFO.OUTSTANDING
# Counts demand and DCU prefetch instruction cacheline that are are outstanding, per cycle, from the time of the L2 miss to when any response is received.
B7.01.MSR_RSP0=0x4000000004.TakenAlone OFFCORE_RESPONSE.DEMAND_CODE_RD.OUTSTANDING

View File

@@ -0,0 +1,14 @@
# Based on https://download.01.org/perfmon/SLM/Silvermont_core_V14.json
# Applies to processors with family-model in {6-37, 6-4D, 6-4C}
3C.00 CORE_CYCLES
C0.00 INST_RETIRED
C2.10 UOPS_RETIRED.ALL
C2.01 UOPS_RETIRED.MS
C4.00 BR_INST_RETIRED.ALL_BRANCHES
C5.00 BR_MISP_RETIRED.ALL_BRANCHES
04.40 MEM_UOPS_RETIRED.ALL_LOADS
04.80 MEM_UOPS_RETIRED.ALL_STORES
04.01 MEM_UOPS_RETIRED.L1_MISS_LOADS
04.02 MEM_UOPS_RETIRED.L2_HIT_LOADS
04.04 MEM_UOPS_RETIRED.L2_MISS_LOADS

View File

@@ -213,8 +213,10 @@ def micro_arch(cpu):
return 'HSX'
if (vi.displ_family, vi.displ_model) in [(0x06, 0x3D), (0x06, 0x47), (0x06, 0x56), (0x06, 0x4F)]:
return 'BDW'
if (vi.displ_family, vi.displ_model) in [(0x06, 0x37), (0x06, 0x4C), (0x06, 0x4D)]:
if (vi.displ_family, vi.displ_model) in [(0x06, 0x37), (0x06, 0x4D)]:
return 'SLM'
if (vi.displ_family, vi.displ_model) in [(0x06, 0x4C)]:
return 'AMT'
if (vi.displ_family, vi.displ_model) in [(0x06, 0x5C), (0x06, 0x5F)]:
return 'GLM'
if (vi.displ_family, vi.displ_model) in [(0x06, 0x57)]:

View File

@@ -209,7 +209,7 @@ def runExperiment(instrNode, instrCode, init=None, unrollCount=500, loopCount=0,
if evt == 'UOPS':
if arch in ['CON', 'WOL']: evt = 'RS_UOPS_DISPATCHED'
elif arch in ['NHM', 'WSM', 'BNL', 'GLM', 'GLP']: evt = 'UOPS_RETIRED.ANY'
elif arch in ['SNB', 'ADL-E']: evt = 'UOPS_RETIRED.ALL'
elif arch in ['SNB', 'SLM', 'AMT', 'ADL-E']: evt = 'UOPS_RETIRED.ALL'
elif arch in ['HSW']: evt = 'UOPS_EXECUTED.CORE'
elif arch in ['IVB', 'BDW', 'SKL', 'SKX', 'KBL', 'CFL', 'CNL', 'ICL', 'CLX', 'TGL', 'RKL', 'ADL-P']: evt = 'UOPS_EXECUTED.THREAD'
localHtmlReports.append('<li>' + evt + ': ' + str(value) + '</li>\n')
@@ -276,7 +276,7 @@ def getEventConfig(event):
if arch in ['NHM', 'WSM', 'SNB' ]: return 'C2.01' # UOPS_RETIRED.ANY
if arch in ['SNB']: return 'C2.01' # UOPS_RETIRED.ALL
if arch in ['GLM', 'GLP', 'ADL-E']: return 'C2.00' # UOPS_RETIRED.ALL
if arch in ['BNL']: return 'C2.10' # UOPS_RETIRED.ANY
if arch in ['BNL', 'SLM', 'AMT']: return 'C2.10' # UOPS_RETIRED.ANY
if arch in ['HSW']: return 'B1.02' # UOPS_EXECUTED.CORE; note: may undercount due to erratum HSD30
if arch in ['IVB', 'BDW', 'SKL', 'SKX', 'KBL', 'CFL', 'CNL', 'ICL', 'CLX', 'TGL', 'RKL', 'ADL-P']: return 'B1.01' # UOPS_EXECUTED.THREAD
if arch in ['ZEN+', 'ZEN2', 'ZEN3']: return '0C1.00'
@@ -290,7 +290,7 @@ def getEventConfig(event):
if arch in ['NHM', 'WSM']: return 'D1.02'
if arch in ['SNB', 'IVB', 'HSW', 'BDW', 'SKL', 'SKX', 'KBL', 'CFL', 'CNL', 'ICL', 'CLX', 'TGL', 'RKL']: return '79.30'
if arch in ['ADL-P']: return '79.20'
if arch in ['GLM', 'GLP', 'ADL-E']: return 'C2.01'
if arch in ['SLM', 'AMT', 'GLM', 'GLP', 'ADL-E']: return 'C2.01'
if arch in ['BNL']: return 'A9.01' # undocumented, but seems to work
if event == 'UOPS_PORT_0':
if arch in ['CON', 'WOL']: return 'A1.01.CTR=0'