xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/resctrl/README (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Workerresctrl_tests - resctrl file system test suit
2*053f45beSAndroid Build Coastguard Worker
3*053f45beSAndroid Build Coastguard WorkerAuthors:
4*053f45beSAndroid Build Coastguard Worker	Fenghua Yu <[email protected]>
5*053f45beSAndroid Build Coastguard Worker	Sai Praneeth Prakhya <[email protected]>,
6*053f45beSAndroid Build Coastguard Worker
7*053f45beSAndroid Build Coastguard Workerresctrl_tests tests various resctrl functionalities and interfaces including
8*053f45beSAndroid Build Coastguard Workerboth software and hardware.
9*053f45beSAndroid Build Coastguard Worker
10*053f45beSAndroid Build Coastguard WorkerCurrently it supports Memory Bandwidth Monitoring test and Memory Bandwidth
11*053f45beSAndroid Build Coastguard WorkerAllocation test on Intel RDT hardware. More tests will be added in the future.
12*053f45beSAndroid Build Coastguard WorkerAnd the test suit can be extended to cover AMD QoS and ARM MPAM hardware
13*053f45beSAndroid Build Coastguard Workeras well.
14*053f45beSAndroid Build Coastguard Worker
15*053f45beSAndroid Build Coastguard Workerresctrl_tests can be run with or without kselftest framework.
16*053f45beSAndroid Build Coastguard Worker
17*053f45beSAndroid Build Coastguard WorkerWITH KSELFTEST FRAMEWORK
18*053f45beSAndroid Build Coastguard Worker=======================
19*053f45beSAndroid Build Coastguard Worker
20*053f45beSAndroid Build Coastguard WorkerBUILD
21*053f45beSAndroid Build Coastguard Worker-----
22*053f45beSAndroid Build Coastguard Worker
23*053f45beSAndroid Build Coastguard WorkerBuild executable file "resctrl_tests" from top level directory of the kernel source:
24*053f45beSAndroid Build Coastguard Worker $ make -C tools/testing/selftests TARGETS=resctrl
25*053f45beSAndroid Build Coastguard Worker
26*053f45beSAndroid Build Coastguard WorkerRUN
27*053f45beSAndroid Build Coastguard Worker---
28*053f45beSAndroid Build Coastguard Worker
29*053f45beSAndroid Build Coastguard WorkerRun resctrl_tests as sudo or root since the test needs to mount resctrl file
30*053f45beSAndroid Build Coastguard Workersystem and change contents in the file system.
31*053f45beSAndroid Build Coastguard WorkerUsing kselftest framework will run all supported tests within resctrl_tests:
32*053f45beSAndroid Build Coastguard Worker
33*053f45beSAndroid Build Coastguard Worker $ sudo make -C tools/testing/selftests TARGETS=resctrl run_tests
34*053f45beSAndroid Build Coastguard Worker
35*053f45beSAndroid Build Coastguard WorkerMore details about kselftest framework can be found in
36*053f45beSAndroid Build Coastguard WorkerDocumentation/dev-tools/kselftest.rst.
37*053f45beSAndroid Build Coastguard Worker
38*053f45beSAndroid Build Coastguard WorkerWITHOUT KSELFTEST FRAMEWORK
39*053f45beSAndroid Build Coastguard Worker===========================
40*053f45beSAndroid Build Coastguard Worker
41*053f45beSAndroid Build Coastguard WorkerBUILD
42*053f45beSAndroid Build Coastguard Worker-----
43*053f45beSAndroid Build Coastguard Worker
44*053f45beSAndroid Build Coastguard WorkerBuild executable file "resctrl_tests" from this directory(tools/testing/selftests/resctrl/):
45*053f45beSAndroid Build Coastguard Worker  $ make
46*053f45beSAndroid Build Coastguard Worker
47*053f45beSAndroid Build Coastguard WorkerRUN
48*053f45beSAndroid Build Coastguard Worker---
49*053f45beSAndroid Build Coastguard Worker
50*053f45beSAndroid Build Coastguard WorkerRun resctrl_tests as sudo or root since the test needs to mount resctrl file
51*053f45beSAndroid Build Coastguard Workersystem and change contents in the file system.
52*053f45beSAndroid Build Coastguard WorkerExecuting the test without any parameter will run all supported tests:
53*053f45beSAndroid Build Coastguard Worker
54*053f45beSAndroid Build Coastguard Worker $ sudo ./resctrl_tests
55*053f45beSAndroid Build Coastguard Worker
56*053f45beSAndroid Build Coastguard WorkerOVERVIEW OF EXECUTION
57*053f45beSAndroid Build Coastguard Worker=====================
58*053f45beSAndroid Build Coastguard Worker
59*053f45beSAndroid Build Coastguard WorkerA test case has four stages:
60*053f45beSAndroid Build Coastguard Worker
61*053f45beSAndroid Build Coastguard Worker  - setup: mount resctrl file system, create group, setup schemata, move test
62*053f45beSAndroid Build Coastguard Worker    process pids to tasks, start benchmark.
63*053f45beSAndroid Build Coastguard Worker  - execute: let benchmark run
64*053f45beSAndroid Build Coastguard Worker  - verify: get resctrl data and verify the data with another source, e.g.
65*053f45beSAndroid Build Coastguard Worker    perf event.
66*053f45beSAndroid Build Coastguard Worker  - teardown: umount resctrl and clear temporary files.
67*053f45beSAndroid Build Coastguard Worker
68*053f45beSAndroid Build Coastguard WorkerARGUMENTS
69*053f45beSAndroid Build Coastguard Worker=========
70*053f45beSAndroid Build Coastguard Worker
71*053f45beSAndroid Build Coastguard WorkerParameter '-h' shows usage information.
72*053f45beSAndroid Build Coastguard Worker
73*053f45beSAndroid Build Coastguard Workerusage: resctrl_tests [-h] [-b "benchmark_cmd [options]"] [-t test list] [-n no_of_bits]
74*053f45beSAndroid Build Coastguard Worker        -b benchmark_cmd [options]: run specified benchmark for MBM, MBA and CMT default benchmark is builtin fill_buf
75*053f45beSAndroid Build Coastguard Worker        -t test list: run tests specified in the test list, e.g. -t mbm,mba,cmt,cat
76*053f45beSAndroid Build Coastguard Worker        -n no_of_bits: run cache tests using specified no of bits in cache bit mask
77*053f45beSAndroid Build Coastguard Worker        -p cpu_no: specify CPU number to run the test. 1 is default
78*053f45beSAndroid Build Coastguard Worker        -h: help
79