diff options
author | Ingo Molnar <mingo@kernel.org> | 2014-05-01 02:24:59 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2014-05-01 02:24:59 -0400 |
commit | 3617660e4e1618a888a2e3a4067224534302cb33 (patch) | |
tree | 2fc27376eafe21b878b4cdcc450179c60f8beb37 /tools/perf/tests | |
parent | aeffe2abc894b585acbe0923c0d4f21b4c5c1035 (diff) | |
parent | 8ab596afb97bc9e2f9140dc1d993e81749acff42 (diff) |
Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf into perf/core
Pull perf/core improvements and fixes from Jiri Olsa:
* Wire up perf_regs and unwind support for ARM64 (Jean Pihet)
* Move u64_swap union to its single user's header, evsel.h (Borislav Petkov)
* Fix for s390 to properly parse tracepoints plus test code (Alexander Yarygin)
* Handle EINTR error for readn/writen (Namhyung Kim)
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/tests')
-rw-r--r-- | tools/perf/tests/parse-events.c | 142 |
1 files changed, 97 insertions, 45 deletions
diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-events.c index 8605ff5572ae..deba66955f8c 100644 --- a/tools/perf/tests/parse-events.c +++ b/tools/perf/tests/parse-events.c | |||
@@ -1174,188 +1174,240 @@ static int test__all_tracepoints(struct perf_evlist *evlist) | |||
1174 | struct evlist_test { | 1174 | struct evlist_test { |
1175 | const char *name; | 1175 | const char *name; |
1176 | __u32 type; | 1176 | __u32 type; |
1177 | const int id; | ||
1177 | int (*check)(struct perf_evlist *evlist); | 1178 | int (*check)(struct perf_evlist *evlist); |
1178 | }; | 1179 | }; |
1179 | 1180 | ||
1180 | static struct evlist_test test__events[] = { | 1181 | static struct evlist_test test__events[] = { |
1181 | [0] = { | 1182 | { |
1182 | .name = "syscalls:sys_enter_open", | 1183 | .name = "syscalls:sys_enter_open", |
1183 | .check = test__checkevent_tracepoint, | 1184 | .check = test__checkevent_tracepoint, |
1185 | .id = 0, | ||
1184 | }, | 1186 | }, |
1185 | [1] = { | 1187 | { |
1186 | .name = "syscalls:*", | 1188 | .name = "syscalls:*", |
1187 | .check = test__checkevent_tracepoint_multi, | 1189 | .check = test__checkevent_tracepoint_multi, |
1190 | .id = 1, | ||
1188 | }, | 1191 | }, |
1189 | [2] = { | 1192 | { |
1190 | .name = "r1a", | 1193 | .name = "r1a", |
1191 | .check = test__checkevent_raw, | 1194 | .check = test__checkevent_raw, |
1195 | .id = 2, | ||
1192 | }, | 1196 | }, |
1193 | [3] = { | 1197 | { |
1194 | .name = "1:1", | 1198 | .name = "1:1", |
1195 | .check = test__checkevent_numeric, | 1199 | .check = test__checkevent_numeric, |
1200 | .id = 3, | ||
1196 | }, | 1201 | }, |
1197 | [4] = { | 1202 | { |
1198 | .name = "instructions", | 1203 | .name = "instructions", |
1199 | .check = test__checkevent_symbolic_name, | 1204 | .check = test__checkevent_symbolic_name, |
1205 | .id = 4, | ||
1200 | }, | 1206 | }, |
1201 | [5] = { | 1207 | { |
1202 | .name = "cycles/period=100000,config2/", | 1208 | .name = "cycles/period=100000,config2/", |
1203 | .check = test__checkevent_symbolic_name_config, | 1209 | .check = test__checkevent_symbolic_name_config, |
1210 | .id = 5, | ||
1204 | }, | 1211 | }, |
1205 | [6] = { | 1212 | { |
1206 | .name = "faults", | 1213 | .name = "faults", |
1207 | .check = test__checkevent_symbolic_alias, | 1214 | .check = test__checkevent_symbolic_alias, |
1215 | .id = 6, | ||
1208 | }, | 1216 | }, |
1209 | [7] = { | 1217 | { |
1210 | .name = "L1-dcache-load-miss", | 1218 | .name = "L1-dcache-load-miss", |
1211 | .check = test__checkevent_genhw, | 1219 | .check = test__checkevent_genhw, |
1220 | .id = 7, | ||
1212 | }, | 1221 | }, |
1213 | [8] = { | 1222 | { |
1214 | .name = "mem:0", | 1223 | .name = "mem:0", |
1215 | .check = test__checkevent_breakpoint, | 1224 | .check = test__checkevent_breakpoint, |
1225 | .id = 8, | ||
1216 | }, | 1226 | }, |
1217 | [9] = { | 1227 | { |
1218 | .name = "mem:0:x", | 1228 | .name = "mem:0:x", |
1219 | .check = test__checkevent_breakpoint_x, | 1229 | .check = test__checkevent_breakpoint_x, |
1230 | .id = 9, | ||
1220 | }, | 1231 | }, |
1221 | [10] = { | 1232 | { |
1222 | .name = "mem:0:r", | 1233 | .name = "mem:0:r", |
1223 | .check = test__checkevent_breakpoint_r, | 1234 | .check = test__checkevent_breakpoint_r, |
1235 | .id = 10, | ||
1224 | }, | 1236 | }, |
1225 | [11] = { | 1237 | { |
1226 | .name = "mem:0:w", | 1238 | .name = "mem:0:w", |
1227 | .check = test__checkevent_breakpoint_w, | 1239 | .check = test__checkevent_breakpoint_w, |
1240 | .id = 11, | ||
1228 | }, | 1241 | }, |
1229 | [12] = { | 1242 | { |
1230 | .name = "syscalls:sys_enter_open:k", | 1243 | .name = "syscalls:sys_enter_open:k", |
1231 | .check = test__checkevent_tracepoint_modifier, | 1244 | .check = test__checkevent_tracepoint_modifier, |
1245 | .id = 12, | ||
1232 | }, | 1246 | }, |
1233 | [13] = { | 1247 | { |
1234 | .name = "syscalls:*:u", | 1248 | .name = "syscalls:*:u", |
1235 | .check = test__checkevent_tracepoint_multi_modifier, | 1249 | .check = test__checkevent_tracepoint_multi_modifier, |
1250 | .id = 13, | ||
1236 | }, | 1251 | }, |
1237 | [14] = { | 1252 | { |
1238 | .name = "r1a:kp", | 1253 | .name = "r1a:kp", |
1239 | .check = test__checkevent_raw_modifier, | 1254 | .check = test__checkevent_raw_modifier, |
1255 | .id = 14, | ||
1240 | }, | 1256 | }, |
1241 | [15] = { | 1257 | { |
1242 | .name = "1:1:hp", | 1258 | .name = "1:1:hp", |
1243 | .check = test__checkevent_numeric_modifier, | 1259 | .check = test__checkevent_numeric_modifier, |
1260 | .id = 15, | ||
1244 | }, | 1261 | }, |
1245 | [16] = { | 1262 | { |
1246 | .name = "instructions:h", | 1263 | .name = "instructions:h", |
1247 | .check = test__checkevent_symbolic_name_modifier, | 1264 | .check = test__checkevent_symbolic_name_modifier, |
1265 | .id = 16, | ||
1248 | }, | 1266 | }, |
1249 | [17] = { | 1267 | { |
1250 | .name = "faults:u", | 1268 | .name = "faults:u", |
1251 | .check = test__checkevent_symbolic_alias_modifier, | 1269 | .check = test__checkevent_symbolic_alias_modifier, |
1270 | .id = 17, | ||
1252 | }, | 1271 | }, |
1253 | [18] = { | 1272 | { |
1254 | .name = "L1-dcache-load-miss:kp", | 1273 | .name = "L1-dcache-load-miss:kp", |
1255 | .check = test__checkevent_genhw_modifier, | 1274 | .check = test__checkevent_genhw_modifier, |
1275 | .id = 18, | ||
1256 | }, | 1276 | }, |
1257 | [19] = { | 1277 | { |
1258 | .name = "mem:0:u", | 1278 | .name = "mem:0:u", |
1259 | .check = test__checkevent_breakpoint_modifier, | 1279 | .check = test__checkevent_breakpoint_modifier, |
1280 | .id = 19, | ||
1260 | }, | 1281 | }, |
1261 | [20] = { | 1282 | { |
1262 | .name = "mem:0:x:k", | 1283 | .name = "mem:0:x:k", |
1263 | .check = test__checkevent_breakpoint_x_modifier, | 1284 | .check = test__checkevent_breakpoint_x_modifier, |
1285 | .id = 20, | ||
1264 | }, | 1286 | }, |
1265 | [21] = { | 1287 | { |
1266 | .name = "mem:0:r:hp", | 1288 | .name = "mem:0:r:hp", |
1267 | .check = test__checkevent_breakpoint_r_modifier, | 1289 | .check = test__checkevent_breakpoint_r_modifier, |
1290 | .id = 21, | ||
1268 | }, | 1291 | }, |
1269 | [22] = { | 1292 | { |
1270 | .name = "mem:0:w:up", | 1293 | .name = "mem:0:w:up", |
1271 | .check = test__checkevent_breakpoint_w_modifier, | 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", | 1298 | .name = "r1,syscalls:sys_enter_open:k,1:1:hp", |
1275 | .check = test__checkevent_list, | 1299 | .check = test__checkevent_list, |
1300 | .id = 23, | ||
1276 | }, | 1301 | }, |
1277 | [24] = { | 1302 | { |
1278 | .name = "instructions:G", | 1303 | .name = "instructions:G", |
1279 | .check = test__checkevent_exclude_host_modifier, | 1304 | .check = test__checkevent_exclude_host_modifier, |
1305 | .id = 24, | ||
1280 | }, | 1306 | }, |
1281 | [25] = { | 1307 | { |
1282 | .name = "instructions:H", | 1308 | .name = "instructions:H", |
1283 | .check = test__checkevent_exclude_guest_modifier, | 1309 | .check = test__checkevent_exclude_guest_modifier, |
1310 | .id = 25, | ||
1284 | }, | 1311 | }, |
1285 | [26] = { | 1312 | { |
1286 | .name = "mem:0:rw", | 1313 | .name = "mem:0:rw", |
1287 | .check = test__checkevent_breakpoint_rw, | 1314 | .check = test__checkevent_breakpoint_rw, |
1315 | .id = 26, | ||
1288 | }, | 1316 | }, |
1289 | [27] = { | 1317 | { |
1290 | .name = "mem:0:rw:kp", | 1318 | .name = "mem:0:rw:kp", |
1291 | .check = test__checkevent_breakpoint_rw_modifier, | 1319 | .check = test__checkevent_breakpoint_rw_modifier, |
1320 | .id = 27, | ||
1292 | }, | 1321 | }, |
1293 | [28] = { | 1322 | { |
1294 | .name = "{instructions:k,cycles:upp}", | 1323 | .name = "{instructions:k,cycles:upp}", |
1295 | .check = test__group1, | 1324 | .check = test__group1, |
1325 | .id = 28, | ||
1296 | }, | 1326 | }, |
1297 | [29] = { | 1327 | { |
1298 | .name = "{faults:k,cache-references}:u,cycles:k", | 1328 | .name = "{faults:k,cache-references}:u,cycles:k", |
1299 | .check = test__group2, | 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", | 1333 | .name = "group1{syscalls:sys_enter_open:H,cycles:kppp},group2{cycles,1:3}:G,instructions:u", |
1303 | .check = test__group3, | 1334 | .check = test__group3, |
1335 | .id = 30, | ||
1304 | }, | 1336 | }, |
1305 | [31] = { | 1337 | { |
1306 | .name = "{cycles:u,instructions:kp}:p", | 1338 | .name = "{cycles:u,instructions:kp}:p", |
1307 | .check = test__group4, | 1339 | .check = test__group4, |
1340 | .id = 31, | ||
1308 | }, | 1341 | }, |
1309 | [32] = { | 1342 | { |
1310 | .name = "{cycles,instructions}:G,{cycles:G,instructions:G},cycles", | 1343 | .name = "{cycles,instructions}:G,{cycles:G,instructions:G},cycles", |
1311 | .check = test__group5, | 1344 | .check = test__group5, |
1345 | .id = 32, | ||
1312 | }, | 1346 | }, |
1313 | [33] = { | 1347 | { |
1314 | .name = "*:*", | 1348 | .name = "*:*", |
1315 | .check = test__all_tracepoints, | 1349 | .check = test__all_tracepoints, |
1350 | .id = 33, | ||
1316 | }, | 1351 | }, |
1317 | [34] = { | 1352 | { |
1318 | .name = "{cycles,cache-misses:G}:H", | 1353 | .name = "{cycles,cache-misses:G}:H", |
1319 | .check = test__group_gh1, | 1354 | .check = test__group_gh1, |
1355 | .id = 34, | ||
1320 | }, | 1356 | }, |
1321 | [35] = { | 1357 | { |
1322 | .name = "{cycles,cache-misses:H}:G", | 1358 | .name = "{cycles,cache-misses:H}:G", |
1323 | .check = test__group_gh2, | 1359 | .check = test__group_gh2, |
1360 | .id = 35, | ||
1324 | }, | 1361 | }, |
1325 | [36] = { | 1362 | { |
1326 | .name = "{cycles:G,cache-misses:H}:u", | 1363 | .name = "{cycles:G,cache-misses:H}:u", |
1327 | .check = test__group_gh3, | 1364 | .check = test__group_gh3, |
1365 | .id = 36, | ||
1328 | }, | 1366 | }, |
1329 | [37] = { | 1367 | { |
1330 | .name = "{cycles:G,cache-misses:H}:uG", | 1368 | .name = "{cycles:G,cache-misses:H}:uG", |
1331 | .check = test__group_gh4, | 1369 | .check = test__group_gh4, |
1370 | .id = 37, | ||
1332 | }, | 1371 | }, |
1333 | [38] = { | 1372 | { |
1334 | .name = "{cycles,cache-misses,branch-misses}:S", | 1373 | .name = "{cycles,cache-misses,branch-misses}:S", |
1335 | .check = test__leader_sample1, | 1374 | .check = test__leader_sample1, |
1375 | .id = 38, | ||
1336 | }, | 1376 | }, |
1337 | [39] = { | 1377 | { |
1338 | .name = "{instructions,branch-misses}:Su", | 1378 | .name = "{instructions,branch-misses}:Su", |
1339 | .check = test__leader_sample2, | 1379 | .check = test__leader_sample2, |
1380 | .id = 39, | ||
1340 | }, | 1381 | }, |
1341 | [40] = { | 1382 | { |
1342 | .name = "instructions:uDp", | 1383 | .name = "instructions:uDp", |
1343 | .check = test__checkevent_pinned_modifier, | 1384 | .check = test__checkevent_pinned_modifier, |
1385 | .id = 40, | ||
1344 | }, | 1386 | }, |
1345 | [41] = { | 1387 | { |
1346 | .name = "{cycles,cache-misses,branch-misses}:D", | 1388 | .name = "{cycles,cache-misses,branch-misses}:D", |
1347 | .check = test__pinned_group, | 1389 | .check = test__pinned_group, |
1390 | .id = 41, | ||
1391 | }, | ||
1392 | #if defined(__s390x__) | ||
1393 | { | ||
1394 | .name = "kvm-s390:kvm_s390_create_vm", | ||
1395 | .check = test__checkevent_tracepoint, | ||
1396 | .id = 100, | ||
1348 | }, | 1397 | }, |
1398 | #endif | ||
1349 | }; | 1399 | }; |
1350 | 1400 | ||
1351 | static struct evlist_test test__events_pmu[] = { | 1401 | static struct evlist_test test__events_pmu[] = { |
1352 | [0] = { | 1402 | { |
1353 | .name = "cpu/config=10,config1,config2=3,period=1000/u", | 1403 | .name = "cpu/config=10,config1,config2=3,period=1000/u", |
1354 | .check = test__checkevent_pmu, | 1404 | .check = test__checkevent_pmu, |
1405 | .id = 0, | ||
1355 | }, | 1406 | }, |
1356 | [1] = { | 1407 | { |
1357 | .name = "cpu/config=1,name=krava/u,cpu/config=2/u", | 1408 | .name = "cpu/config=1,name=krava/u,cpu/config=2/u", |
1358 | .check = test__checkevent_pmu_name, | 1409 | .check = test__checkevent_pmu_name, |
1410 | .id = 1, | ||
1359 | }, | 1411 | }, |
1360 | }; | 1412 | }; |
1361 | 1413 | ||
@@ -1402,7 +1454,7 @@ static int test_events(struct evlist_test *events, unsigned cnt) | |||
1402 | for (i = 0; i < cnt; i++) { | 1454 | for (i = 0; i < cnt; i++) { |
1403 | struct evlist_test *e = &events[i]; | 1455 | struct evlist_test *e = &events[i]; |
1404 | 1456 | ||
1405 | pr_debug("running test %d '%s'\n", i, e->name); | 1457 | pr_debug("running test %d '%s'\n", e->id, e->name); |
1406 | ret1 = test_event(e); | 1458 | ret1 = test_event(e); |
1407 | if (ret1) | 1459 | if (ret1) |
1408 | ret2 = ret1; | 1460 | ret2 = ret1; |