File Index
Files and directories
Sign in
FILE

perf_metric_validation_rules.json

File preview with syntax highlighting.

linux-6.19.14/tools/perf/tests/shell/lib/perf_metric_validation_rules.json JSON
  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}
~/ Read-only file preview.