'\" t .\" Title: perf-test .\" Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 09/04/2026 .\" Manual: perf Manual .\" Source: perf .\" Language: English .\" .TH "PERF\-TEST" "1" "09/04/2026" "perf" "perf Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" perf-test \- Runs sanity tests\&. .SH "SYNOPSIS" .sp .nf \fIperf test [] [{list |[|]}]\fR .fi .SH "DESCRIPTION" .sp This command does assorted sanity tests, initially through linked routines but also will look for a directory with more tests in the form of scripts\&. .sp To get a list of available tests use \fIperf test list\fR, specifying a test name fragment will show all tests that have it\&. .sp To run just specific tests, inform test name fragments or the numbers obtained from \fIperf test list\fR\&. .SH "OPTIONS" .PP \-s, \-\-skip .RS 4 Tests to skip (comma separated numeric list)\&. .RE .PP \-v, \-vv, \-vvv, \-\-verbose .RS 4 With a single \fI\-v\fR, verbose level 1, only failing test output is displayed\&. With \fI\-vv\fR and higher all test output is shown\&. .RE .PP \-S, \-\-sequential .RS 4 Run all tests one after the other\&. By default "exclusive" tests are run sequentially, but other tests are run in parallel to speed execution\&. .RE .PP \-r, \-\-runs\-per\-test .RS 4 Run each test the given number of times, by default once\&. This option can be useful to determine if a test is flaky\&. .RE .PP \-F, \-\-dont\-fork .RS 4 Do not fork child for each test, run all tests within single process, this sets sequential mode\&. .RE .PP \-\-dso .RS 4 Specify a DSO for the "Symbols" test\&. .RE .PP \-w, \-\-workload= .RS 4 Run a built\-in workload, to list them use \fI\-\-list\-workloads\fR, current ones include: noploop, thloop, leafloop, sqrtloop, brstack, datasym, context_switch_loop, deterministic, named_threads and landlock\&. .sp .if n \{\ .RS 4 .\} .nf Used with the shell script regression tests\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Some accept an extra parameter: .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf seconds: leafloop, noploop, sqrtloop, thloop nrloops: brstack, context_switch_loop .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf \*(Aqnamed_threads\*(Aq accepts the number of threads and the number of loops to do in each thread\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf The datasym, landlock and deterministic workloads don\*(Aqt accept any\&. .fi .if n \{\ .RE .\} .RE .PP \-\-list\-workloads .RS 4 List the available workloads to use with \-w/\-\-workload\&. .RE .PP \-\-record\-ctl=fifo:ctl\-fifo[,ack\-fifo] .RS 4 This option is used to communicate with a perf record session in order to control the recording scope to only the workload and avoid recording setup and teardown code\&. When specifying this option, the same FIFO path must be specified in the record session via: .sp .if n \{\ .RS 4 .\} .nf perf record \-D \-1 \-\-control=fifo:ctl\-fifo[,ack\-fifo] \&.\&.\&. .fi .if n \{\ .RE .\} .sp .if n \{\ .RS 4 .\} .nf Perf test sends \*(Aqenable\*(Aq and \*(Aqdisable\*(Aq commands through ctl\-fifo to control event recording\&. If \*(Aqack\-fifo\*(Aq is provided, the workload runner waits for an \*(Aqack\*(Aq response after each command\&. .fi .if n \{\ .RE .\} .RE