Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

perf tests: Add documentation for attr tests

Adding documentation for attr tests.

Signed-off-by: Jiri Olsa <jolsa@redhat.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1351634526-1516-26-git-send-email-jolsa@redhat.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Jiri Olsa and committed by
Arnaldo Carvalho de Melo
b84800a3 8a6408a0

+64
+64
tools/perf/tests/attr/README
··· 1 + The struct perf_event_attr test (attr tests) support 2 + ==================================================== 3 + This testing support is embedded into perf directly and is governed 4 + by the PERF_TEST_ATTR environment variable and hook inside the 5 + sys_perf_event_open function. 6 + 7 + The general idea is to store 'struct perf_event_attr' details for 8 + each event created within single perf command. Each event details 9 + are stored into separate text file. Once perf command is finished 10 + these files are checked for values we expect for command. 11 + 12 + The attr tests consist of following parts: 13 + 14 + tests/attr.c 15 + ------------ 16 + This is the sys_perf_event_open hook implementation. The hook 17 + is triggered when the PERF_TEST_ATTR environment variable is 18 + defined. It must contain name of existing directory with access 19 + and write permissions. 20 + 21 + For each sys_perf_event_open call event details are stored in 22 + separate file. Besides 'struct perf_event_attr' values we also 23 + store 'fd' and 'group_fd' values to allow checking for groups. 24 + 25 + tests/attr.py 26 + ------------- 27 + This is the python script that does all the hard work. It reads 28 + the test definition, executes it and checks results. 29 + 30 + tests/attr/ 31 + ----------- 32 + Directory containing all attr test definitions. 33 + Following tests are defined (with perf commands): 34 + 35 + perf record kill (test-record-basic) 36 + perf record -b kill (test-record-branch-any) 37 + perf record -j any kill (test-record-branch-filter-any) 38 + perf record -j any_call kill (test-record-branch-filter-any_call) 39 + perf record -j any_ret kill (test-record-branch-filter-any_ret) 40 + perf record -j hv kill (test-record-branch-filter-hv) 41 + perf record -j ind_call kill (test-record-branch-filter-ind_call) 42 + perf record -j k kill (test-record-branch-filter-k) 43 + perf record -j u kill (test-record-branch-filter-u) 44 + perf record -c 123 kill (test-record-count) 45 + perf record -d kill (test-record-data) 46 + perf record -F 100 kill (test-record-freq) 47 + perf record -g -- kill (test-record-graph-default) 48 + perf record -g dwarf -- kill (test-record-graph-dwarf) 49 + perf record -g fp kill (test-record-graph-fp) 50 + perf record --group -e cycles,instructions kill (test-record-group) 51 + perf record -e '{cycles,instructions}' kill (test-record-group1) 52 + perf record -D kill (test-record-no-delay) 53 + perf record -i kill (test-record-no-inherit) 54 + perf record -n kill (test-record-no-samples) 55 + perf record -c 100 -P kill (test-record-period) 56 + perf record -R kill (test-record-raw) 57 + perf stat -e cycles kill (test-stat-basic) 58 + perf stat kill (test-stat-default) 59 + perf stat -d kill (test-stat-detailed-1) 60 + perf stat -dd kill (test-stat-detailed-2) 61 + perf stat -ddd kill (test-stat-detailed-3) 62 + perf stat --group -e cycles,instructions kill (test-stat-group) 63 + perf stat -e '{cycles,instructions}' kill (test-stat-group1) 64 + perf stat -i -e cycles kill (test-stat-no-inherit)