tools/testing/selftests/ftrace/test.d/remotes/trace_pipe.tc
Source file repositories/reference/linux-study-clean/tools/testing/selftests/ftrace/test.d/remotes/trace_pipe.tc
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/ftrace/test.d/remotes/trace_pipe.tc- Extension
.tc- Size
- 1974 bytes
- Lines
- 103
- 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
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# description: Test trace remote consuming read
# requires: remotes/test
. $TEST_DIR/remotes/functions
test_trace_pipe()
{
echo 0 > tracing_on
assert_unloaded
# Emit events from the same CPU
for cpu in $(get_cpu_ids); do
break
done
#
# Simple test: Emit enough events to fill few pages
#
echo 1024 > buffer_size_kb
echo 1 > tracing_on
assert_loaded
events_per_page=$(($(get_page_size) / $(get_selftest_event_size)))
nr_events=$(($events_per_page * 4))
output=$(mktemp $TMPDIR/remote_test.XXXXXX)
cat trace_pipe > $output &
pid=$!
for i in $(seq 1 $nr_events); do
taskset -c $cpu echo $i > write_event
done
echo 0 > tracing_on
sleep 1
kill $pid
check_trace 1 $nr_events $output
rm $output
#
# Test interaction with lost events
#
assert_unloaded
echo 7 > buffer_size_kb
echo 1 > tracing_on
assert_loaded
nr_events=$((events_per_page * 2))
for i in $(seq 1 $nr_events); do
taskset -c $cpu echo $i > write_event
done
output=$(dump_trace_pipe)
lost_events=$(sed -n -e '1s/CPU:.*\[LOST \([0-9]*\) EVENTS\]/\1/p' $output)
test -n "$lost_events"
id=$(sed -n -e '2s/\[[0-9]*\]\s*[0-9]*.[0-9]*: [a-z]* id=\([0-9]*\)/\1/p' $output)
test "$id" -eq $(($lost_events + 1))
# Drop [LOST EVENTS] line
sed -i '1d' $output
Annotation
- 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.