reports on the availability of various functionalities supported by perf in the current environment.
On one of my machines, I get output that looks like
g32 > perf test 1: vmlinux symtab matches kallsyms : Skip 2: Detect openat syscall event : FAILED! 3: Detect openat syscall event on all cpus : FAILED! 4: Read samples using the mmap interface : FAILED! 5: Test data source output : Ok 6: Parse event definition strings : FAILED! 7: Simple expression parser : Ok 8: PERF_RECORD_* events & perf_sample fields : Ok 9: Parse perf pmu format : Ok 10: DSO data read : Ok 11: DSO data cache : Ok 12: DSO data reopen : Ok 13: Roundtrip evsel->name : Ok 14: Parse sched tracepoints fields : FAILED! 15: syscalls:sys_enter_openat event fields : FAILED! 16: Setup struct perf_event_attr : Ok 17: Match and link multiple hists : Ok 18: 'import perf' in python : Ok 19: Breakpoint overflow signal handler : Ok 20: Breakpoint overflow sampling : Ok 21: Number of exit events of a simple workload : Skip 22: Software clock events period values : Ok
The meaning of "OK" and "FAILED" is clear, but what does "Skip" mean?
You can repeat the particular test that was skipped with the verbose option as follows:
perf test -v 1
Here, I've specified the test number 1, which corresponds to the test "vmlinux symtab matches kallsyms." The verbose option can be helpful in understanding the result of a test. If you omit the test number, all tests will be attempted in verbose mode.
Consider test 1 as an example. It may output the following:
Couldn't find a vmlinux that matches the kernel running on this machine, skipping test
The solution is clear now; vmlinux that matches the kernel has to be installed in order to perform the test.
Tests may also be skipped explicitly using the -s command-line option.