[
    {
        "BriefDescription": "PCU Clockticks",
        "Counter": "0,1,2,3",
        "EventCode": "0x01",
        "EventName": "UNC_P_CLOCKTICKS",
        "PerPkg": "1",
        "PublicDescription": "PCU Clockticks:  The PCU runs off a fixed 1 GHz clock.  This event counts the number of pclk cycles measured while the counter was enabled.  The pclk, like the Memory Controller's dclk, counts at a constant rate making it a good measure of actual wall time.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Thermal Strongest Upper Limit Cycles",
        "Counter": "0,1,2,3",
        "EventCode": "0x04",
        "EventName": "UNC_P_FREQ_MAX_LIMIT_THERMAL_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Thermal Strongest Upper Limit Cycles : Number of cycles any frequency is reduced due to a thermal limit.  Count only if throttling is occurring.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Power Strongest Upper Limit Cycles",
        "Counter": "0,1,2,3",
        "EventCode": "0x05",
        "EventName": "UNC_P_FREQ_MAX_POWER_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Power Strongest Upper Limit Cycles : Counts the number of cycles when power is the upper limit on frequency.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Cycles spent changing Frequency",
        "Counter": "0,1,2,3",
        "EventCode": "0x74",
        "EventName": "UNC_P_FREQ_TRANS_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Cycles spent changing Frequency : Counts the number of cycles when the system is changing frequency.  This can not be filtered by thread ID.  One can also use it with the occupancy counter that monitors number of threads in C0 to estimate the performance impact that frequency transitions had on the system.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Package C State Residency - C2E",
        "Counter": "0,1,2,3",
        "EventCode": "0x2b",
        "EventName": "UNC_P_PKG_RESIDENCY_C2E_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Package C State Residency - C2E : Counts the number of cycles when the package was in C2E.  This event can be used in conjunction with edge detect to count C2E entrances (or exits using invert).  Residency events do not include transition times.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Package C State Residency - C6",
        "Counter": "0,1,2,3",
        "EventCode": "0x2d",
        "EventName": "UNC_P_PKG_RESIDENCY_C6_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Package C State Residency - C6 : Counts the number of cycles when the package was in C6.  This event can be used in conjunction with edge detect to count C6 entrances (or exits using invert).  Residency events do not include transition times.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Number of cores in C0",
        "Counter": "0,1,2,3",
        "EventCode": "0x35",
        "EventName": "UNC_P_POWER_STATE_OCCUPANCY_CORES_C0",
        "PerPkg": "1",
        "PublicDescription": "Number of cores in C0 : This is an occupancy event that tracks the number of cores that are in the chosen C-State.  It can be used by itself to get the average number of cores in that C-state with thresholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Number of cores in C3",
        "Counter": "0,1,2,3",
        "EventCode": "0x36",
        "EventName": "UNC_P_POWER_STATE_OCCUPANCY_CORES_C3",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Number of cores in C3 : This is an occupancy event that tracks the number of cores that are in the chosen C-State.  It can be used by itself to get the average number of cores in that C-state with thresholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Number of cores in C6",
        "Counter": "0,1,2,3",
        "EventCode": "0x37",
        "EventName": "UNC_P_POWER_STATE_OCCUPANCY_CORES_C6",
        "PerPkg": "1",
        "PublicDescription": "Number of cores in C6 : This is an occupancy event that tracks the number of cores that are in the chosen C-State.  It can be used by itself to get the average number of cores in that C-state with thresholding to generate histograms, or with other PCU events and occupancy triggering to capture other details.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "External Prochot",
        "Counter": "0,1,2,3",
        "EventCode": "0x0a",
        "EventName": "UNC_P_PROCHOT_EXTERNAL_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "External Prochot : Counts the number of cycles that we are in external PROCHOT mode.  This mode is triggered when a sensor off the die determines that something off-die (like DRAM) is too hot and must throttle to avoid damaging the chip.",
        "Unit": "PCU"
    },
    {
        "BriefDescription": "Internal Prochot",
        "Counter": "0,1,2,3",
        "EventCode": "0x09",
        "EventName": "UNC_P_PROCHOT_INTERNAL_CYCLES",
        "Experimental": "1",
        "PerPkg": "1",
        "PublicDescription": "Internal Prochot : Counts the number of cycles that we are in Internal PROCHOT mode.  This mode is triggered when a sensor on the die determines that we are too hot and must throttle to avoid damaging the chip.",
        "Unit": "PCU"
    }
]
