Update from:

 BIOS and Kernel Developer's Guide (BKDG) For AMD
 Family 10h Processors, 31116 Rev 3.48 - April 22, 2010

Added:

* EventSelect 068h and EventSelect 069h (all models)
* EventSelect 4EDh (RevD)

Signed-off-by: Robert Richter <robert.rich...@amd.com>
---
 lib/events/amd64_events_fam10h.h |  351 +++++++++++++++++++++++++++-----------
 1 files changed, 254 insertions(+), 97 deletions(-)

diff --git a/lib/events/amd64_events_fam10h.h b/lib/events/amd64_events_fam10h.h
index 48a513b..a45dd87 100644
--- a/lib/events/amd64_events_fam10h.h
+++ b/lib/events/amd64_events_fam10h.h
@@ -25,6 +25,11 @@
 
 /* History
  *
+ * May 28 2010 -- Robert Richter, robert.rich...@amd.com:
+ *
+ * Update from: BIOS and Kernel Developer's Guide (BKDG) For AMD
+ * Family 10h Processors, 31116 Rev 3.48 - April 22, 2010
+ *
  * Feb 06 2009 -- Robert Richter, robert.rich...@amd.com:
  *
  * Update for Family 10h RevD (Istanbul) from: BIOS and Kernel
@@ -694,7 +699,103 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 34 */{.name = "SYSTEM_READ_RESPONSES",
+/* 34 */{.name = "MAB_REQUESTS",
+       .code  = 0x68,
+       .modmsk = AMD64_FAM10H_ATTRS,
+       .desc  = "Average L1 refill latency for Icache and Dcache misses 
(request count for cache refills)",
+       .numasks = 10,
+       .umasks  = {
+               { .uname = "BUFFER_0",
+                 .udesc = "Buffer 0",
+                 .ucode = 0x00,
+               },
+               { .uname = "BUFFER_1",
+                 .udesc = "Buffer 1",
+                 .ucode = 0x01,
+               },
+               { .uname = "BUFFER_2",
+                 .udesc = "Buffer 2",
+                 .ucode = 0x02,
+               },
+               { .uname = "BUFFER_3",
+                 .udesc = "Buffer 3",
+                 .ucode = 0x03,
+               },
+               { .uname = "BUFFER_4",
+                 .udesc = "Buffer 4",
+                 .ucode = 0x04,
+               },
+               { .uname = "BUFFER_5",
+                 .udesc = "Buffer 5",
+                 .ucode = 0x05,
+               },
+               { .uname = "BUFFER_6",
+                 .udesc = "Buffer 6",
+                 .ucode = 0x06,
+               },
+               { .uname = "BUFFER_7",
+                 .udesc = "Buffer 7",
+                 .ucode = 0x07,
+               },
+               { .uname = "BUFFER_8",
+                 .udesc = "Buffer 8",
+                 .ucode = 0x08,
+               },
+               { .uname = "BUFFER_9",
+                 .udesc = "Buffer 9",
+                 .ucode = 0x09,
+               },
+        },
+       },
+/* 35 */{.name = "MAB_WAIT_CYCLES",
+       .code  = 0x69,
+       .modmsk = AMD64_FAM10H_ATTRS,
+       .desc  = "Average L1 refill latency for Icache and Dcache misses 
(cycles that requests spent waiting for the refills)",
+       .numasks = 10,
+       .umasks  = {
+               { .uname = "BUFFER_0",
+                 .udesc = "Buffer 0",
+                 .ucode = 0x00,
+               },
+               { .uname = "BUFFER_1",
+                 .udesc = "Buffer 1",
+                 .ucode = 0x01,
+               },
+               { .uname = "BUFFER_2",
+                 .udesc = "Buffer 2",
+                 .ucode = 0x02,
+               },
+               { .uname = "BUFFER_3",
+                 .udesc = "Buffer 3",
+                 .ucode = 0x03,
+               },
+               { .uname = "BUFFER_4",
+                 .udesc = "Buffer 4",
+                 .ucode = 0x04,
+               },
+               { .uname = "BUFFER_5",
+                 .udesc = "Buffer 5",
+                 .ucode = 0x05,
+               },
+               { .uname = "BUFFER_6",
+                 .udesc = "Buffer 6",
+                 .ucode = 0x06,
+               },
+               { .uname = "BUFFER_7",
+                 .udesc = "Buffer 7",
+                 .ucode = 0x07,
+               },
+               { .uname = "BUFFER_8",
+                 .udesc = "Buffer 8",
+                 .ucode = 0x08,
+               },
+               { .uname = "BUFFER_9",
+                 .udesc = "Buffer 9",
+                 .ucode = 0x09,
+               },
+        },
+       },
+/* 36 */{.name = "SYSTEM_READ_RESPONSES",
        .code  = 0x6C,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Northbridge Read Responses by Coherency State",
@@ -727,7 +828,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 35 */{.name = "QUADWORDS_WRITTEN_TO_SYSTEM",
+/* 37 */{.name = "QUADWORDS_WRITTEN_TO_SYSTEM",
        .code  = 0x6D,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Octwords Written to System",
@@ -744,12 +845,12 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 36 */{.name = "CPU_CLK_UNHALTED",
+/* 38 */{.name = "CPU_CLK_UNHALTED",
        .code  = 0x76,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU Clocks not Halted",
        },
-/* 37 */{.name = "REQUESTS_TO_L2",
+/* 39 */{.name = "REQUESTS_TO_L2",
        .code  = 0x7D,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Requests to L2 Cache",
@@ -786,7 +887,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 38 */{.name = "L2_CACHE_MISS",
+/* 40 */{.name = "L2_CACHE_MISS",
        .code  = 0x7E,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L2 Cache Misses",
@@ -815,7 +916,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 39 */{.name = "L2_FILL_WRITEBACK",
+/* 41 */{.name = "L2_FILL_WRITEBACK",
        .code  = 0x7F,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L2 Fill/Writeback",
@@ -836,32 +937,32 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 40 */{.name = "INSTRUCTION_CACHE_FETCHES",
+/* 42 */{.name = "INSTRUCTION_CACHE_FETCHES",
        .code  = 0x80,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Instruction Cache Fetches",
        },
-/* 41 */{.name = "INSTRUCTION_CACHE_MISSES",
+/* 43 */{.name = "INSTRUCTION_CACHE_MISSES",
        .code  = 0x81,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Instruction Cache Misses",
        },
-/* 42 */{.name = "INSTRUCTION_CACHE_REFILLS_FROM_L2",
+/* 44 */{.name = "INSTRUCTION_CACHE_REFILLS_FROM_L2",
        .code  = 0x82,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Instruction Cache Refills from L2",
        },
-/* 43 */{.name = "INSTRUCTION_CACHE_REFILLS_FROM_SYSTEM",
+/* 45 */{.name = "INSTRUCTION_CACHE_REFILLS_FROM_SYSTEM",
        .code  = 0x83,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Instruction Cache Refills from System",
        },
-/* 44 */{.name = "L1_ITLB_MISS_AND_L2_ITLB_HIT",
+/* 46 */{.name = "L1_ITLB_MISS_AND_L2_ITLB_HIT",
        .code  = 0x84,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L1 ITLB Miss and L2 ITLB Hit",
        },
-/* 45 */{.name = "L1_ITLB_MISS_AND_L2_ITLB_MISS",
+/* 47 */{.name = "L1_ITLB_MISS_AND_L2_ITLB_MISS",
        .code  = 0x85,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L1 ITLB Miss and L2 ITLB Miss",
@@ -882,32 +983,32 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 46 */{.name = "PIPELINE_RESTART_DUE_TO_INSTRUCTION_STREAM_PROBE",
+/* 48 */{.name = "PIPELINE_RESTART_DUE_TO_INSTRUCTION_STREAM_PROBE",
        .code  = 0x86,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Pipeline Restart Due to Instruction Stream Probe",
        },
-/* 47 */{.name = "INSTRUCTION_FETCH_STALL",
+/* 49 */{.name = "INSTRUCTION_FETCH_STALL",
        .code  = 0x87,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Instruction Fetch Stall",
        },
-/* 48 */{.name = "RETURN_STACK_HITS",
+/* 50 */{.name = "RETURN_STACK_HITS",
        .code  = 0x88,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Return Stack Hits",
        },
-/* 49 */{.name = "RETURN_STACK_OVERFLOWS",
+/* 51 */{.name = "RETURN_STACK_OVERFLOWS",
        .code  = 0x89,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Return Stack Overflows",
        },
-/* 50 */{.name = "INSTRUCTION_CACHE_VICTIMS",
+/* 52 */{.name = "INSTRUCTION_CACHE_VICTIMS",
        .code  = 0x8B,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Instruction Cache Victims",
        },
-/* 51 */{.name = "INSTRUCTION_CACHE_LINES_INVALIDATED",
+/* 53 */{.name = "INSTRUCTION_CACHE_LINES_INVALIDATED",
        .code  = 0x8C,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Instruction Cache Lines Invalidated",
@@ -928,72 +1029,72 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 52 */{.name = "ITLB_RELOADS",
+/* 54 */{.name = "ITLB_RELOADS",
        .code  = 0x99,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "ITLB Reloads",
        },
-/* 53 */{.name = "ITLB_RELOADS_ABORTED",
+/* 55 */{.name = "ITLB_RELOADS_ABORTED",
        .code  = 0x9A,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "ITLB Reloads Aborted",
        },
-/* 54 */{.name = "RETIRED_INSTRUCTIONS",
+/* 56 */{.name = "RETIRED_INSTRUCTIONS",
        .code  = 0xC0,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Instructions",
        },
-/* 55 */{.name = "RETIRED_UOPS",
+/* 57 */{.name = "RETIRED_UOPS",
        .code  = 0xC1,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired uops",
        },
-/* 56 */{.name = "RETIRED_BRANCH_INSTRUCTIONS",
+/* 58 */{.name = "RETIRED_BRANCH_INSTRUCTIONS",
        .code  = 0xC2,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Branch Instructions",
        },
-/* 57 */{.name = "RETIRED_MISPREDICTED_BRANCH_INSTRUCTIONS",
+/* 59 */{.name = "RETIRED_MISPREDICTED_BRANCH_INSTRUCTIONS",
        .code  = 0xC3,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Mispredicted Branch Instructions",
        },
-/* 58 */{.name = "RETIRED_TAKEN_BRANCH_INSTRUCTIONS",
+/* 60 */{.name = "RETIRED_TAKEN_BRANCH_INSTRUCTIONS",
        .code  = 0xC4,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Taken Branch Instructions",
        },
-/* 59 */{.name = "RETIRED_TAKEN_BRANCH_INSTRUCTIONS_MISPREDICTED",
+/* 61 */{.name = "RETIRED_TAKEN_BRANCH_INSTRUCTIONS_MISPREDICTED",
        .code  = 0xC5,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Taken Branch Instructions Mispredicted",
        },
-/* 60 */{.name = "RETIRED_FAR_CONTROL_TRANSFERS",
+/* 62 */{.name = "RETIRED_FAR_CONTROL_TRANSFERS",
        .code  = 0xC6,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Far Control Transfers",
        },
-/* 61 */{.name = "RETIRED_BRANCH_RESYNCS",
+/* 63 */{.name = "RETIRED_BRANCH_RESYNCS",
        .code  = 0xC7,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Branch Resyncs",
        },
-/* 62 */{.name = "RETIRED_NEAR_RETURNS",
+/* 64 */{.name = "RETIRED_NEAR_RETURNS",
        .code  = 0xC8,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Near Returns",
        },
-/* 63 */{.name = "RETIRED_NEAR_RETURNS_MISPREDICTED",
+/* 65 */{.name = "RETIRED_NEAR_RETURNS_MISPREDICTED",
        .code  = 0xC9,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Near Returns Mispredicted",
        },
-/* 64 */{.name = "RETIRED_INDIRECT_BRANCHES_MISPREDICTED",
+/* 66 */{.name = "RETIRED_INDIRECT_BRANCHES_MISPREDICTED",
        .code  = 0xCA,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Indirect Branches Mispredicted",
        },
-/* 65 */{.name = "RETIRED_MMX_AND_FP_INSTRUCTIONS",
+/* 67 */{.name = "RETIRED_MMX_AND_FP_INSTRUCTIONS",
        .code  = 0xCB,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired MMX/FP Instructions",
@@ -1018,7 +1119,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 66 */{.name = "RETIRED_FASTPATH_DOUBLE_OP_INSTRUCTIONS",
+/* 68 */{.name = "RETIRED_FASTPATH_DOUBLE_OP_INSTRUCTIONS",
        .code  = 0xCC,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired Fastpath Double Op Instructions",
@@ -1043,77 +1144,77 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 67 */{.name = "INTERRUPTS_MASKED_CYCLES",
+/* 69 */{.name = "INTERRUPTS_MASKED_CYCLES",
        .code  = 0xCD,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Interrupts-Masked Cycles",
        },
-/* 68 */{.name = "INTERRUPTS_MASKED_CYCLES_WITH_INTERRUPT_PENDING",
+/* 70 */{.name = "INTERRUPTS_MASKED_CYCLES_WITH_INTERRUPT_PENDING",
        .code  = 0xCE,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Interrupts-Masked Cycles with Interrupt Pending",
        },
-/* 69 */{.name = "INTERRUPTS_TAKEN",
+/* 71 */{.name = "INTERRUPTS_TAKEN",
        .code  = 0xCF,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Interrupts Taken",
        },
-/* 70 */{.name = "DECODER_EMPTY",
+/* 72 */{.name = "DECODER_EMPTY",
        .code  = 0xD0,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Decoder Empty",
        },
-/* 71 */{.name = "DISPATCH_STALLS",
+/* 73 */{.name = "DISPATCH_STALLS",
        .code  = 0xD1,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stalls",
        },
-/* 72 */{.name = "DISPATCH_STALL_FOR_BRANCH_ABORT",
+/* 74 */{.name = "DISPATCH_STALL_FOR_BRANCH_ABORT",
        .code  = 0xD2,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall for Branch Abort to Retire",
        },
-/* 73 */{.name = "DISPATCH_STALL_FOR_SERIALIZATION",
+/* 75 */{.name = "DISPATCH_STALL_FOR_SERIALIZATION",
        .code  = 0xD3,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall for Serialization",
        },
-/* 74 */{.name = "DISPATCH_STALL_FOR_SEGMENT_LOAD",
+/* 76 */{.name = "DISPATCH_STALL_FOR_SEGMENT_LOAD",
        .code  = 0xD4,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall for Segment Load",
        },
-/* 75 */{.name = "DISPATCH_STALL_FOR_REORDER_BUFFER_FULL",
+/* 77 */{.name = "DISPATCH_STALL_FOR_REORDER_BUFFER_FULL",
        .code  = 0xD5,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall for Reorder Buffer Full",
        },
-/* 76 */{.name = "DISPATCH_STALL_FOR_RESERVATION_STATION_FULL",
+/* 78 */{.name = "DISPATCH_STALL_FOR_RESERVATION_STATION_FULL",
        .code  = 0xD6,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall for Reservation Station Full",
        },
-/* 77 */{.name = "DISPATCH_STALL_FOR_FPU_FULL",
+/* 79 */{.name = "DISPATCH_STALL_FOR_FPU_FULL",
        .code  = 0xD7,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall for FPU Full",
        },
-/* 78 */{.name = "DISPATCH_STALL_FOR_LS_FULL",
+/* 80 */{.name = "DISPATCH_STALL_FOR_LS_FULL",
        .code  = 0xD8,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall for LS Full",
        },
-/* 79 */{.name = "DISPATCH_STALL_WAITING_FOR_ALL_QUIET",
+/* 81 */{.name = "DISPATCH_STALL_WAITING_FOR_ALL_QUIET",
        .code  = 0xD9,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall Waiting for All Quiet",
        },
-/* 80 */{.name = "DISPATCH_STALL_FOR_FAR_TRANSFER_OR_RSYNC",
+/* 82 */{.name = "DISPATCH_STALL_FOR_FAR_TRANSFER_OR_RSYNC",
        .code  = 0xDA,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Dispatch Stall for Far Transfer or Resync to Retire",
        },
-/* 81 */{.name = "FPU_EXCEPTIONS",
+/* 83 */{.name = "FPU_EXCEPTIONS",
        .code  = 0xDB,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "FPU Exceptions",
@@ -1142,27 +1243,27 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 82 */{.name = "DR0_BREAKPOINT_MATCHES",
+/* 84 */{.name = "DR0_BREAKPOINT_MATCHES",
        .code  = 0xDC,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "DR0 Breakpoint Matches",
        },
-/* 83 */{.name = "DR1_BREAKPOINT_MATCHES",
+/* 85 */{.name = "DR1_BREAKPOINT_MATCHES",
        .code  = 0xDD,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "DR1 Breakpoint Matches",
        },
-/* 84 */{.name = "DR2_BREAKPOINT_MATCHES",
+/* 86 */{.name = "DR2_BREAKPOINT_MATCHES",
        .code  = 0xDE,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "DR2 Breakpoint Matches",
        },
-/* 85 */{.name = "DR3_BREAKPOINT_MATCHES",
+/* 87 */{.name = "DR3_BREAKPOINT_MATCHES",
        .code  = 0xDF,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "DR3 Breakpoint Matches",
        },
-/* 86 */{.name = "DRAM_ACCESSES_PAGE",
+/* 88 */{.name = "DRAM_ACCESSES_PAGE",
        .code  = 0xE0,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "DRAM Accesses",
@@ -1199,7 +1300,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 87 */{.name = "MEMORY_CONTROLLER_PAGE_TABLE_OVERFLOWS",
+/* 89 */{.name = "MEMORY_CONTROLLER_PAGE_TABLE_OVERFLOWS",
        .code  = 0xE1,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "DRAM Controller Page Table Overflows",
@@ -1220,7 +1321,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 88 */{.name = "MEMORY_CONTROLLER_SLOT_MISSES",
+/* 90 */{.name = "MEMORY_CONTROLLER_SLOT_MISSES",
        .code  = 0xE2,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Memory Controller DRAM Command Slots Missed",
@@ -1241,7 +1342,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 89 */{.name = "MEMORY_CONTROLLER_TURNAROUNDS",
+/* 91 */{.name = "MEMORY_CONTROLLER_TURNAROUNDS",
        .code  = 0xE3,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Memory Controller Turnarounds",
@@ -1278,7 +1379,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 90 */{.name = "MEMORY_CONTROLLER_BYPASS",
+/* 92 */{.name = "MEMORY_CONTROLLER_BYPASS",
        .code  = 0xE4,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Memory Controller Bypass Counter Saturation",
@@ -1307,7 +1408,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 91 */{.name = "THERMAL_STATUS_AND_ECC_ERRORS",
+/* 93 */{.name = "THERMAL_STATUS_AND_ECC_ERRORS",
        .code  = 0xE8,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Thermal Status",
@@ -1340,7 +1441,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 92 */{.name = "CPU_IO_REQUESTS_TO_MEMORY_IO",
+/* 94 */{.name = "CPU_IO_REQUESTS_TO_MEMORY_IO",
        .code  = 0xE9,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU/IO Requests to Memory/IO",
@@ -1385,7 +1486,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 93 */{.name = "CACHE_BLOCK",
+/* 95 */{.name = "CACHE_BLOCK",
        .code  = 0xEA,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Cache Block Commands",
@@ -1418,7 +1519,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 94 */{.name = "SIZED_COMMANDS",
+/* 96 */{.name = "SIZED_COMMANDS",
        .code  = 0xEB,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Sized Commands",
@@ -1433,7 +1534,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                  .ucode = 0x02,
                },
                { .uname = "POSTED_WRITE_BYTE",
-                 .udesc = "Posted SzWr Byte (1-32 bytes) Sub-cache-line DMA 
writes, size varies; also flushes of partially-filled Write Combining buffer",
+                 .udesc = "Posted SzWr Byte (1-32 bytes) Subcache-line DMA 
writes, size varies; also flushes of partially-filled Write Combining buffer",
                  .ucode = 0x04,
                },
                { .uname = "POSTED_WRITE_DWORD",
@@ -1455,7 +1556,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 95 */{.name = "PROBE",
+/* 97 */{.name = "PROBE",
        .code  = 0xEC,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Probe Responses and Upstream Requests",
@@ -1500,7 +1601,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 96 */{.name = "GART",
+/* 98 */{.name = "GART",
        .code  = 0xEE,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "GART Events",
@@ -1545,7 +1646,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 97 */{.name = "MEMORY_CONTROLLER_REQUESTS",
+/* 99 */{.name = "MEMORY_CONTROLLER_REQUESTS",
        .code  = 0x1F0,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Memory Controller Requests",
@@ -1590,7 +1691,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 98 */{.name = "CPU_TO_DRAM_REQUESTS_TO_TARGET_NODE",
+/* 100 */{.name = "CPU_TO_DRAM_REQUESTS_TO_TARGET_NODE",
        .code  = 0x1E0,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU to DRAM Requests to Target Node",
@@ -1635,7 +1736,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 99 */{.name = "IO_TO_DRAM_REQUESTS_TO_TARGET_NODE",
+/* 101 */{.name = "IO_TO_DRAM_REQUESTS_TO_TARGET_NODE",
        .code  = 0x1E1,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "IO to DRAM Requests to Target Node",
@@ -1680,7 +1781,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 100 */{.name = "CPU_READ_COMMAND_LATENCY_TO_TARGET_NODE_0_3",
+/* 102 */{.name = "CPU_READ_COMMAND_LATENCY_TO_TARGET_NODE_0_3",
        .code  = 0x1E2,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU Read Command Latency to Target Node 0-3",
@@ -1725,7 +1826,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 101 */{.name = "CPU_READ_COMMAND_REQUESTS_TO_TARGET_NODE_0_3",
+/* 103 */{.name = "CPU_READ_COMMAND_REQUESTS_TO_TARGET_NODE_0_3",
        .code  = 0x1E3,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU Read Command Requests to Target Node 0-3",
@@ -1770,7 +1871,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 102 */{.name = "CPU_READ_COMMAND_LATENCY_TO_TARGET_NODE_4_7",
+/* 104 */{.name = "CPU_READ_COMMAND_LATENCY_TO_TARGET_NODE_4_7",
        .code  = 0x1E4,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU Read Command Latency to Target Node 4-7",
@@ -1815,7 +1916,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 103 */{.name = "CPU_READ_COMMAND_REQUESTS_TO_TARGET_NODE_4_7",
+/* 105 */{.name = "CPU_READ_COMMAND_REQUESTS_TO_TARGET_NODE_4_7",
        .code  = 0x1E5,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU Read Command Requests to Target Node 4-7",
@@ -1860,7 +1961,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 104 */{.name = "CPU_COMMAND_LATENCY_TO_TARGET_NODE_0_3_4_7",
+/* 106 */{.name = "CPU_COMMAND_LATENCY_TO_TARGET_NODE_0_3_4_7",
        .code  = 0x1E6,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU Command Latency to Target Node 0-3/4-7",
@@ -1905,7 +2006,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 105 */{.name = "CPU_REQUESTS_TO_TARGET_NODE_0_3_4_7",
+/* 107 */{.name = "CPU_REQUESTS_TO_TARGET_NODE_0_3_4_7",
        .code  = 0x1E7,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "CPU Requests to Target Node 0-3/4-7",
@@ -1950,7 +2051,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 106 */{.name = "HYPERTRANSPORT_LINK0",
+/* 108 */{.name = "HYPERTRANSPORT_LINK0",
        .code  = 0xF6,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "HyperTransport Link 0 Transmit Bandwidth",
@@ -1991,7 +2092,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 107 */{.name = "HYPERTRANSPORT_LINK1",
+/* 109 */{.name = "HYPERTRANSPORT_LINK1",
        .code  = 0xF7,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "HyperTransport Link 1 Transmit Bandwidth",
@@ -2032,7 +2133,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 108 */{.name = "HYPERTRANSPORT_LINK2",
+/* 110 */{.name = "HYPERTRANSPORT_LINK2",
        .code  = 0xF8,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "HyperTransport Link 2 Transmit Bandwidth",
@@ -2073,7 +2174,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 109 */{.name = "HYPERTRANSPORT_LINK3",
+/* 111 */{.name = "HYPERTRANSPORT_LINK3",
        .code  = 0x1F9,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "HyperTransport Link 3 Transmit Bandwidth",
@@ -2114,7 +2215,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 110 */{.name = "READ_REQUEST_TO_L3_CACHE",
+/* 112 */{.name = "READ_REQUEST_TO_L3_CACHE",
        .code  = 0x4E0,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Read Request to L3 Cache",
@@ -2156,7 +2257,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 111 */{.name = "L3_CACHE_MISSES",
+/* 113 */{.name = "L3_CACHE_MISSES",
        .code  = 0x4E1,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L3 Cache Misses",
@@ -2198,7 +2299,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 112 */{.name = "L3_FILLS_CAUSED_BY_L2_EVICTIONS",
+/* 114 */{.name = "L3_FILLS_CAUSED_BY_L2_EVICTIONS",
        .code  = 0x4E2,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L3 Fills caused by L2 Evictions",
@@ -2244,7 +2345,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 113 */{.name = "L3_EVICTIONS",
+/* 115 */{.name = "L3_EVICTIONS",
        .code  = 0x4E3,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L3 Evictions",
@@ -2276,7 +2377,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
 
 /* Family 10h RevC, Shanghai */
 
-/* 114 */{.name = "PAGE_SIZE_MISMATCHES",
+/* 116 */{.name = "PAGE_SIZE_MISMATCHES",
        .code  = 0x165,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Page Size Mismatches",
@@ -2302,7 +2403,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 115 */{.name = "RETIRED_X87_OPS",
+/* 117 */{.name = "RETIRED_X87_OPS",
        .code  = 0x1C0,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Retired x87 Floating Point Operations",
@@ -2328,25 +2429,25 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 116 */{.name = "IBS_OPS_TAGGED",
+/* 118 */{.name = "IBS_OPS_TAGGED",
        .code  = 0x1CF,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "IBS Ops Tagged",
        .flags = AMD64_FL_FAM10H_REV_C,
        },
-/* 117 */{.name = "LFENCE_INST_RETIRED",
+/* 119 */{.name = "LFENCE_INST_RETIRED",
        .code  = 0x1D3,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "LFENCE Instructions Retired",
        .flags = AMD64_FL_FAM10H_REV_C,
        },
-/* 118 */{.name = "SFENCE_INST_RETIRED",
+/* 120 */{.name = "SFENCE_INST_RETIRED",
        .code  = 0x1D4,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "SFENCE Instructions Retired",
        .flags = AMD64_FL_FAM10H_REV_C,
        },
-/* 119 */{.name = "MFENCE_INST_RETIRED",
+/* 121 */{.name = "MFENCE_INST_RETIRED",
        .code  = 0x1D5,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "MFENCE Instructions Retired",
@@ -2355,7 +2456,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
 
 /* Family 10h RevD, Istanbul */
 
-/* 120 */{.name = "READ_REQUEST_TO_L3_CACHE",
+/* 122 */{.name = "READ_REQUEST_TO_L3_CACHE",
        .code  = 0x4E0,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "Read Request to L3 Cache",
@@ -2409,7 +2510,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 121 */{.name = "L3_CACHE_MISSES",
+/* 123 */{.name = "L3_CACHE_MISSES",
        .code  = 0x4E1,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L3 Cache Misses",
@@ -2463,7 +2564,7 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/* 122 */{.name = "L3_FILLS_CAUSED_BY_L2_EVICTIONS",
+/* 124 */{.name = "L3_FILLS_CAUSED_BY_L2_EVICTIONS",
        .code  = 0x4E2,
        .modmsk = AMD64_FAM10H_ATTRS,
        .desc  = "L3 Fills caused by L2 Evictions",
@@ -2521,19 +2622,75 @@ static const amd64_entry_t amd64_fam10h_pe[]={
                },
         },
        },
-/*  123 */{.name = "IBSFETCH_EVENT",
-       .code  = 0xff,
+/* 125 */{.name = "NON_CANCELLED_L3_READ_REQUESTS",
+       .code  = 0x4ED,
+       .modmsk = AMD64_FAM10H_ATTRS,
+       .desc  = "Non-cancelled L3 Read Requests",
+       .flags = AMD64_FL_FAM10H_REV_D,
+       .numasks = 11,
+       .umasks  = {
+               { .uname = "READ_BLOCK_EXCLUSIVE",
+                 .udesc = "Read Block Exclusive (Data cache read)",
+                 .ucode = 0x01,
+               },
+               { .uname = "READ_BLOCK_SHARED",
+                 .udesc = "Read Block Shared (Instruction cache read)",
+                 .ucode = 0x02,
+               },
+               { .uname = "READ_BLOCK_MODIFY",
+                 .udesc = "Read Block Modify",
+                 .ucode = 0x04,
+               },
+               { .uname = "CORE_0_SELECT",
+                 .udesc = "Core 0 Select",
+                 .ucode = 0x00,
+               },
+               { .uname = "CORE_1_SELECT",
+                 .udesc = "Core 1 Select",
+                 .ucode = 0x10,
+               },
+               { .uname = "CORE_2_SELECT",
+                 .udesc = "Core 2 Select",
+                 .ucode = 0x20,
+               },
+               { .uname = "CORE_3_SELECT",
+                 .udesc = "Core 3 Select",
+                 .ucode = 0x30,
+               },
+               { .uname = "CORE_4_SELECT",
+                 .udesc = "Core 4 Select",
+                 .ucode = 0x40,
+               },
+               { .uname = "CORE_5_SELECT",
+                 .udesc = "Core 5 Select",
+                 .ucode = 0x50,
+               },
+               { .uname = "ANY_CORE",
+                 .udesc = "Any core",
+                 .ucode = 0xF0,
+               },
+               { .uname = "ALL",
+                 .udesc = "All sub-events selected",
+                 .ucode = 0xF7,
+                 .uflags = AMD64_FL_DFL|AMD64_FL_NCOMBO,
+               },
+        },
+       },
+
+/* Family 10h, IBS pseudo-events */
+
+/* 126 */{.name = "IBSFETCH_EVENT",
+       .code  = 0xFF,
        .modmsk = AMD64_FAM10H_ATTRS_IBSFE,
        .desc  = "pseudo-event to enable IBS Fetch sampling",
        .flags = AMD64_FL_IBSFE,
-        },
-
-/*  124 */{.name = "IBSOP_EVENT",
-       .code  = 0xff,
+       },
+/* 127 */{.name = "IBSOP_EVENT",
+       .code  = 0xFF,
        .modmsk = AMD64_FAM10H_ATTRS_IBSOP,
        .desc  = "pseudo-event to enable IBS Op sampling",
        .flags = AMD64_FL_IBSOP,
-        },
+       },
 };
 
 #define PME_AMD64_FAM10H_EVENT_COUNT           
(sizeof(amd64_fam10h_pe)/sizeof(amd64_entry_t))
-- 
1.7.1


-- 
Advanced Micro Devices, Inc.
Operating System Research Center
email: robert.rich...@amd.com


------------------------------------------------------------------------------

_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to