parse-events.c (277a163c83d7ba93fba1e8980d29a9f8bfcfba6c) | parse-events.c (615b8f99f755f8e2701f08cef9c56bd3033891a5) |
---|---|
1 2#include "parse-events.h" 3#include "evsel.h" 4#include "evlist.h" 5#include <api/fs/fs.h> 6#include <api/fs/debugfs.h> 7#include "tests.h" 8#include <linux/hw_breakpoint.h> --- 1160 unchanged lines hidden (view full) --- 1169 count_tracepoints() == evlist->nr_entries); 1170 1171 return test__checkevent_tracepoint_multi(evlist); 1172} 1173 1174struct evlist_test { 1175 const char *name; 1176 __u32 type; | 1 2#include "parse-events.h" 3#include "evsel.h" 4#include "evlist.h" 5#include <api/fs/fs.h> 6#include <api/fs/debugfs.h> 7#include "tests.h" 8#include <linux/hw_breakpoint.h> --- 1160 unchanged lines hidden (view full) --- 1169 count_tracepoints() == evlist->nr_entries); 1170 1171 return test__checkevent_tracepoint_multi(evlist); 1172} 1173 1174struct evlist_test { 1175 const char *name; 1176 __u32 type; |
1177 const int id; |
|
1177 int (*check)(struct perf_evlist *evlist); 1178}; 1179 1180static struct evlist_test test__events[] = { | 1178 int (*check)(struct perf_evlist *evlist); 1179}; 1180 1181static struct evlist_test test__events[] = { |
1181 [0] = { | 1182 { |
1182 .name = "syscalls:sys_enter_open", 1183 .check = test__checkevent_tracepoint, | 1183 .name = "syscalls:sys_enter_open", 1184 .check = test__checkevent_tracepoint, |
1185 .id = 0, |
|
1184 }, | 1186 }, |
1185 [1] = { | 1187 { |
1186 .name = "syscalls:*", 1187 .check = test__checkevent_tracepoint_multi, | 1188 .name = "syscalls:*", 1189 .check = test__checkevent_tracepoint_multi, |
1190 .id = 1, |
|
1188 }, | 1191 }, |
1189 [2] = { | 1192 { |
1190 .name = "r1a", 1191 .check = test__checkevent_raw, | 1193 .name = "r1a", 1194 .check = test__checkevent_raw, |
1195 .id = 2, |
|
1192 }, | 1196 }, |
1193 [3] = { | 1197 { |
1194 .name = "1:1", 1195 .check = test__checkevent_numeric, | 1198 .name = "1:1", 1199 .check = test__checkevent_numeric, |
1200 .id = 3, |
|
1196 }, | 1201 }, |
1197 [4] = { | 1202 { |
1198 .name = "instructions", 1199 .check = test__checkevent_symbolic_name, | 1203 .name = "instructions", 1204 .check = test__checkevent_symbolic_name, |
1205 .id = 4, |
|
1200 }, | 1206 }, |
1201 [5] = { | 1207 { |
1202 .name = "cycles/period=100000,config2/", 1203 .check = test__checkevent_symbolic_name_config, | 1208 .name = "cycles/period=100000,config2/", 1209 .check = test__checkevent_symbolic_name_config, |
1210 .id = 5, |
|
1204 }, | 1211 }, |
1205 [6] = { | 1212 { |
1206 .name = "faults", 1207 .check = test__checkevent_symbolic_alias, | 1213 .name = "faults", 1214 .check = test__checkevent_symbolic_alias, |
1215 .id = 6, |
|
1208 }, | 1216 }, |
1209 [7] = { | 1217 { |
1210 .name = "L1-dcache-load-miss", 1211 .check = test__checkevent_genhw, | 1218 .name = "L1-dcache-load-miss", 1219 .check = test__checkevent_genhw, |
1220 .id = 7, |
|
1212 }, | 1221 }, |
1213 [8] = { | 1222 { |
1214 .name = "mem:0", 1215 .check = test__checkevent_breakpoint, | 1223 .name = "mem:0", 1224 .check = test__checkevent_breakpoint, |
1225 .id = 8, |
|
1216 }, | 1226 }, |
1217 [9] = { | 1227 { |
1218 .name = "mem:0:x", 1219 .check = test__checkevent_breakpoint_x, | 1228 .name = "mem:0:x", 1229 .check = test__checkevent_breakpoint_x, |
1230 .id = 9, |
|
1220 }, | 1231 }, |
1221 [10] = { | 1232 { |
1222 .name = "mem:0:r", 1223 .check = test__checkevent_breakpoint_r, | 1233 .name = "mem:0:r", 1234 .check = test__checkevent_breakpoint_r, |
1235 .id = 10, |
|
1224 }, | 1236 }, |
1225 [11] = { | 1237 { |
1226 .name = "mem:0:w", 1227 .check = test__checkevent_breakpoint_w, | 1238 .name = "mem:0:w", 1239 .check = test__checkevent_breakpoint_w, |
1240 .id = 11, |
|
1228 }, | 1241 }, |
1229 [12] = { | 1242 { |
1230 .name = "syscalls:sys_enter_open:k", 1231 .check = test__checkevent_tracepoint_modifier, | 1243 .name = "syscalls:sys_enter_open:k", 1244 .check = test__checkevent_tracepoint_modifier, |
1245 .id = 12, |
|
1232 }, | 1246 }, |
1233 [13] = { | 1247 { |
1234 .name = "syscalls:*:u", 1235 .check = test__checkevent_tracepoint_multi_modifier, | 1248 .name = "syscalls:*:u", 1249 .check = test__checkevent_tracepoint_multi_modifier, |
1250 .id = 13, |
|
1236 }, | 1251 }, |
1237 [14] = { | 1252 { |
1238 .name = "r1a:kp", 1239 .check = test__checkevent_raw_modifier, | 1253 .name = "r1a:kp", 1254 .check = test__checkevent_raw_modifier, |
1255 .id = 14, |
|
1240 }, | 1256 }, |
1241 [15] = { | 1257 { |
1242 .name = "1:1:hp", 1243 .check = test__checkevent_numeric_modifier, | 1258 .name = "1:1:hp", 1259 .check = test__checkevent_numeric_modifier, |
1260 .id = 15, |
|
1244 }, | 1261 }, |
1245 [16] = { | 1262 { |
1246 .name = "instructions:h", 1247 .check = test__checkevent_symbolic_name_modifier, | 1263 .name = "instructions:h", 1264 .check = test__checkevent_symbolic_name_modifier, |
1265 .id = 16, |
|
1248 }, | 1266 }, |
1249 [17] = { | 1267 { |
1250 .name = "faults:u", 1251 .check = test__checkevent_symbolic_alias_modifier, | 1268 .name = "faults:u", 1269 .check = test__checkevent_symbolic_alias_modifier, |
1270 .id = 17, |
|
1252 }, | 1271 }, |
1253 [18] = { | 1272 { |
1254 .name = "L1-dcache-load-miss:kp", 1255 .check = test__checkevent_genhw_modifier, | 1273 .name = "L1-dcache-load-miss:kp", 1274 .check = test__checkevent_genhw_modifier, |
1275 .id = 18, |
|
1256 }, | 1276 }, |
1257 [19] = { | 1277 { |
1258 .name = "mem:0:u", 1259 .check = test__checkevent_breakpoint_modifier, | 1278 .name = "mem:0:u", 1279 .check = test__checkevent_breakpoint_modifier, |
1280 .id = 19, |
|
1260 }, | 1281 }, |
1261 [20] = { | 1282 { |
1262 .name = "mem:0:x:k", 1263 .check = test__checkevent_breakpoint_x_modifier, | 1283 .name = "mem:0:x:k", 1284 .check = test__checkevent_breakpoint_x_modifier, |
1285 .id = 20, |
|
1264 }, | 1286 }, |
1265 [21] = { | 1287 { |
1266 .name = "mem:0:r:hp", 1267 .check = test__checkevent_breakpoint_r_modifier, | 1288 .name = "mem:0:r:hp", 1289 .check = test__checkevent_breakpoint_r_modifier, |
1290 .id = 21, |
|
1268 }, | 1291 }, |
1269 [22] = { | 1292 { |
1270 .name = "mem:0:w:up", 1271 .check = test__checkevent_breakpoint_w_modifier, | 1293 .name = "mem:0:w:up", 1294 .check = test__checkevent_breakpoint_w_modifier, |
1295 .id = 22, |
|
1272 }, | 1296 }, |
1273 [23] = { | 1297 { |
1274 .name = "r1,syscalls:sys_enter_open:k,1:1:hp", 1275 .check = test__checkevent_list, | 1298 .name = "r1,syscalls:sys_enter_open:k,1:1:hp", 1299 .check = test__checkevent_list, |
1300 .id = 23, |
|
1276 }, | 1301 }, |
1277 [24] = { | 1302 { |
1278 .name = "instructions:G", 1279 .check = test__checkevent_exclude_host_modifier, | 1303 .name = "instructions:G", 1304 .check = test__checkevent_exclude_host_modifier, |
1305 .id = 24, |
|
1280 }, | 1306 }, |
1281 [25] = { | 1307 { |
1282 .name = "instructions:H", 1283 .check = test__checkevent_exclude_guest_modifier, | 1308 .name = "instructions:H", 1309 .check = test__checkevent_exclude_guest_modifier, |
1310 .id = 25, |
|
1284 }, | 1311 }, |
1285 [26] = { | 1312 { |
1286 .name = "mem:0:rw", 1287 .check = test__checkevent_breakpoint_rw, | 1313 .name = "mem:0:rw", 1314 .check = test__checkevent_breakpoint_rw, |
1315 .id = 26, |
|
1288 }, | 1316 }, |
1289 [27] = { | 1317 { |
1290 .name = "mem:0:rw:kp", 1291 .check = test__checkevent_breakpoint_rw_modifier, | 1318 .name = "mem:0:rw:kp", 1319 .check = test__checkevent_breakpoint_rw_modifier, |
1320 .id = 27, |
|
1292 }, | 1321 }, |
1293 [28] = { | 1322 { |
1294 .name = "{instructions:k,cycles:upp}", 1295 .check = test__group1, | 1323 .name = "{instructions:k,cycles:upp}", 1324 .check = test__group1, |
1325 .id = 28, |
|
1296 }, | 1326 }, |
1297 [29] = { | 1327 { |
1298 .name = "{faults:k,cache-references}:u,cycles:k", 1299 .check = test__group2, | 1328 .name = "{faults:k,cache-references}:u,cycles:k", 1329 .check = test__group2, |
1330 .id = 29, |
|
1300 }, | 1331 }, |
1301 [30] = { | 1332 { |
1302 .name = "group1{syscalls:sys_enter_open:H,cycles:kppp},group2{cycles,1:3}:G,instructions:u", 1303 .check = test__group3, | 1333 .name = "group1{syscalls:sys_enter_open:H,cycles:kppp},group2{cycles,1:3}:G,instructions:u", 1334 .check = test__group3, |
1335 .id = 30, |
|
1304 }, | 1336 }, |
1305 [31] = { | 1337 { |
1306 .name = "{cycles:u,instructions:kp}:p", 1307 .check = test__group4, | 1338 .name = "{cycles:u,instructions:kp}:p", 1339 .check = test__group4, |
1340 .id = 31, |
|
1308 }, | 1341 }, |
1309 [32] = { | 1342 { |
1310 .name = "{cycles,instructions}:G,{cycles:G,instructions:G},cycles", 1311 .check = test__group5, | 1343 .name = "{cycles,instructions}:G,{cycles:G,instructions:G},cycles", 1344 .check = test__group5, |
1345 .id = 32, |
|
1312 }, | 1346 }, |
1313 [33] = { | 1347 { |
1314 .name = "*:*", 1315 .check = test__all_tracepoints, | 1348 .name = "*:*", 1349 .check = test__all_tracepoints, |
1350 .id = 33, |
|
1316 }, | 1351 }, |
1317 [34] = { | 1352 { |
1318 .name = "{cycles,cache-misses:G}:H", 1319 .check = test__group_gh1, | 1353 .name = "{cycles,cache-misses:G}:H", 1354 .check = test__group_gh1, |
1355 .id = 34, |
|
1320 }, | 1356 }, |
1321 [35] = { | 1357 { |
1322 .name = "{cycles,cache-misses:H}:G", 1323 .check = test__group_gh2, | 1358 .name = "{cycles,cache-misses:H}:G", 1359 .check = test__group_gh2, |
1360 .id = 35, |
|
1324 }, | 1361 }, |
1325 [36] = { | 1362 { |
1326 .name = "{cycles:G,cache-misses:H}:u", 1327 .check = test__group_gh3, | 1363 .name = "{cycles:G,cache-misses:H}:u", 1364 .check = test__group_gh3, |
1365 .id = 36, |
|
1328 }, | 1366 }, |
1329 [37] = { | 1367 { |
1330 .name = "{cycles:G,cache-misses:H}:uG", 1331 .check = test__group_gh4, | 1368 .name = "{cycles:G,cache-misses:H}:uG", 1369 .check = test__group_gh4, |
1370 .id = 37, |
|
1332 }, | 1371 }, |
1333 [38] = { | 1372 { |
1334 .name = "{cycles,cache-misses,branch-misses}:S", 1335 .check = test__leader_sample1, | 1373 .name = "{cycles,cache-misses,branch-misses}:S", 1374 .check = test__leader_sample1, |
1375 .id = 38, |
|
1336 }, | 1376 }, |
1337 [39] = { | 1377 { |
1338 .name = "{instructions,branch-misses}:Su", 1339 .check = test__leader_sample2, | 1378 .name = "{instructions,branch-misses}:Su", 1379 .check = test__leader_sample2, |
1380 .id = 39, |
|
1340 }, | 1381 }, |
1341 [40] = { | 1382 { |
1342 .name = "instructions:uDp", 1343 .check = test__checkevent_pinned_modifier, | 1383 .name = "instructions:uDp", 1384 .check = test__checkevent_pinned_modifier, |
1385 .id = 40, |
|
1344 }, | 1386 }, |
1345 [41] = { | 1387 { |
1346 .name = "{cycles,cache-misses,branch-misses}:D", 1347 .check = test__pinned_group, | 1388 .name = "{cycles,cache-misses,branch-misses}:D", 1389 .check = test__pinned_group, |
1390 .id = 41, |
|
1348 }, 1349}; 1350 1351static struct evlist_test test__events_pmu[] = { | 1391 }, 1392}; 1393 1394static struct evlist_test test__events_pmu[] = { |
1352 [0] = { | 1395 { |
1353 .name = "cpu/config=10,config1,config2=3,period=1000/u", 1354 .check = test__checkevent_pmu, | 1396 .name = "cpu/config=10,config1,config2=3,period=1000/u", 1397 .check = test__checkevent_pmu, |
1398 .id = 0, |
|
1355 }, | 1399 }, |
1356 [1] = { | 1400 { |
1357 .name = "cpu/config=1,name=krava/u,cpu/config=2/u", 1358 .check = test__checkevent_pmu_name, | 1401 .name = "cpu/config=1,name=krava/u,cpu/config=2/u", 1402 .check = test__checkevent_pmu_name, |
1403 .id = 1, |
|
1359 }, 1360}; 1361 1362struct terms_test { 1363 const char *str; 1364 __u32 type; 1365 int (*check)(struct list_head *terms); 1366}; --- 30 unchanged lines hidden (view full) --- 1397static int test_events(struct evlist_test *events, unsigned cnt) 1398{ 1399 int ret1, ret2 = 0; 1400 unsigned i; 1401 1402 for (i = 0; i < cnt; i++) { 1403 struct evlist_test *e = &events[i]; 1404 | 1404 }, 1405}; 1406 1407struct terms_test { 1408 const char *str; 1409 __u32 type; 1410 int (*check)(struct list_head *terms); 1411}; --- 30 unchanged lines hidden (view full) --- 1442static int test_events(struct evlist_test *events, unsigned cnt) 1443{ 1444 int ret1, ret2 = 0; 1445 unsigned i; 1446 1447 for (i = 0; i < cnt; i++) { 1448 struct evlist_test *e = &events[i]; 1449 |
1405 pr_debug("running test %d '%s'\n", i, e->name); | 1450 pr_debug("running test %d '%s'\n", e->id, e->name); |
1406 ret1 = test_event(e); 1407 if (ret1) 1408 ret2 = ret1; 1409 } 1410 1411 return ret2; 1412} 1413 --- 125 unchanged lines hidden --- | 1451 ret1 = test_event(e); 1452 if (ret1) 1453 ret2 = ret1; 1454 } 1455 1456 return ret2; 1457} 1458 --- 125 unchanged lines hidden --- |