tools/testing/selftests/rseq/run_param_test.sh
Source file repositories/reference/linux-study-clean/tools/testing/selftests/rseq/run_param_test.sh
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/rseq/run_param_test.sh- Extension
.sh- Size
- 3151 bytes
- Lines
- 171
- Domain
- Support Tooling And Documentation
- Bucket
- tools
- Inferred role
- Support Tooling And Documentation: tools
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
function do_testsfunction inject_blocking
Annotated Snippet
#!/bin/bash
# SPDX-License-Identifier: GPL-2.0+ or MIT
NR_CPUS=`grep '^processor' /proc/cpuinfo | wc -l`
EXTRA_ARGS=${@}
OLDIFS="$IFS"
IFS=$'\n'
TEST_LIST=(
"-T s"
"-T l"
"-T b"
"-T b -M"
"-T m"
"-T m -M"
"-T i"
"-T r"
)
TEST_NAME=(
"spinlock"
"list"
"buffer"
"buffer with barrier"
"memcpy"
"memcpy with barrier"
"increment"
"membarrier"
)
IFS="$OLDIFS"
REPS=1000
SLOW_REPS=100
NR_THREADS=$((6*${NR_CPUS}))
# Prevent GLIBC from registering RSEQ so the selftest can run in legacy and
# performance optimized mode.
GLIBC_TUNABLES="${GLIBC_TUNABLES:-}:glibc.pthread.rseq=0"
export GLIBC_TUNABLES
function do_tests()
{
local i=0
while [ "$i" -lt "${#TEST_LIST[@]}" ]; do
echo "Running test ${TEST_NAME[$i]}"
./param_test ${TEST_LIST[$i]} -r ${REPS} -t ${NR_THREADS} ${@} ${EXTRA_ARGS} || exit 1
echo "Running compare-twice test ${TEST_NAME[$i]}"
./param_test_compare_twice ${TEST_LIST[$i]} -r ${REPS} -t ${NR_THREADS} ${@} ${EXTRA_ARGS} || exit 1
echo "Running mm_cid test ${TEST_NAME[$i]}"
./param_test_mm_cid ${TEST_LIST[$i]} -r ${REPS} -t ${NR_THREADS} ${@} ${EXTRA_ARGS} || exit 1
echo "Running mm_cid compare-twice test ${TEST_NAME[$i]}"
./param_test_mm_cid_compare_twice ${TEST_LIST[$i]} -r ${REPS} -t ${NR_THREADS} ${@} ${EXTRA_ARGS} || exit 1
let "i++"
done
}
echo "Default parameters"
do_tests
echo "Loop injection: 10000 loops"
OLDIFS="$IFS"
IFS=$'\n'
INJECT_LIST=(
"1"
"2"
"3"
"4"
Annotation
- Detected declarations: `function do_tests`, `function inject_blocking`.
- Atlas domain: Support Tooling And Documentation / tools.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.