A program to stress the tracing system with a large number of threads under one process. This aims to help uncover race conditions within the tracing system.
Include the component in your build:
fx set ... --with //src/performance/trace_thread_stress
Then run the workload:
ffx component run core/trace_manager/workloads:thread_stress fuchsia-pkg://fuchsia.com/trace_thread_stress#meta/trace_thread_stress.cm
This directory also contains take_trace.sh
which will start a trace in streaming mode before running the workload, which is convenient when trying out changes to the tracing system.
The workload takes three parameters via structured config:
thread_count
The number of threads to generate trace data from. Defaults to 100.duration_ms
The length of time to run the workload. Defaults to 10000 (10 seconds).interval_ms
The time each thread waits between writing trace events. Defaults to 10.These can be set in the ffx component run
command, for example
ffx component run core/trace_manager/workloads:thread_stress fuchsia-pkg://fuchsia.com/trace_thread_stress#meta/trace_thread_stress.cm --config "thread_count=10"
will run the workload with only 10 threads instead of 100.