1{ 2 "SkipList": [ 3 "tsx_aborted_cycles", 4 "tsx_transactional_cycles", 5 "C2_Pkg_Residency", 6 "C6_Pkg_Residency", 7 "C1_Core_Residency", 8 "C6_Core_Residency", 9 "tma_false_sharing", 10 "tma_remote_cache", 11 "tma_contested_accesses" 12 ], 13 "RelationshipRules": [ 14 { 15 "RuleIndex": 1, 16 "Formula": "a+b", 17 "TestType": "RelationshipTest", 18 "RangeLower": "c", 19 "RangeUpper": "c", 20 "ErrorThreshold": 5.0, 21 "Description": "Intel(R) Optane(TM) Persistent Memory(PMEM) bandwidth total includes Intel(R) Optane(TM) Persistent Memory(PMEM) read bandwidth and Intel(R) Optane(TM) Persistent Memory(PMEM) write bandwidth", 22 "Metrics": [ 23 { 24 "Name": "pmem_memory_bandwidth_read", 25 "Alias": "a" 26 }, 27 { 28 "Name": "pmem_memory_bandwidth_write", 29 "Alias": "b" 30 }, 31 { 32 "Name": "pmem_memory_bandwidth_total", 33 "Alias": "c" 34 } 35 ] 36 }, 37 { 38 "RuleIndex": 2, 39 "Formula": "a+b", 40 "TestType": "RelationshipTest", 41 "RangeLower": "c", 42 "RangeUpper": "c", 43 "ErrorThreshold": 5.0, 44 "Description": "DDR memory bandwidth total includes DDR memory read bandwidth and DDR memory write bandwidth", 45 "Metrics": [ 46 { 47 "Name": "memory_bandwidth_read", 48 "Alias": "a" 49 }, 50 { 51 "Name": "memory_bandwidth_write", 52 "Alias": "b" 53 }, 54 { 55 "Name": "memory_bandwidth_total", 56 "Alias": "c" 57 } 58 ] 59 }, 60 { 61 "RuleIndex": 3, 62 "Formula": "a+b", 63 "TestType": "RelationshipTest", 64 "RangeLower": "100", 65 "RangeUpper": "100", 66 "ErrorThreshold": 5.0, 67 "Description": "Total memory read accesses includes memory reads from last level cache (LLC) addressed to local DRAM and memory reads from the last level cache (LLC) addressed to remote DRAM.", 68 "Metrics": [ 69 { 70 "Name": "numa_reads_addressed_to_local_dram", 71 "Alias": "a" 72 }, 73 { 74 "Name": "numa_reads_addressed_to_remote_dram", 75 "Alias": "b" 76 } 77 ] 78 }, 79 { 80 "RuleIndex": 4, 81 "Formula": "a", 82 "TestType": "SingleMetricTest", 83 "RangeLower": "0.125", 84 "RangeUpper": "", 85 "ErrorThreshold": "", 86 "Description": "", 87 "Metrics": [ 88 { 89 "Name": "cpi", 90 "Alias": "a" 91 } 92 ] 93 }, 94 { 95 "RuleIndex": 5, 96 "Formula": "", 97 "TestType": "SingleMetricTest", 98 "RangeLower": "0", 99 "RangeUpper": "1", 100 "ErrorThreshold": 5.0, 101 "Description": "Ratio values should be within value range [0,1)", 102 "Metrics": [ 103 { 104 "Name": "loads_per_instr", 105 "Alias": "" 106 }, 107 { 108 "Name": "stores_per_instr", 109 "Alias": "" 110 }, 111 { 112 "Name": "l1d_mpi", 113 "Alias": "" 114 }, 115 { 116 "Name": "l1d_demand_data_read_hits_per_instr", 117 "Alias": "" 118 }, 119 { 120 "Name": "l1_i_code_read_misses_with_prefetches_per_instr", 121 "Alias": "" 122 }, 123 { 124 "Name": "l2_demand_data_read_hits_per_instr", 125 "Alias": "" 126 }, 127 { 128 "Name": "l2_mpi", 129 "Alias": "" 130 }, 131 { 132 "Name": "l2_demand_data_read_mpi", 133 "Alias": "" 134 }, 135 { 136 "Name": "l2_demand_code_mpi", 137 "Alias": "" 138 } 139 ] 140 }, 141 { 142 "RuleIndex": 6, 143 "Formula": "a+b+c+d", 144 "TestType": "RelationshipTest", 145 "RangeLower": "100", 146 "RangeUpper": "100", 147 "ErrorThreshold": 5.0, 148 "Description": "Sum of TMA level 1 metrics should be 100%", 149 "Metrics": [ 150 { 151 "Name": "tma_frontend_bound", 152 "Alias": "a" 153 }, 154 { 155 "Name": "tma_bad_speculation", 156 "Alias": "b" 157 }, 158 { 159 "Name": "tma_backend_bound", 160 "Alias": "c" 161 }, 162 { 163 "Name": "tma_retiring", 164 "Alias": "d" 165 } 166 ] 167 }, 168 { 169 "RuleIndex": 7, 170 "Formula": "a+b", 171 "TestType": "RelationshipTest", 172 "RangeLower": "c", 173 "RangeUpper": "c", 174 "ErrorThreshold": 5.0, 175 "Description": "Sum of the level 2 children should equal level 1 parent", 176 "Metrics": [ 177 { 178 "Name": "tma_fetch_latency", 179 "Alias": "a" 180 }, 181 { 182 "Name": "tma_fetch_bandwidth", 183 "Alias": "b" 184 }, 185 { 186 "Name": "tma_frontend_bound", 187 "Alias": "c" 188 } 189 ] 190 }, 191 { 192 "RuleIndex": 8, 193 "Formula": "a+b", 194 "TestType": "RelationshipTest", 195 "RangeLower": "c", 196 "RangeUpper": "c", 197 "ErrorThreshold": 5.0, 198 "Description": "Sum of the level 2 children should equal level 1 parent", 199 "Metrics": [ 200 { 201 "Name": "tma_branch_mispredicts", 202 "Alias": "a" 203 }, 204 { 205 "Name": "tma_machine_clears", 206 "Alias": "b" 207 }, 208 { 209 "Name": "tma_bad_speculation", 210 "Alias": "c" 211 } 212 ] 213 }, 214 { 215 "RuleIndex": 9, 216 "Formula": "a+b", 217 "TestType": "RelationshipTest", 218 "RangeLower": "c", 219 "RangeUpper": "c", 220 "ErrorThreshold": 5.0, 221 "Description": "Sum of the level 2 children should equal level 1 parent", 222 "Metrics": [ 223 { 224 "Name": "tma_memory_bound", 225 "Alias": "a" 226 }, 227 { 228 "Name": "tma_core_bound", 229 "Alias": "b" 230 }, 231 { 232 "Name": "tma_backend_bound", 233 "Alias": "c" 234 } 235 ] 236 }, 237 { 238 "RuleIndex": 10, 239 "Formula": "a+b", 240 "TestType": "RelationshipTest", 241 "RangeLower": "c", 242 "RangeUpper": "c", 243 "ErrorThreshold": 5.0, 244 "Description": "Sum of the level 2 children should equal level 1 parent", 245 "Metrics": [ 246 { 247 "Name": "tma_light_operations", 248 "Alias": "a" 249 }, 250 { 251 "Name": "tma_heavy_operations", 252 "Alias": "b" 253 }, 254 { 255 "Name": "tma_retiring", 256 "Alias": "c" 257 } 258 ] 259 }, 260 { 261 "RuleIndex": 11, 262 "Formula": "a+b+c", 263 "TestType": "RelationshipTest", 264 "RangeLower": "100", 265 "RangeUpper": "100", 266 "ErrorThreshold": 5.0, 267 "Description": "The all_requests includes the memory_page_empty, memory_page_misses, and memory_page_hits equals.", 268 "Metrics": [ 269 { 270 "Name": "memory_page_empty_vs_all_requests", 271 "Alias": "a" 272 }, 273 { 274 "Name": "memory_page_misses_vs_all_requests", 275 "Alias": "b" 276 }, 277 { 278 "Name": "memory_page_hits_vs_all_requests", 279 "Alias": "c" 280 } 281 ] 282 }, 283 { 284 "RuleIndex": 12, 285 "Formula": "a-b", 286 "TestType": "RelationshipTest", 287 "RangeLower": "0", 288 "RangeUpper": "", 289 "ErrorThreshold": 5.0, 290 "Description": "CPU utilization in kernel mode should always be <= cpu utilization", 291 "Metrics": [ 292 { 293 "Name": "cpu_utilization", 294 "Alias": "a" 295 }, 296 { 297 "Name": "cpu_utilization_in_kernel_mode", 298 "Alias": "b" 299 } 300 ] 301 }, 302 { 303 "RuleIndex": 13, 304 "Formula": "a-b", 305 "TestType": "RelationshipTest", 306 "RangeLower": "0", 307 "RangeUpper": "", 308 "ErrorThreshold": 5.0, 309 "Description": "Total L2 misses per instruction should be >= L2 demand data read misses per instruction", 310 "Metrics": [ 311 { 312 "Name": "l2_mpi", 313 "Alias": "a" 314 }, 315 { 316 "Name": "l2_demand_data_read_mpi", 317 "Alias": "b" 318 } 319 ] 320 }, 321 { 322 "RuleIndex": 14, 323 "Formula": "a-b", 324 "TestType": "RelationshipTest", 325 "RangeLower": "0", 326 "RangeUpper": "", 327 "ErrorThreshold": 5.0, 328 "Description": "Total L2 misses per instruction should be >= L2 demand code misses per instruction", 329 "Metrics": [ 330 { 331 "Name": "l2_mpi", 332 "Alias": "a" 333 }, 334 { 335 "Name": "l2_demand_code_mpi", 336 "Alias": "b" 337 } 338 ] 339 }, 340 { 341 "RuleIndex": 15, 342 "Formula": "b+c+d", 343 "TestType": "RelationshipTest", 344 "RangeLower": "a", 345 "RangeUpper": "a", 346 "ErrorThreshold": 5.0, 347 "Description": "L3 data read, rfo, code misses per instruction equals total L3 misses per instruction.", 348 "Metrics": [ 349 { 350 "Name": "llc_mpi", 351 "Alias": "a" 352 }, 353 { 354 "Name": "llc_data_read_mpi_demand_plus_prefetch", 355 "Alias": "b" 356 }, 357 { 358 "Name": "llc_rfo_read_mpi_demand_plus_prefetch", 359 "Alias": "c" 360 }, 361 { 362 "Name": "llc_code_read_mpi_demand_plus_prefetch", 363 "Alias": "d" 364 } 365 ] 366 }, 367 { 368 "RuleIndex": 16, 369 "Formula": "a", 370 "TestType": "SingleMetricTest", 371 "RangeLower": "0", 372 "RangeUpper": "8", 373 "ErrorThreshold": 0.0, 374 "Description": "Setting generous range for allowable frequencies", 375 "Metrics": [ 376 { 377 "Name": "uncore_freq", 378 "Alias": "a" 379 } 380 ] 381 }, 382 { 383 "RuleIndex": 17, 384 "Formula": "a", 385 "TestType": "SingleMetricTest", 386 "RangeLower": "0", 387 "RangeUpper": "8", 388 "ErrorThreshold": 0.0, 389 "Description": "Setting generous range for allowable frequencies", 390 "Metrics": [ 391 { 392 "Name": "cpu_operating_frequency", 393 "Alias": "a" 394 } 395 ] 396 } 397 ] 398}