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