1cc0c1555SSean Bruno.\" Copyright (c) 2013 Hiren Panchasara <hiren.panchasara@gmail.com> 2cc0c1555SSean Bruno.\" All rights reserved. 3cc0c1555SSean Bruno.\" 4cc0c1555SSean Bruno.\" Redistribution and use in source and binary forms, with or without 5cc0c1555SSean Bruno.\" modification, are permitted provided that the following conditions 6cc0c1555SSean Bruno.\" are met: 7cc0c1555SSean Bruno.\" 1. Redistributions of source code must retain the above copyright 8cc0c1555SSean Bruno.\" notice, this list of conditions and the following disclaimer. 9cc0c1555SSean Bruno.\" 2. Redistributions in binary form must reproduce the above copyright 10cc0c1555SSean Bruno.\" notice, this list of conditions and the following disclaimer in the 11cc0c1555SSean Bruno.\" documentation and/or other materials provided with the distribution. 12cc0c1555SSean Bruno.\" 13cc0c1555SSean Bruno.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 14cc0c1555SSean Bruno.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15cc0c1555SSean Bruno.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16cc0c1555SSean Bruno.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 17cc0c1555SSean Bruno.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18cc0c1555SSean Bruno.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 19cc0c1555SSean Bruno.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 20cc0c1555SSean Bruno.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21cc0c1555SSean Bruno.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22cc0c1555SSean Bruno.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 23cc0c1555SSean Bruno.\" SUCH DAMAGE. 24cc0c1555SSean Bruno.\" 25cc0c1555SSean Bruno.Dd March 22, 2013 26cc0c1555SSean Bruno.Dt PMC.HASWELL 3 27cc0c1555SSean Bruno.Os 28cc0c1555SSean Bruno.Sh NAME 29cc0c1555SSean Bruno.Nm pmc.haswell 30cc0c1555SSean Bruno.Nd measurement events for 31cc0c1555SSean Bruno.Tn Intel 32ab38e32dSEdward Tomasz Napierala.Tn Haswell 33cc0c1555SSean Brunofamily CPUs 34cc0c1555SSean Bruno.Sh LIBRARY 35cc0c1555SSean Bruno.Lb libpmc 36cc0c1555SSean Bruno.Sh SYNOPSIS 37cc0c1555SSean Bruno.In pmc.h 38cc0c1555SSean Bruno.Sh DESCRIPTION 39cc0c1555SSean Bruno.Tn Intel 40cc0c1555SSean Bruno.Tn "Haswell" 41cc0c1555SSean BrunoCPUs contain PMCs conforming to version 2 of the 42cc0c1555SSean Bruno.Tn Intel 43cc0c1555SSean Brunoperformance measurement architecture. 44cc0c1555SSean BrunoThese CPUs may contain up to two classes of PMCs: 45cc0c1555SSean Bruno.Bl -tag -width "Li PMC_CLASS_IAP" 46cc0c1555SSean Bruno.It Li PMC_CLASS_IAF 47cc0c1555SSean BrunoFixed-function counters that count only one hardware event per counter. 48cc0c1555SSean Bruno.It Li PMC_CLASS_IAP 49cc0c1555SSean BrunoProgrammable counters that may be configured to count one of a defined 50cc0c1555SSean Brunoset of hardware events. 51cc0c1555SSean Bruno.El 52cc0c1555SSean Bruno.Pp 53cc0c1555SSean BrunoThe number of PMCs available in each class and their widths need to be 54cc0c1555SSean Brunodetermined at run time by calling 55cc0c1555SSean Bruno.Xr pmc_cpuinfo 3 . 56cc0c1555SSean Bruno.Pp 57cc0c1555SSean BrunoIntel Haswell PMCs are documented in 58cc0c1555SSean Bruno.Rs 59cc0c1555SSean Bruno.%B "Intel(R) 64 and IA-32 Architectures Software Developer's Manual" 60cc0c1555SSean Bruno.%T "Combined Volumes: 1, 2A, 2B, 2C, 3A, 3B and 3C" 61cc0c1555SSean Bruno.%N "Order Number: 325462-045US" 62cc0c1555SSean Bruno.%D January 2013 63cc0c1555SSean Bruno.%Q "Intel Corporation" 64cc0c1555SSean Bruno.Re 65cc0c1555SSean Bruno.Ss HASWELL FIXED FUNCTION PMCS 66cc0c1555SSean BrunoThese PMCs and their supported events are documented in 67cc0c1555SSean Bruno.Xr pmc.iaf 3 . 68cc0c1555SSean Bruno.Ss HASWELL PROGRAMMABLE PMCS 69cc0c1555SSean BrunoThe programmable PMCs support the following capabilities: 70cc0c1555SSean Bruno.Bl -column "PMC_CAP_INTERRUPT" "Support" 71cc0c1555SSean Bruno.It Em Capability Ta Em Support 72cc0c1555SSean Bruno.It PMC_CAP_CASCADE Ta \&No 73cc0c1555SSean Bruno.It PMC_CAP_EDGE Ta Yes 74cc0c1555SSean Bruno.It PMC_CAP_INTERRUPT Ta Yes 75cc0c1555SSean Bruno.It PMC_CAP_INVERT Ta Yes 76cc0c1555SSean Bruno.It PMC_CAP_READ Ta Yes 77cc0c1555SSean Bruno.It PMC_CAP_PRECISE Ta \&No 78cc0c1555SSean Bruno.It PMC_CAP_SYSTEM Ta Yes 79cc0c1555SSean Bruno.It PMC_CAP_TAGGING Ta \&No 80cc0c1555SSean Bruno.It PMC_CAP_THRESHOLD Ta Yes 81cc0c1555SSean Bruno.It PMC_CAP_USER Ta Yes 82cc0c1555SSean Bruno.It PMC_CAP_WRITE Ta Yes 83cc0c1555SSean Bruno.El 84cc0c1555SSean Bruno.Ss Event Qualifiers 85cc0c1555SSean BrunoEvent specifiers for these PMCs support the following common 86cc0c1555SSean Brunoqualifiers: 87cc0c1555SSean Bruno.Bl -tag -width indent 88cc0c1555SSean Bruno.It Li rsp= Ns Ar value 89cc0c1555SSean BrunoConfigure the Off-core Response bits. 90cc0c1555SSean Bruno.Bl -tag -width indent 91cc0c1555SSean Bruno.It Li DMND_DATA_RD 92cc0c1555SSean BrunoCounts the number of demand and DCU prefetch data reads of full 93cc0c1555SSean Brunoand partial cachelines as well as demand data page table entry 940b129325SGordon Berglingcacheline reads. 950b129325SGordon BerglingDoes not count L2 data read prefetches or instruction fetches. 96cc0c1555SSean Bruno.It Li REQ_DMND_RFO 97cc0c1555SSean BrunoCounts the number of demand and DCU prefetch reads for ownership (RFO) 980b129325SGordon Berglingrequests generated by a write to data cacheline. 990b129325SGordon BerglingDoes not count L2 RFO prefetches. 100cc0c1555SSean Bruno.It Li REQ_DMND_IFETCH 101cc0c1555SSean BrunoCounts the number of demand and DCU prefetch instruction cacheline reads. 102cc0c1555SSean BrunoDoes not count L2 code read prefetches. 103cc0c1555SSean Bruno.It Li REQ_WB 104cc0c1555SSean BrunoCounts the number of writeback (modified to exclusive) transactions. 105cc0c1555SSean Bruno.It Li REQ_PF_DATA_RD 106cc0c1555SSean BrunoCounts the number of data cacheline reads generated by L2 prefetchers. 107cc0c1555SSean Bruno.It Li REQ_PF_RFO 108cc0c1555SSean BrunoCounts the number of RFO requests generated by L2 prefetchers. 109cc0c1555SSean Bruno.It Li REQ_PF_IFETCH 110cc0c1555SSean BrunoCounts the number of code reads generated by L2 prefetchers. 111cc0c1555SSean Bruno.It Li REQ_PF_LLC_DATA_RD 112cc0c1555SSean BrunoL2 prefetcher to L3 for loads. 113cc0c1555SSean Bruno.It Li REQ_PF_LLC_RFO 114cc0c1555SSean BrunoRFO requests generated by L2 prefetcher 115cc0c1555SSean Bruno.It Li REQ_PF_LLC_IFETCH 116cc0c1555SSean BrunoL2 prefetcher to L3 for instruction fetches. 117cc0c1555SSean Bruno.It Li REQ_BUS_LOCKS 118cc0c1555SSean BrunoBus lock and split lock requests. 119cc0c1555SSean Bruno.It Li REQ_STRM_ST 120cc0c1555SSean BrunoStreaming store requests. 121cc0c1555SSean Bruno.It Li REQ_OTHER 122cc0c1555SSean BrunoAny other request that crosses IDI, including I/O. 123cc0c1555SSean Bruno.It Li RES_ANY 124cc0c1555SSean BrunoCatch all value for any response types. 125cc0c1555SSean Bruno.It Li RES_SUPPLIER_NO_SUPP 126cc0c1555SSean BrunoNo Supplier Information available. 127cc0c1555SSean Bruno.It Li RES_SUPPLIER_LLC_HITM 128cc0c1555SSean BrunoM-state initial lookup stat in L3. 129cc0c1555SSean Bruno.It Li RES_SUPPLIER_LLC_HITE 130cc0c1555SSean BrunoE-state. 131cc0c1555SSean Bruno.It Li RES_SUPPLIER_LLC_HITS 132cc0c1555SSean BrunoS-state. 133cc0c1555SSean Bruno.It Li RES_SUPPLIER_LLC_HITF 134cc0c1555SSean BrunoF-state. 135cc0c1555SSean Bruno.It Li RES_SUPPLIER_LOCAL 136cc0c1555SSean BrunoLocal DRAM Controller. 137cc0c1555SSean Bruno.It Li RES_SNOOP_SNP_NONE 138cc0c1555SSean BrunoNo details on snoop-related information. 139cc0c1555SSean Bruno.It Li RES_SNOOP_SNP_NO_NEEDED 140cc0c1555SSean BrunoNo snoop was needed to satisfy the request. 141cc0c1555SSean Bruno.It Li RES_SNOOP_SNP_MISS 142cc0c1555SSean BrunoA snoop was needed and it missed all snooped caches: 143cc0c1555SSean Bruno-For LLC Hit, ReslHitl was returned by all cores 144cc0c1555SSean Bruno-For LLC Miss, Rspl was returned by all sockets and data was returned from 145cc0c1555SSean BrunoDRAM. 146cc0c1555SSean Bruno.It Li RES_SNOOP_HIT_NO_FWD 1470b129325SGordon BerglingA snoop was needed and it hits in at least one snooped cache. 1480b129325SGordon BerglingHit denotes a cache-line was valid before snoop effect. 1490b129325SGordon BerglingThis includes: 150cc0c1555SSean Bruno-Snoop Hit w/ Invalidation (LLC Hit, RFO) 151cc0c1555SSean Bruno-Snoop Hit, Left Shared (LLC Hit/Miss, IFetch/Data_RD) 152cc0c1555SSean Bruno-Snoop Hit w/ Invalidation and No Forward (LLC Miss, RFO Hit S) 153cc0c1555SSean BrunoIn the LLC Miss case, data is returned from DRAM. 154cc0c1555SSean Bruno.It Li RES_SNOOP_HIT_FWD 155cc0c1555SSean BrunoA snoop was needed and data was forwarded from a remote socket. 156cc0c1555SSean BrunoThis includes: 157cc0c1555SSean Bruno-Snoop Forward Clean, Left Shared (LLC Hit/Miss, IFetch/Data_RD/RFT). 158cc0c1555SSean Bruno.It Li RES_SNOOP_HITM 1590b129325SGordon BerglingA snoop was needed and it HitM-ed in local or remote cache. 1600b129325SGordon BerglingHitM denotes a cache-line was in modified state before effect as a results of snoop. 1610b129325SGordon BerglingThis includes: 162cc0c1555SSean Bruno-Snoop HitM w/ WB (LLC miss, IFetch/Data_RD) 163cc0c1555SSean Bruno-Snoop Forward Modified w/ Invalidation (LLC Hit/Miss, RFO) 164cc0c1555SSean Bruno-Snoop MtoS (LLC Hit, IFetch/Data_RD). 165cc0c1555SSean Bruno.It Li RES_NON_DRAM 1660b129325SGordon BerglingTarget was non-DRAM system address. 1670b129325SGordon BerglingThis includes MMIO transactions. 168cc0c1555SSean Bruno.El 169cc0c1555SSean Bruno.It Li cmask= Ns Ar value 170cc0c1555SSean BrunoConfigure the PMC to increment only if the number of configured 171cc0c1555SSean Brunoevents measured in a cycle is greater than or equal to 172cc0c1555SSean Bruno.Ar value . 173cc0c1555SSean Bruno.It Li edge 174cc0c1555SSean BrunoConfigure the PMC to count the number of de-asserted to asserted 175cc0c1555SSean Brunotransitions of the conditions expressed by the other qualifiers. 176cc0c1555SSean BrunoIf specified, the counter will increment only once whenever a 177cc0c1555SSean Brunocondition becomes true, irrespective of the number of clocks during 178cc0c1555SSean Brunowhich the condition remains true. 179cc0c1555SSean Bruno.It Li inv 180cc0c1555SSean BrunoInvert the sense of comparison when the 181cc0c1555SSean Bruno.Dq Li cmask 182cc0c1555SSean Brunoqualifier is present, making the counter increment when the number of 183cc0c1555SSean Brunoevents per cycle is less than the value specified by the 184cc0c1555SSean Bruno.Dq Li cmask 185cc0c1555SSean Brunoqualifier. 186cc0c1555SSean Bruno.It Li os 187cc0c1555SSean BrunoConfigure the PMC to count events happening at processor privilege 188cc0c1555SSean Brunolevel 0. 189cc0c1555SSean Bruno.It Li usr 190cc0c1555SSean BrunoConfigure the PMC to count events occurring at privilege levels 1, 2 191cc0c1555SSean Brunoor 3. 192cc0c1555SSean Bruno.El 193cc0c1555SSean Bruno.Pp 194cc0c1555SSean BrunoIf neither of the 195cc0c1555SSean Bruno.Dq Li os 196cc0c1555SSean Brunoor 197cc0c1555SSean Bruno.Dq Li usr 198cc0c1555SSean Brunoqualifiers are specified, the default is to enable both. 199cc0c1555SSean Bruno.Ss Event Specifiers (Programmable PMCs) 200cc0c1555SSean BrunoHaswell programmable PMCs support the following events: 201cc0c1555SSean Bruno.Bl -tag -width indent 202cc0c1555SSean Bruno.It Li LD_BLOCKS.STORE_FORWARD 203cc0c1555SSean Bruno.Pq Event 03H , Umask 02H 204cc0c1555SSean BrunoLoads blocked by overlapping with store buffer that 205cc0c1555SSean Brunocannot be forwarded. 206cc0c1555SSean Bruno.It Li MISALIGN_MEM_REF.LOADS 207cc0c1555SSean Bruno.Pq Event 05H , Umask 01H 208cc0c1555SSean BrunoSpeculative cache-line split load uops dispatched to 209cc0c1555SSean BrunoL1D. 210cc0c1555SSean Bruno.It Li MISALIGN_MEM_REF.STORES 211cc0c1555SSean Bruno.Pq Event 05H , Umask 02H 212cc0c1555SSean BrunoSpeculative cache-line split Store-address uops 213cc0c1555SSean Brunodispatched to L1D. 214cc0c1555SSean Bruno.It Li LD_BLOCKS_PARTIAL.ADDRESS_ALIAS 215cc0c1555SSean Bruno.Pq Event 07H , Umask 01H 216cc0c1555SSean BrunoFalse dependencies in MOB due to partial compare 217cc0c1555SSean Brunoon address. 218cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.MISS_CAUSES_A_WALK 219cc0c1555SSean Bruno.Pq Event 08H , Umask 01H 220cc0c1555SSean BrunoMisses in all TLB levels that cause a page walk of any 221cc0c1555SSean Brunopage size. 222cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.WALK_COMPLETED_4K 223cc0c1555SSean Bruno.Pq Event 08H , Umask 02H 224cc0c1555SSean BrunoCompleted page walks due to demand load misses 225cc0c1555SSean Brunothat caused 4K page walks in any TLB levels. 226cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.WALK_COMPLETED_2M_4K 227cc0c1555SSean Bruno.Pq Event 08H , Umask 02H 228cc0c1555SSean BrunoCompleted page walks due to demand load misses 229cc0c1555SSean Brunothat caused 2M/4M page walks in any TLB levels. 230cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.WALK_COMPLETED 231cc0c1555SSean Bruno.Pq Event 08H , Umask 0EH 232cc0c1555SSean BrunoCompleted page walks in any TLB of any page size 233cc0c1555SSean Brunodue to demand load misses 234cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.WALK_DURATION 235cc0c1555SSean Bruno.Pq Event 08H , Umask 10H 236cc0c1555SSean BrunoCycle PMH is busy with a walk. 237cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.STLB_HIT_4K 238cc0c1555SSean Bruno.Pq Event 08H , Umask 20H 239cc0c1555SSean BrunoLoad misses that missed DTLB but hit STLB (4K). 240cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.STLB_HIT_2M 241cc0c1555SSean Bruno.Pq Event 08H , Umask 40H 242cc0c1555SSean BrunoLoad misses that missed DTLB but hit STLB (2M). 243cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.STLB_HIT 244cc0c1555SSean Bruno.Pq Event 08H , Umask 60H 2450b129325SGordon BerglingNumber of cache load STLB hits. 2460b129325SGordon BerglingNo page walk. 247cc0c1555SSean Bruno.It Li DTLB_LOAD_MISSES.PDE_CACHE_MISS 248cc0c1555SSean Bruno.Pq Event 08H , Umask 80H 249cc0c1555SSean BrunoDTLB demand load misses with low part of linear-to- 250cc0c1555SSean Brunophysical address translation missed 251cc0c1555SSean Bruno.It Li INT_MISC.RECOVERY_CYCLES 252cc0c1555SSean Bruno.Pq Event 0DH , Umask 03H 253cc0c1555SSean BrunoCycles waiting to recover after Machine Clears 2540b129325SGordon Berglingexcept JEClear. 2550b129325SGordon BerglingSet Cmask= 1. 256cc0c1555SSean Bruno.It Li UOPS_ISSUED.ANY 257cc0c1555SSean Bruno.Pq Event 0EH , Umask 01H 258cc0c1555SSean Brunoncrements each cycle the # of Uops issued by the 259cc0c1555SSean BrunoRAT to RS. 260cc0c1555SSean BrunoSet Cmask = 1, Inv = 1, Any= 1to count stalled cycles 261cc0c1555SSean Brunoof this core. 262cc0c1555SSean Bruno.It Li UOPS_ISSUED.FLAGS_MERGE 263cc0c1555SSean Bruno.Pq Event 0EH , Umask 10H 2640b129325SGordon BerglingNumber of flags-merge uops allocated. 2650b129325SGordon BerglingSuch uops adds delay. 266cc0c1555SSean Bruno.It Li UOPS_ISSUED.SLOW_LEA 267cc0c1555SSean Bruno.Pq Event 0EH , Umask 20H 2680b129325SGordon BerglingNumber of slow LEA or similar uops allocated. 2690b129325SGordon BerglingSuch uop has 3 sources (e.g. 2 sources + immediate) 270cc0c1555SSean Brunoregardless if as a result of LEA instruction or not. 271cc0c1555SSean Bruno.It Li UOPS_ISSUED.SiNGLE_MUL 272cc0c1555SSean Bruno.Pq Event 0EH , Umask 40H 273cc0c1555SSean BrunoNumber of multiply packed/scalar single precision 274cc0c1555SSean Brunouops allocated. 275cc0c1555SSean Bruno.It Li L2_RQSTS.DEMAND_DATA_RD_MISS 276cc0c1555SSean Bruno.Pq Event 24H , Umask 21H 277cc0c1555SSean BrunoDemand Data Read requests that missed L2, no 278cc0c1555SSean Brunorejects. 279cc0c1555SSean Bruno.It Li L2_RQSTS.DEMAND_DATA_RD_HIT 280cc0c1555SSean Bruno.Pq Event 24H , Umask 41H 281cc0c1555SSean BrunoDemand Data Read requests that hit L2 cache. 282cc0c1555SSean Bruno.It Li L2_RQSTS.ALL_DEMAND_DATA_RD 283cc0c1555SSean Bruno.Pq Event 24H , Umask E1H 284cc0c1555SSean BrunoCounts any demand and L1 HW prefetch data load 285cc0c1555SSean Brunorequests to L2. 286cc0c1555SSean Bruno.It Li L2_RQSTS.RFO_HIT 287cc0c1555SSean Bruno.Pq Event 24H , Umask 42H 288cc0c1555SSean BrunoCounts the number of store RFO requests that hit 289cc0c1555SSean Brunothe L2 cache. 290cc0c1555SSean Bruno.It Li L2_RQSTS.RFO_MISS 291cc0c1555SSean Bruno.Pq Event 24H , Umask 22H 292cc0c1555SSean BrunoCounts the number of store RFO requests that miss 293cc0c1555SSean Brunothe L2 cache. 294cc0c1555SSean Bruno.It Li L2_RQSTS.ALL_RFO 295cc0c1555SSean Bruno.Pq Event 24H , Umask E2H 296cc0c1555SSean BrunoCounts all L2 store RFO requests. 297cc0c1555SSean Bruno.It Li L2_RQSTS.CODE_RD_HIT 298cc0c1555SSean Bruno.Pq Event 24H , Umask 44H 299cc0c1555SSean BrunoNumber of instruction fetches that hit the L2 cache. 300cc0c1555SSean Bruno.It Li L2_RQSTS.CODE_RD_MISS 301cc0c1555SSean Bruno.Pq Event 24H , Umask 24H 302cc0c1555SSean BrunoNumber of instruction fetches that missed the L2 303cc0c1555SSean Brunocache. 304cc0c1555SSean Bruno.It Li L2_RQSTS.ALL_DEMAND_MISS 305cc0c1555SSean Bruno.Pq Event 24H , Umask 27H 306cc0c1555SSean BrunoDemand requests that miss L2 cache. 307cc0c1555SSean Bruno.It Li L2_RQSTS.ALL_DEMAND_REFERENCES 308cc0c1555SSean Bruno.Pq Event 24H , Umask E7H 309cc0c1555SSean BrunoDemand requests to L2 cache. 310cc0c1555SSean Bruno.It Li L2_RQSTS.ALL_CODE_RD 311cc0c1555SSean Bruno.Pq Event 24H , Umask E4H 312cc0c1555SSean BrunoCounts all L2 code requests. 313cc0c1555SSean Bruno.It Li L2_RQSTS.L2_PF_HIT 314cc0c1555SSean Bruno.Pq Event 24H , Umask 50H 315cc0c1555SSean BrunoCounts all L2 HW prefetcher requests that hit L2. 316cc0c1555SSean Bruno.It Li L2_RQSTS.L2_PF_MISS 317cc0c1555SSean Bruno.Pq Event 24H , Umask 30H 318cc0c1555SSean BrunoCounts all L2 HW prefetcher requests that missed 319cc0c1555SSean BrunoL2. 320cc0c1555SSean Bruno.It Li L2_RQSTS.ALL_PF 321cc0c1555SSean Bruno.Pq Event 24H , Umask F8H 322cc0c1555SSean BrunoCounts all L2 HW prefetcher requests. 323cc0c1555SSean Bruno.It Li L2_RQSTS.MISS 324cc0c1555SSean Bruno.Pq Event 24H , Umask 3FH 325cc0c1555SSean BrunoAll requests that missed L2. 326cc0c1555SSean Bruno.It Li L2_RQSTS.REFERENCES 327cc0c1555SSean Bruno.Pq Event 24H , Umask FFH 328cc0c1555SSean BrunoAll requests to L2 cache. 329cc0c1555SSean Bruno.It Li L2_DEMAND_RQSTS.WB_HIT 330cc0c1555SSean Bruno.Pq Event 27H , Umask 50H 331cc0c1555SSean BrunoNot rejected writebacks that hit L2 cache 332cc0c1555SSean Bruno.It Li LONGEST_LAT_CACHE.REFERENCE 333cc0c1555SSean Bruno.Pq Event 2EH , Umask 4FH 334cc0c1555SSean BrunoThis event counts requests originating from the core 335cc0c1555SSean Brunothat reference a cache line in the last level cache. 336cc0c1555SSean Bruno.It Li LONGEST_LAT_CACHE.MISS 337cc0c1555SSean Bruno.Pq Event 2EH , Umask 41H 338cc0c1555SSean BrunoThis event counts each cache miss condition for 339cc0c1555SSean Brunoreferences to the last level cache. 340cc0c1555SSean Bruno.It Li CPU_CLK_UNHALTED.THREAD_P 341cc0c1555SSean Bruno.Pq Event 3CH , Umask 00H 3420b129325SGordon BerglingCounts the number of thread cycles while the thread is not in a halt state. 3430b129325SGordon BerglingThe thread enters the halt state when it is running the HLT instruction. 3440b129325SGordon BerglingThe core frequency may change from time to time due to power or thermal throttling. 345cc0c1555SSean Bruno.It Li CPU_CLK_THREAD_UNHALTED.REF_XCLK 346cc0c1555SSean Bruno.Pq Event 3CH , Umask 01H 347cc0c1555SSean BrunoIncrements at the frequency of XCLK (100 MHz) 348cc0c1555SSean Brunowhen not halted. 349cc0c1555SSean Bruno.It Li L1D_PEND_MISS.PENDING 350cc0c1555SSean Bruno.Pq Event 48H , Umask 01H 3510b129325SGordon BerglingIncrements the number of outstanding L1D misses every cycle. 3520b129325SGordon BerglingSet Cmaks = 1 and Edge =1 to count occurrences. 353cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.MISS_CAUSES_A_WALK 354cc0c1555SSean Bruno.Pq Event 49H , Umask 01H 355cc0c1555SSean BrunoMiss in all TLB levels causes an page walk of any 356cc0c1555SSean Brunopage size (4K/2M/4M/1G). 357cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.WALK_COMPLETED_4K 358cc0c1555SSean Bruno.Pq Event 49H , Umask 02H 359cc0c1555SSean BrunoCompleted page walks due to store misses in one or 360cc0c1555SSean Brunomore TLB levels of 4K page structure. 361cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.WALK_COMPLETED_2M_4M 362cc0c1555SSean Bruno.Pq Event 49H , Umask 04H 363cc0c1555SSean BrunoCompleted page walks due to store misses in one or 364cc0c1555SSean Brunomore TLB levels of 2M/4M page structure. 365cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.WALK_COMPLETED 366cc0c1555SSean Bruno.Pq Event 49H , Umask 0EH 367cc0c1555SSean BrunoCompleted page walks due to store miss in any TLB 368cc0c1555SSean Brunolevels of any page size (4K/2M/4M/1G). 369cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.WALK_DURATION 370cc0c1555SSean Bruno.Pq Event 49H , Umask 10H 371cc0c1555SSean BrunoCycles PMH is busy with this walk. 372cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.STLB_HIT_4K 373cc0c1555SSean Bruno.Pq Event 49H , Umask 20H 374cc0c1555SSean BrunoStore misses that missed DTLB but hit STLB (4K). 375cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.STLB_HIT_2M 376cc0c1555SSean Bruno.Pq Event 49H , Umask 40H 377cc0c1555SSean BrunoStore misses that missed DTLB but hit STLB (2M). 378cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.STLB_HIT 379cc0c1555SSean Bruno.Pq Event 49H , Umask 60H 380cc0c1555SSean BrunoStore operations that miss the first TLB level but hit 381cc0c1555SSean Brunothe second and do not cause page walks. 382cc0c1555SSean Bruno.It Li DTLB_STORE_MISSES.PDE_CACHE_MISS 383cc0c1555SSean Bruno.Pq Event 49H , Umask 80H 384cc0c1555SSean BrunoDTLB store misses with low part of linear-to-physical 385cc0c1555SSean Brunoaddress translation missed. 386cc0c1555SSean Bruno.It Li LOAD_HIT_PRE.SW_PF 387cc0c1555SSean Bruno.Pq Event 4CH , Umask 01H 388cc0c1555SSean BrunoNon-SW-prefetch load dispatches that hit fill buffer 389cc0c1555SSean Brunoallocated for S/W prefetch. 390cc0c1555SSean Bruno.It Li LOAD_HIT_PRE.HW_PF 391cc0c1555SSean Bruno.Pq Event 4CH , Umask 02H 392cc0c1555SSean BrunoNon-SW-prefetch load dispatches that hit fill buffer 393cc0c1555SSean Brunoallocated for H/W prefetch. 394cc0c1555SSean Bruno.It Li L1D.REPLACEMENT 395cc0c1555SSean Bruno.Pq Event 51H , Umask 01H 396cc0c1555SSean BrunoCounts the number of lines brought into the L1 data 397cc0c1555SSean Brunocache. 398cc0c1555SSean Bruno.It Li MOVE_ELIMINATION.INT_NOT_ELIMINATED 399cc0c1555SSean Bruno.Pq Event 58H , Umask 04H 400cc0c1555SSean BrunoNumber of integer Move Elimination candidate uops 401cc0c1555SSean Brunothat were not eliminated. 402cc0c1555SSean Bruno.It Li MOVE_ELIMINATION.SMID_NOT_ELIMINATED 403cc0c1555SSean Bruno.Pq Event 58H , Umask 08H 404cc0c1555SSean BrunoNumber of SIMD Move Elimination candidate uops 405cc0c1555SSean Brunothat were not eliminated. 406cc0c1555SSean Bruno.It Li MOVE_ELIMINATION.INT_ELIMINATED 407cc0c1555SSean Bruno.Pq Event 58H , Umask 01H 408cc0c1555SSean BrunoUnhalted core cycles when the thread is in ring 0. 409cc0c1555SSean Bruno.It Li MOVE_ELIMINATION.SMID_ELIMINATED 410cc0c1555SSean Bruno.Pq Event 58H , Umask 02H 411cc0c1555SSean BrunoNumber of SIMD Move Elimination candidate uops 412cc0c1555SSean Brunothat were eliminated. 413cc0c1555SSean Bruno.It Li CPL_CYCLES.RING0 414cc0c1555SSean Bruno.Pq Event 5CH , Umask 02H 415cc0c1555SSean BrunoUnhalted core cycles when the thread is in ring 0. 416cc0c1555SSean Bruno.It Li CPL_CYCLES.RING123 417cc0c1555SSean Bruno.Pq Event 5CH , Umask 01H 418cc0c1555SSean BrunoUnhalted core cycles when the thread is not in ring 0. 419cc0c1555SSean Bruno.It Li RS_EVENTS.EMPTY_CYCLES 420cc0c1555SSean Bruno.Pq Event 5EH , Umask 01H 421cc0c1555SSean BrunoCycles the RS is empty for the thread. 422cc0c1555SSean Bruno.It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND_DATA_RD 423cc0c1555SSean Bruno.Pq Event 60H , Umask 01H 4240b129325SGordon BerglingOffcore outstanding Demand Data Read transactions in SQ to uncore. 4250b129325SGordon BerglingSet Cmask=1 to count cycles. 426cc0c1555SSean Bruno.It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND_CORE_RD 427cc0c1555SSean Bruno.Pq Event 60H , Umask 02H 4280b129325SGordon BerglingOffcore outstanding Demand code Read transactions in SQ to uncore. 4290b129325SGordon BerglingSet Cmask=1 to count cycles. 430cc0c1555SSean Bruno.It Li OFFCORE_REQUESTS_OUTSTANDING.DEMAND_RFO 431cc0c1555SSean Bruno.Pq Event 60H , Umask 04H 4320b129325SGordon BerglingOffcore outstanding RFO store transactions in SQ to uncore. 4330b129325SGordon BerglingSet Cmask=1 to count cycles. 434cc0c1555SSean Bruno.It Li OFFCORE_REQUESTS_OUTSTANDING.ALL_DATA_RD 435cc0c1555SSean Bruno.Pq Event 60H , Umask 08H 4360b129325SGordon BerglingOffcore outstanding cacheable data read transactions in SQ to uncore. 4370b129325SGordon BerglingSet Cmask=1 to count cycles. 438cc0c1555SSean Bruno.It Li LOCK_CYCLES.SPLIT_LOCK_UC_LOCK_DURATION 439cc0c1555SSean Bruno.Pq Event 63H , Umask 01H 4400b129325SGordon BerglingCycles in which the L1D and L2 are locked, due to a UC lock or split lock. 441cc0c1555SSean Bruno.It Li LOCK_CYCLES.CACHE_LOCK_DURATION 442cc0c1555SSean Bruno.Pq Event 63H , Umask 02H 443cc0c1555SSean BrunoCycles in which the L1D is locked. 444cc0c1555SSean Bruno.It Li IDQ.EMPTY 445cc0c1555SSean Bruno.Pq Event 79H , Umask 02H 446cc0c1555SSean BrunoCounts cycles the IDQ is empty. 447cc0c1555SSean Bruno.It Li IDQ.MITE_UOPS 448cc0c1555SSean Bruno.Pq Event 79H , Umask 04H 4490b129325SGordon BerglingIncrement each cycle # of uops delivered to IDQ from MITE path. 450cc0c1555SSean BrunoSet Cmask = 1 to count cycles. 451cc0c1555SSean Bruno.It Li IDQ.DSB_UOPS 452cc0c1555SSean Bruno.Pq Event 79H , Umask 08H 453cc0c1555SSean BrunoIncrement each cycle. # of uops delivered to IDQ 454cc0c1555SSean Brunofrom DSB path. 455cc0c1555SSean BrunoSet Cmask = 1 to count cycles. 456cc0c1555SSean Bruno.It Li IDQ.MS_DSB_UOPS 457cc0c1555SSean Bruno.Pq Event 79H , Umask 10H 4580b129325SGordon BerglingIncrement each cycle # of uops delivered to IDQ when MS_busy by DSB. 4590b129325SGordon BerglingSet Cmask = 1 to count cycles. 4600b129325SGordon BerglingAdd Edge=1 to count # of delivery. 461cc0c1555SSean Bruno.It Li IDQ.MS_MITE_UOPS 462cc0c1555SSean Bruno.Pq Event 79H , Umask 20H 4630b129325SGordon Berglingncrement each cycle # of uops delivered to IDQ when MS_busy by MITE. 4640b129325SGordon BerglingSet Cmask = 1 to count cycles. 465cc0c1555SSean Bruno.It Li IDQ.MS_UOPS 466cc0c1555SSean Bruno.Pq Event 79H , Umask 30H 4670b129325SGordon BerglingIncrement each cycle # of uops delivered to IDQ from MS by either DSB or MITE. 4680b129325SGordon BerglingSet Cmask = 1 to count cycles. 469cc0c1555SSean Bruno.It Li IDQ.ALL_DSB_CYCLES_ANY_UOPS 470cc0c1555SSean Bruno.Pq Event 79H , Umask 18H 4710b129325SGordon BerglingCounts cycles DSB is delivered at least one uops. 4720b129325SGordon BerglingSet Cmask = 1. 473cc0c1555SSean Bruno.It Li IDQ.ALL_DSB_CYCLES_4_UOPS 474cc0c1555SSean Bruno.Pq Event 79H , Umask 18H 4750b129325SGordon BerglingCounts cycles DSB is delivered four uops. 4760b129325SGordon BerglingSet Cmask=4. 477cc0c1555SSean Bruno.It Li IDQ.ALL_MITE_CYCLES_ANY_UOPS 478cc0c1555SSean Bruno.Pq Event 79H , Umask 24H 4790b129325SGordon BerglingCounts cycles MITE is delivered at least one uops. 4800b129325SGordon BerglingSet Cmask = 1. 481cc0c1555SSean Bruno.It Li IDQ.ALL_MITE_CYCLES_4_UOPS 482cc0c1555SSean Bruno.Pq Event 79H , Umask 24H 4830b129325SGordon BerglingCounts cycles MITE is delivered four uops. 4840b129325SGordon BerglingSet Cmask =4. 485cc0c1555SSean Bruno.It Li IDQ.MITE_ALL_UOPS 486cc0c1555SSean Bruno.Pq Event 79H , Umask 3CH 487cc0c1555SSean Bruno# of uops delivered to IDQ from any path. 488cc0c1555SSean Bruno.It Li ICACHE.MISSES 489cc0c1555SSean Bruno.Pq Event 80H , Umask 02H 4900b129325SGordon BerglingNumber of Instruction Cache, Streaming Buffer and Victim Cache Misses. 4910b129325SGordon BerglingIncludes UC accesses. 492cc0c1555SSean Bruno.It Li ITLB_MISSES.MISS_CAUSES_A_WALK 493cc0c1555SSean Bruno.Pq Event 85H , Umask 01H 494cc0c1555SSean BrunoMisses in ITLB that causes a page walk of any page 495cc0c1555SSean Brunosize. 496cc0c1555SSean Bruno.It Li ITLB_MISSES.WALK_COMPLETED_4K 497cc0c1555SSean Bruno.Pq Event 85H , Umask 02H 498cc0c1555SSean BrunoCompleted page walks due to misses in ITLB 4K page 499cc0c1555SSean Brunoentries. 500cc0c1555SSean Bruno.It Li TLB_MISSES.WALK_COMPLETED_2M_4M 501cc0c1555SSean Bruno.Pq Event 85H , Umask 04H 502cc0c1555SSean BrunoCompleted page walks due to misses in ITLB 2M/4M 503cc0c1555SSean Brunopage entries. 504cc0c1555SSean Bruno.It Li ITLB_MISSES.WALK_COMPLETED 505cc0c1555SSean Bruno.Pq Event 85H , Umask 0EH 506cc0c1555SSean BrunoCompleted page walks in ITLB of any page size. 507cc0c1555SSean Bruno.It Li ITLB_MISSES.WALK_DURATION 508cc0c1555SSean Bruno.Pq Event 85H , Umask 10H 509cc0c1555SSean BrunoCycle PMH is busy with a walk. 510cc0c1555SSean Bruno.It Li ITLB_MISSES.STLB_HIT_4K 511cc0c1555SSean Bruno.Pq Event 85H , Umask 20H 512cc0c1555SSean BrunoITLB misses that hit STLB (4K). 513cc0c1555SSean Bruno.It Li ITLB_MISSES.STLB_HIT_2M 514cc0c1555SSean Bruno.Pq Event 85H , Umask 40H 515cc0c1555SSean BrunoITLB misses that hit STLB (2K). 516cc0c1555SSean Bruno.It Li ITLB_MISSES.STLB_HIT 517cc0c1555SSean Bruno.Pq Event 85H , Umask 60H 5180b129325SGordon BerglingTLB misses that hit STLB. 5190b129325SGordon BerglingNo page walk. 520cc0c1555SSean Bruno.It Li ILD_STALL.LCP 521cc0c1555SSean Bruno.Pq Event 87H , Umask 01H 522cc0c1555SSean BrunoStalls caused by changing prefix length of the 523cc0c1555SSean Brunoinstruction. 524cc0c1555SSean Bruno.It Li ILD_STALL.IQ_FULL 525cc0c1555SSean Bruno.Pq Event 87H , Umask 04H 526cc0c1555SSean BrunoStall cycles due to IQ is full. 5279e60f3acSRyan Stone.It Li BR_INST_EXEC.NONTAKEN_COND 5289e60f3acSRyan Stone.Pq Event 88H , Umask 41H 5299e60f3acSRyan StoneCount conditional near branch instructions that were executed (but not 5309e60f3acSRyan Stonenecessarily retired) and not taken. 5319e60f3acSRyan Stone.It Li BR_INST_EXEC.TAKEN_COND 5329e60f3acSRyan Stone.Pq Event 88H , Umask 81H 5339e60f3acSRyan StoneCount conditional near branch instructions that were executed (but not 5349e60f3acSRyan Stonenecessarily retired) and taken. 535cc0c1555SSean Bruno.It Li BR_INST_EXEC.DIRECT_JMP 5369e60f3acSRyan Stone.Pq Event 88H , Umask 82H 5379e60f3acSRyan StoneCount all unconditional near branch instructions excluding calls and 5389e60f3acSRyan Stoneindirect branches. 539cc0c1555SSean Bruno.It Li BR_INST_EXEC.INDIRECT_JMP_NON_CALL_RET 5409e60f3acSRyan Stone.Pq Event 88H , Umask 84H 5419e60f3acSRyan StoneCount executed indirect near branch instructions that are not calls nor 5429e60f3acSRyan Stonereturns. 543cc0c1555SSean Bruno.It Li BR_INST_EXEC.RETURN_NEAR 5449e60f3acSRyan Stone.Pq Event 88H , Umask 88H 5459e60f3acSRyan StoneCount indirect near branches that have a return mnemonic. 546cc0c1555SSean Bruno.It Li BR_INST_EXEC.DIRECT_NEAR_CALL 5479e60f3acSRyan Stone.Pq Event 88H , Umask 90H 5489e60f3acSRyan StoneCount unconditional near call branch instructions, excluding non call 5499e60f3acSRyan Stonebranch, executed. 550cc0c1555SSean Bruno.It Li BR_INST_EXEC.INDIRECT_NEAR_CALL 5519e60f3acSRyan Stone.Pq Event 88H , Umask A0H 5529e60f3acSRyan StoneCount indirect near calls, including both register and memory indirect, 5539e60f3acSRyan Stoneexecuted. 554cc0c1555SSean Bruno.It Li BR_INST_EXEC.ALL_BRANCHES 555cc0c1555SSean Bruno.Pq Event 88H , Umask FFH 5569e60f3acSRyan StoneCounts all near executed branches (not necessarily retired). 5579e60f3acSRyan Stone.It Li BR_MISP_EXEC.NONTAKEN_COND 5589e60f3acSRyan Stone.Pq Event 89H , Umask 41H 5599e60f3acSRyan StoneCount conditional near branch instructions mispredicted as nontaken. 5609e60f3acSRyan Stone.It Li BR_MISP_EXEC.TAKEN_COND 5619e60f3acSRyan Stone.Pq Event 89H , Umask 81H 5629e60f3acSRyan StoneCount conditional near branch instructions mispredicted as taken. 563cc0c1555SSean Bruno.It Li BR_MISP_EXEC.INDIRECT_JMP_NON_CALL_RET 5649e60f3acSRyan Stone.Pq Event 89H , Umask 84H 5659e60f3acSRyan StoneCount mispredicted indirect near branch instructions that are not calls 5669e60f3acSRyan Stonenor returns. 567cc0c1555SSean Bruno.It Li BR_MISP_EXEC.RETURN_NEAR 5689e60f3acSRyan Stone.Pq Event 89H , Umask 88H 5699e60f3acSRyan StoneCount mispredicted indirect near branches that have a return mnemonic. 570cc0c1555SSean Bruno.It Li BR_MISP_EXEC.DIRECT_NEAR_CALL 5719e60f3acSRyan Stone.Pq Event 89H , Umask 90H 5729e60f3acSRyan StoneCount mispredicted unconditional near call branch instructions, excluding 5739e60f3acSRyan Stonenon call branch, executed. 574cc0c1555SSean Bruno.It Li BR_MISP_EXEC.INDIRECT_NEAR_CALL 5759e60f3acSRyan Stone.Pq Event 89H , Umask A0H 5769e60f3acSRyan StoneCount mispredicted indirect near calls, including both register and memory 5779e60f3acSRyan Stoneindirect, executed. 578cc0c1555SSean Bruno.It Li BR_MISP_EXEC.ALL_BRANCHES 579cc0c1555SSean Bruno.Pq Event 89H , Umask FFH 5809e60f3acSRyan StoneCounts all mispredicted near executed branches (not necessarily retired). 581cc0c1555SSean Bruno.It Li IDQ_UOPS_NOT_DELIVERED.CORE 582cc0c1555SSean Bruno.Pq Event 9CH , Umask 01H 583cc0c1555SSean BrunoCount number of non-delivered uops to RAT per 584cc0c1555SSean Brunothread. 585cc0c1555SSean Bruno.It Li UOPS_EXECUTED_PORT.PORT_0 586cc0c1555SSean Bruno.Pq Event A1H , Umask 01H 587cc0c1555SSean BrunoCycles which a Uop is dispatched on port 0 in this 588cc0c1555SSean Brunothread. 589cc0c1555SSean Bruno.It Li UOPS_EXECUTED_PORT.PORT_1 590cc0c1555SSean Bruno.Pq Event A1H , Umask 02H 591cc0c1555SSean BrunoCycles which a Uop is dispatched on port 1 in this 592cc0c1555SSean Brunothread. 593cc0c1555SSean Bruno.It Li UOPS_EXECUTED_PORT.PORT_2 594cc0c1555SSean Bruno.Pq Event A1H , Umask 04H 595cc0c1555SSean BrunoCycles which a Uop is dispatched on port 2 in this 596cc0c1555SSean Brunothread. 597cc0c1555SSean Bruno.It Li UOPS_EXECUTED_PORT.PORT_3 598cc0c1555SSean Bruno.Pq Event A1H , Umask 08H 599cc0c1555SSean BrunoCycles which a Uop is dispatched on port 3 in this 600cc0c1555SSean Brunothread. 601cc0c1555SSean Bruno.It Li UOPS_EXECUTED_PORT.PORT_4 602cc0c1555SSean Bruno.Pq Event A1H , Umask 10H 603cc0c1555SSean BrunoCycles which a Uop is dispatched on port 4 in this 604cc0c1555SSean Brunothread. 605cc0c1555SSean Bruno.It Li UOPS_EXECUTED_PORT.PORT_5 606cc0c1555SSean Bruno.Pq Event A1H , Umask 20H 607cc0c1555SSean BrunoCycles which a Uop is dispatched on port 5 in this 608cc0c1555SSean Brunothread. 609cc0c1555SSean Bruno.It Li UOPS_EXECUTED_PORT.PORT_6 610cc0c1555SSean Bruno.Pq Event A1H , Umask 40H 611cc0c1555SSean BrunoCycles which a Uop is dispatched on port 6 in this 612cc0c1555SSean Brunothread. 613cc0c1555SSean Bruno.It Li UOPS_EXECUTED_PORT.PORT_7 614cc0c1555SSean Bruno.Pq Event A1H , Umask 80H 615cc0c1555SSean BrunoCycles which a Uop is dispatched on port 7 in this 616cc0c1555SSean Brunothread. 617cc0c1555SSean Bruno.It Li RESOURCE_STALLS.ANY 618cc0c1555SSean Bruno.Pq Event A2H , Umask 01H 619cc0c1555SSean BrunoCycles Allocation is stalled due to Resource Related 620cc0c1555SSean Brunoreason. 621cc0c1555SSean Bruno.It Li RESOURCE_STALLS.RS 622cc0c1555SSean Bruno.Pq Event A2H , Umask 04H 623cc0c1555SSean BrunoCycles stalled due to no eligible RS entry available. 624cc0c1555SSean Bruno.It Li RESOURCE_STALLS.SB 625cc0c1555SSean Bruno.Pq Event A2H , Umask 08H 626cc0c1555SSean BrunoCycles stalled due to no store buffers available (not 627cc0c1555SSean Brunoincluding draining form sync). 628cc0c1555SSean Bruno.It Li RESOURCE_STALLS.ROB 629cc0c1555SSean Bruno.Pq Event A2H , Umask 10H 630cc0c1555SSean BrunoCycles stalled due to re-order buffer full. 631cc0c1555SSean Bruno.It Li CYCLE_ACTIVITY.CYCLES_L2_PENDING 632cc0c1555SSean Bruno.Pq Event A3H , Umask 01H 6330b129325SGordon BerglingCycles with pending L2 miss loads. 6340b129325SGordon BerglingSet Cmask=2 to count cycle. 635cc0c1555SSean Bruno.It Li CYCLE_ACTIVITY.CYCLES_LDM_PENDING 636cc0c1555SSean Bruno.Pq Event A3H , Umask 02H 6370b129325SGordon BerglingCycles with pending memory loads. 6380b129325SGordon BerglingSet Cmask=2 to count cycle. 639cc0c1555SSean Bruno.It Li CYCLE_ACTIVITY.STALLS_L2_PENDING 640cc0c1555SSean Bruno.Pq Event A3H , Umask 05H 641cc0c1555SSean BrunoNumber of loads missed L2. 642cc0c1555SSean Bruno.It Li CYCLE_ACTIVITY.CYCLES_L1D_PENDING 643cc0c1555SSean Bruno.Pq Event A3H , Umask 08H 6440b129325SGordon BerglingCycles with pending L1 cache miss loads. 6450b129325SGordon BerglingSet Cmask=8 to count cycle. 646cc0c1555SSean Bruno.It Li ITLB.ITLB_FLUSH 647cc0c1555SSean Bruno.Pq Event AEH , Umask 01H 648cc0c1555SSean BrunoCounts the number of ITLB flushes, includes 649cc0c1555SSean Bruno4k/2M/4M pages. 650cc0c1555SSean Bruno.It Li OFFCORE_REQUESTS.DEMAND_DATA_RD 651cc0c1555SSean Bruno.Pq Event B0H , Umask 01H 652cc0c1555SSean BrunoDemand data read requests sent to uncore. 653cc0c1555SSean Bruno.It Li OFFCORE_REQUESTS.DEMAND_CODE_RD 654cc0c1555SSean Bruno.Pq Event B0H , Umask 02H 655cc0c1555SSean BrunoDemand code read requests sent to uncore. 656cc0c1555SSean Bruno.It Li OFFCORE_REQUESTS.DEMAND_RFO 657cc0c1555SSean Bruno.Pq Event B0H , Umask 04H 658cc0c1555SSean BrunoDemand RFO read requests sent to uncore, including 659cc0c1555SSean Brunoregular RFOs, locks, ItoM. 660cc0c1555SSean Bruno.It Li OFFCORE_REQUESTS.ALL_DATA_RD 661cc0c1555SSean Bruno.Pq Event B0H , Umask 08H 662cc0c1555SSean BrunoData read requests sent to uncore (demand and 663cc0c1555SSean Brunoprefetch). 664cc0c1555SSean Bruno.It Li UOPS_EXECUTED.CORE 665cc0c1555SSean Bruno.Pq Event B1H , Umask 02H 666cc0c1555SSean BrunoCounts total number of uops to be executed per-core 667cc0c1555SSean Brunoeach cycle. 668cc0c1555SSean Bruno.It Li OFF_CORE_RESPONSE_0 669cc0c1555SSean Bruno.Pq Event B7H , Umask 01H 670cc0c1555SSean BrunoRequires MSR 01A6H 671cc0c1555SSean Bruno.It Li OFF_CORE_RESPONSE_1 672cc0c1555SSean Bruno.Pq Event BBH , Umask 01H 673cc0c1555SSean BrunoRequires MSR 01A7H 674cc0c1555SSean Bruno.It Li PAGE_WALKER_LOADS.DTLB_L1 675cc0c1555SSean Bruno.Pq Event BCH , Umask 11H 676cc0c1555SSean BrunoNumber of DTLB page walker loads that hit in the 677cc0c1555SSean BrunoL1+FB. 678cc0c1555SSean Bruno.It Li PAGE_WALKER_LOADS.ITLB_L1 679cc0c1555SSean Bruno.Pq Event BCH , Umask 21H 680cc0c1555SSean BrunoNumber of ITLB page walker loads that hit in the 681cc0c1555SSean BrunoL1+FB. 682cc0c1555SSean Bruno.It Li PAGE_WALKER_LOADS.DTLB_L2 683cc0c1555SSean Bruno.Pq Event BCH , Umask 12H 684cc0c1555SSean BrunoNumber of DTLB page walker loads that hit in the L2. 685cc0c1555SSean Bruno.It Li PAGE_WALKER_LOADS.ITLB_L2 686cc0c1555SSean Bruno.Pq Event BCH , Umask 22H 687cc0c1555SSean BrunoNumber of ITLB page walker loads that hit in the L2. 688cc0c1555SSean Bruno.It Li PAGE_WALKER_LOADS.DTLB_L3 689cc0c1555SSean Bruno.Pq Event BCH , Umask 14H 690cc0c1555SSean BrunoNumber of DTLB page walker loads that hit in the L3. 691cc0c1555SSean Bruno.It Li PAGE_WALKER_LOADS.ITLB_L3 692cc0c1555SSean Bruno.Pq Event BCH , Umask 24H 693cc0c1555SSean BrunoNumber of ITLB page walker loads that hit in the L3. 694cc0c1555SSean Bruno.It Li PAGE_WALKER_LOADS.DTLB_MEMORY 695cc0c1555SSean Bruno.Pq Event BCH , Umask 18H 696cc0c1555SSean BrunoNumber of DTLB page walker loads from memory. 697cc0c1555SSean Bruno.It Li PAGE_WALKER_LOADS.ITLB_MEMORY 698cc0c1555SSean Bruno.Pq Event BCH , Umask 28H 699cc0c1555SSean BrunoNumber of ITLB page walker loads from memory. 700cc0c1555SSean Bruno.It Li TLB_FLUSH.DTLB_THREAD 701cc0c1555SSean Bruno.Pq Event BDH , Umask 01H 702cc0c1555SSean BrunoDTLB flush attempts of the thread-specific entries. 703cc0c1555SSean Bruno.It Li TLB_FLUSH.STLB_ANY 704cc0c1555SSean Bruno.Pq Event BDH , Umask 20H 705cc0c1555SSean BrunoCount number of STLB flush attempts. 706cc0c1555SSean Bruno.It Li INST_RETIRED.ANY_P 707cc0c1555SSean Bruno.Pq Event C0H , Umask 00H 708cc0c1555SSean BrunoNumber of instructions at retirement. 709cc0c1555SSean Bruno.It Li INST_RETIRED.ALL 710cc0c1555SSean Bruno.Pq Event C0H , Umask 01H 711cc0c1555SSean BrunoPrecise instruction retired event with HW to reduce 712cc0c1555SSean Brunoeffect of PEBS shadow in IP distribution. 713cc0c1555SSean Bruno.It Li OTHER_ASSISTS.AVX_TO_SSE 714cc0c1555SSean Bruno.Pq Event C1H , Umask 08H 715cc0c1555SSean BrunoNumber of transitions from AVX-256 to legacy SSE 716cc0c1555SSean Brunowhen penalty applicable. 717cc0c1555SSean Bruno.It Li OTHER_ASSISTS.SSE_TO_AVX 718cc0c1555SSean Bruno.Pq Event C1H , Umask 10H 719cc0c1555SSean BrunoNumber of transitions from SSE to AVX-256 when 720cc0c1555SSean Brunopenalty applicable. 721cc0c1555SSean Bruno.It Li OTHER_ASSISTS.ANY_WB_ASSIST 722cc0c1555SSean Bruno.Pq Event C1H , Umask 40H 723cc0c1555SSean BrunoNumber of microcode assists invoked by HW upon 724cc0c1555SSean Brunouop writeback. 725cc0c1555SSean Bruno.It Li UOPS_RETIRED.ALL 726cc0c1555SSean Bruno.Pq Event C2H , Umask 01H 727cc0c1555SSean BrunoCounts the number of micro-ops retired, Use 728cc0c1555SSean Brunocmask=1 and invert to count active cycles or stalled 729cc0c1555SSean Brunocycles. 730cc0c1555SSean Bruno.It Li UOPS_RETIRED.RETIRE_SLOTS 731cc0c1555SSean Bruno.Pq Event C2H , Umask 02H 732cc0c1555SSean BrunoCounts the number of retirement slots used each 733cc0c1555SSean Brunocycle. 734cc0c1555SSean Bruno.It Li MACHINE_CLEARS.MEMORY_ORDERING 735cc0c1555SSean Bruno.Pq Event C3H , Umask 02H 736cc0c1555SSean BrunoCounts the number of machine clears due to memory 737cc0c1555SSean Brunoorder conflicts. 738cc0c1555SSean Bruno.It Li MACHINE_CLEARS.SMC 739cc0c1555SSean Bruno.Pq Event C3H , Umask 04H 740cc0c1555SSean BrunoNumber of self-modifying-code machine clears 741cc0c1555SSean Brunodetected. 742cc0c1555SSean Bruno.It Li MACHINE_CLEARS.MASKMOV 743cc0c1555SSean Bruno.Pq Event C3H , Umask 20H 744cc0c1555SSean BrunoCounts the number of executed AVX masked load 745cc0c1555SSean Brunooperations that refer to an illegal address range with 746cc0c1555SSean Brunothe mask bits set to 0. 747cc0c1555SSean Bruno.It Li BR_INST_RETIRED.ALL_BRANCHES 748cc0c1555SSean Bruno.Pq Event C4H , Umask 00H 749cc0c1555SSean BrunoBranch instructions at retirement. 750cc0c1555SSean Bruno.It Li BR_INST_RETIRED.CONDITIONAL 751cc0c1555SSean Bruno.Pq Event C4H , Umask 01H 752cc0c1555SSean BrunoCounts the number of conditional branch instructions Supports PEBS 753cc0c1555SSean Brunoretired. 754cc0c1555SSean Bruno.It Li BR_INST_RETIRED.NEAR_CALL 755cc0c1555SSean Bruno.Pq Event C4H , Umask 02H 756cc0c1555SSean BrunoDirect and indirect near call instructions retired. 757cc0c1555SSean Bruno.It Li BR_INST_RETIRED.ALL_BRANCHES 758cc0c1555SSean Bruno.Pq Event C4H , Umask 04H 759cc0c1555SSean BrunoCounts the number of branch instructions retired. 760cc0c1555SSean Bruno.It Li BR_INST_RETIRED.NEAR_RETURN 761cc0c1555SSean Bruno.Pq Event C4H , Umask 08H 762cc0c1555SSean BrunoCounts the number of near return instructions 763cc0c1555SSean Brunoretired. 764cc0c1555SSean Bruno.It Li BR_INST_RETIRED.NOT_TAKEN 765cc0c1555SSean Bruno.Pq Event C4H , Umask 10H 766cc0c1555SSean BrunoCounts the number of not taken branch instructions 767cc0c1555SSean Brunoretired. 768cc0c1555SSean Bruno It Li BR_INST_RETIRED.NEAR_TAKEN 769cc0c1555SSean Bruno.Pq Event C4H , Umask 20H 770cc0c1555SSean BrunoNumber of near taken branches retired. 771cc0c1555SSean Bruno.It Li BR_INST_RETIRED.FAR_BRANCH 772cc0c1555SSean Bruno.Pq Event C4H , Umask 40H 773cc0c1555SSean BrunoNumber of far branches retired. 774cc0c1555SSean Bruno.It Li BR_MISP_RETIRED.ALL_BRANCHES 775cc0c1555SSean Bruno.Pq Event C5H , Umask 00H 776cc0c1555SSean BrunoMispredicted branch instructions at retirement 777cc0c1555SSean Bruno.It Li BR_MISP_RETIRED.CONDITIONAL 778cc0c1555SSean Bruno.Pq Event C5H , Umask 01H 779cc0c1555SSean BrunoMispredicted conditional branch instructions retired. 780cc0c1555SSean Bruno.It Li BR_MISP_RETIRED.CONDITIONAL 781cc0c1555SSean Bruno.Pq Event C5H , Umask 04H 782cc0c1555SSean BrunoMispredicted macro branch instructions retired. 783cc0c1555SSean Bruno.It Li FP_ASSIST.X87_OUTPUT 784cc0c1555SSean Bruno.Pq Event CAH , Umask 02H 785cc0c1555SSean BrunoNumber of X87 FP assists due to Output values. 786cc0c1555SSean Bruno.It Li FP_ASSIST.X87_INPUT 787cc0c1555SSean Bruno.Pq Event CAH , Umask 04H 788cc0c1555SSean BrunoNumber of X87 FP assists due to input values. 789cc0c1555SSean Bruno.It Li FP_ASSIST.SIMD_OUTPUT 790cc0c1555SSean Bruno.Pq Event CAH , Umask 08H 791cc0c1555SSean BrunoNumber of SIMD FP assists due to Output values. 792cc0c1555SSean Bruno.It Li FP_ASSIST.SIMD_INPUT 793cc0c1555SSean Bruno.Pq Event CAH , Umask 10H 794cc0c1555SSean BrunoNumber of SIMD FP assists due to input values. 795cc0c1555SSean Bruno.It Li FP_ASSIST.ANY 796cc0c1555SSean Bruno.Pq Event CAH , Umask 1EH 797cc0c1555SSean BrunoCycles with any input/output SSE* or FP assists. 798cc0c1555SSean Bruno.It Li ROB_MISC_EVENTS.LBR_INSERTS 799cc0c1555SSean Bruno.Pq Event CCH , Umask 20H 800cc0c1555SSean BrunoCount cases of saving new LBR records by hardware. 801cc0c1555SSean Bruno.It Li MEM_TRANS_RETIRED.LOAD_LATENCY 802cc0c1555SSean Bruno.Pq Event CDH , Umask 01H 8030b129325SGordon BerglingRandomly sampled loads whose latency is above a user defined threshold. 8040b129325SGordon BerglingA small fraction of the overall loads are sampled due to randomization. 805bc0ad9a9SRyan Stone.It Li MEM_UOPS_RETIRED.STLB_MISS_LOADS 806bc0ad9a9SRyan Stone.Pq Event D0H , Umask 11H 807bc0ad9a9SRyan StoneCount retired load uops that missed the STLB. 808bc0ad9a9SRyan Stone.It Li MEM_UOPS_RETIRED.STLB_MISS_STORES 809bc0ad9a9SRyan Stone.Pq Event D0H , Umask 12H 810bc0ad9a9SRyan StoneCount retired store uops that missed the STLB. 811bc0ad9a9SRyan Stone.It Li MEM_UOPS_RETIRED.SPLIT_LOADS 812bc0ad9a9SRyan Stone.Pq Event D0H , Umask 41H 813bc0ad9a9SRyan StoneCount retired load uops that were split across a cache line. 814bc0ad9a9SRyan Stone.It Li MEM_UOPS_RETIRED.SPLIT_STORES 815bc0ad9a9SRyan Stone.Pq Event D0H , Umask 42H 816bc0ad9a9SRyan StoneCount retired store uops that were split across a cache line. 817bc0ad9a9SRyan Stone.It Li MEM_UOPS_RETIRED.ALL_LOADS 818bc0ad9a9SRyan Stone.Pq Event D0H , Umask 81H 819bc0ad9a9SRyan StoneCount all retired load uops. 820bc0ad9a9SRyan Stone.It Li MEM_UOPS_RETIRED.ALL_STORES 821bc0ad9a9SRyan Stone.Pq Event D0H , Umask 82H 822bc0ad9a9SRyan StoneCount all retired store uops. 823cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_RETIRED.L1_HIT 824cc0c1555SSean Bruno.Pq Event D1H , Umask 01H 825cc0c1555SSean BrunoRetired load uops with L1 cache hits as data sources. 826cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_RETIRED.L2_HIT 827cc0c1555SSean Bruno.Pq Event D1H , Umask 02H 828cc0c1555SSean BrunoRetired load uops with L2 cache hits as data sources. 829cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_RETIRED.LLC_HIT 830cc0c1555SSean Bruno.Pq Event D1H , Umask 04H 831cc0c1555SSean BrunoRetired load uops with LLC cache hits as data 832cc0c1555SSean Brunosources. 833cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_RETIRED.L2_MISS 834cc0c1555SSean Bruno.Pq Event D1H , Umask 10H 8350b129325SGordon BerglingRetired load uops missed L2. 8360b129325SGordon BerglingUnknown data source excluded. 837cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_RETIRED.HIT_LFB 838cc0c1555SSean Bruno.Pq Event D1H , Umask 40H 839cc0c1555SSean BrunoRetired load uops which data sources were load uops 840cc0c1555SSean Brunomissed L1 but hit FB due to preceding miss to the 841cc0c1555SSean Brunosame cache line with data not ready. 842cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_MISS 843cc0c1555SSean Bruno.Pq Event D2H , Umask 01H 844cc0c1555SSean BrunoRetired load uops which data sources were LLC hit 845cc0c1555SSean Brunoand cross-core snoop missed in on-pkg core cache. 846cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HIT 847cc0c1555SSean Bruno.Pq Event D2H , Umask 02H 848cc0c1555SSean BrunoRetired load uops which data sources were LLC and 849cc0c1555SSean Brunocross-core snoop hits in on-pkg core cache. 850cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_HITM 851cc0c1555SSean Bruno.Pq Event D2H , Umask 04H 852cc0c1555SSean BrunoRetired load uops which data sources were HitM 853cc0c1555SSean Brunoresponses from shared LLC. 854cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_LLC_HIT_RETIRED.XSNP_NONE 855cc0c1555SSean Bruno.Pq Event D2H , Umask 08H 856cc0c1555SSean BrunoRetired load uops which data sources were hits in 857cc0c1555SSean BrunoLLC without snoops required. 858cc0c1555SSean Bruno.It Li MEM_LOAD_UOPS_LLC_MISS_RETIRED.LOCAL_DRAM 859cc0c1555SSean Bruno.Pq Event D3H , Umask 01H 860cc0c1555SSean BrunoRetired load uops which data sources missed LLC but 861cc0c1555SSean Brunoserviced from local dram. 862cc0c1555SSean Bruno.It Li BACLEARS.ANY 863cc0c1555SSean Bruno.Pq Event E6H , Umask 1FH 864cc0c1555SSean BrunoNumber of front end re-steers due to BPU 865cc0c1555SSean Brunomisprediction. 866cc0c1555SSean Bruno.It Li L2_TRANS.DEMAND_DATA_RD 867cc0c1555SSean Bruno.Pq Event F0H , Umask 01H 868cc0c1555SSean BrunoDemand Data Read requests that access L2 cache. 869cc0c1555SSean Bruno.It Li L2_TRANS.RFO 870cc0c1555SSean Bruno.Pq Event F0H , Umask 02H 871cc0c1555SSean BrunoRFO requests that access L2 cache. 872cc0c1555SSean Bruno.It Li L2_TRANS.CODE_RD 873cc0c1555SSean Bruno.Pq Event F0H , Umask 04H 874cc0c1555SSean BrunoL2 cache accesses when fetching instructions. 875cc0c1555SSean Bruno.It Li L2_TRANS.ALL_PF 876cc0c1555SSean Bruno.Pq Event F0H , Umask 08H 877cc0c1555SSean BrunoAny MLC or LLC HW prefetch accessing L2, including 878cc0c1555SSean Brunorejects. 879cc0c1555SSean Bruno.It Li L2_TRANS.L1D_WB 880cc0c1555SSean Bruno.Pq Event F0H , Umask 10H 881cc0c1555SSean BrunoL1D writebacks that access L2 cache. 882cc0c1555SSean Bruno.It Li L2_TRANS.L2_FILL 883cc0c1555SSean Bruno.Pq Event F0H , Umask 20H 884cc0c1555SSean BrunoL2 fill requests that access L2 cache. 885cc0c1555SSean Bruno.It Li L2_TRANS.L2_WB 886cc0c1555SSean Bruno.Pq Event F0H , Umask 40H 887cc0c1555SSean BrunoL2 writebacks that access L2 cache. 888cc0c1555SSean Bruno.It Li L2_TRANS.ALL_REQUESTS 889cc0c1555SSean Bruno.Pq Event F0H , Umask 80H 890cc0c1555SSean BrunoTransactions accessing L2 pipe. 891cc0c1555SSean Bruno.It Li L2_LINES_IN.I 892cc0c1555SSean Bruno.Pq Event F1H , Umask 01H 893cc0c1555SSean BrunoL2 cache lines in I state filling L2. 894cc0c1555SSean Bruno.It Li L2_LINES_IN.S 895cc0c1555SSean Bruno.Pq Event F1H , Umask 02H 896cc0c1555SSean BrunoL2 cache lines in S state filling L2. 897cc0c1555SSean Bruno.It Li L2_LINES_IN.E 898cc0c1555SSean Bruno.Pq Event F1H , Umask 04H 899cc0c1555SSean BrunoL2 cache lines in E state filling L2. 900cc0c1555SSean Bruno.It Li L2_LINES_IN.ALL 901cc0c1555SSean Bruno.Pq Event F1H , Umask 07H 902cc0c1555SSean BrunoL2 cache lines filling L2. 903cc0c1555SSean Bruno.It Li L2_LINES_OUT.DEMAND_CLEAN 904cc0c1555SSean Bruno.Pq Event F2H , Umask 05H 905cc0c1555SSean BrunoClean L2 cache lines evicted by demand. 906cc0c1555SSean Bruno.It Li L2_LINES_OUT.DEMAND_DIRTY 907cc0c1555SSean Bruno.Pq Event F2H , Umask 06H 908cc0c1555SSean BrunoDirty L2 cache lines evicted by demand. 909cc0c1555SSean Bruno.El 910cc0c1555SSean Bruno.Sh SEE ALSO 911cc0c1555SSean Bruno.Xr pmc 3 , 912*b2934971SMitchell Horne.Xr pmc.amd 3 , 913cc0c1555SSean Bruno.Xr pmc.atom 3 , 914cc0c1555SSean Bruno.Xr pmc.core 3 , 91573461c24SJoel Dahl.Xr pmc.corei7 3 , 91673461c24SJoel Dahl.Xr pmc.corei7uc 3 , 91773461c24SJoel Dahl.Xr pmc.haswelluc 3 , 918cc0c1555SSean Bruno.Xr pmc.iaf 3 , 91973461c24SJoel Dahl.Xr pmc.ivybridge 3 , 92073461c24SJoel Dahl.Xr pmc.ivybridgexeon 3 , 921cc0c1555SSean Bruno.Xr pmc.sandybridge 3 , 922cc0c1555SSean Bruno.Xr pmc.sandybridgeuc 3 , 923cc0c1555SSean Bruno.Xr pmc.sandybridgexeon 3 , 924cc0c1555SSean Bruno.Xr pmc.soft 3 , 925cc0c1555SSean Bruno.Xr pmc.tsc 3 , 92673461c24SJoel Dahl.Xr pmc.ucf 3 , 92773461c24SJoel Dahl.Xr pmc.westmere 3 , 92873461c24SJoel Dahl.Xr pmc.westmereuc 3 , 929cc0c1555SSean Bruno.Xr pmc_cpuinfo 3 , 930cc0c1555SSean Bruno.Xr pmclog 3 , 931cc0c1555SSean Bruno.Xr hwpmc 4 932cc0c1555SSean Bruno.Sh HISTORY 933cc0c1555SSean BrunoThe 934cc0c1555SSean Bruno.Nm pmc 935cc0c1555SSean Brunolibrary first appeared in 936cc0c1555SSean Bruno.Fx 6.0 . 937cc0c1555SSean Bruno.Sh AUTHORS 9382b7af31cSBaptiste Daroussin.An -nosplit 939cc0c1555SSean BrunoThe 940cc0c1555SSean Bruno.Lb libpmc 941cc0c1555SSean Brunolibrary was written by 9422b7af31cSBaptiste Daroussin.An Joseph Koshy Aq Mt jkoshy@FreeBSD.org . 943cc0c1555SSean BrunoThe support for the Haswell 944cc0c1555SSean Brunomicroarchitecture was written by 9452b7af31cSBaptiste Daroussin.An Hiren Panchasara Aq Mt hiren.panchasara@gmail.com . 946