tree: 21940b9856fcb5d514de3584155a060dd2959bde [path history] [tgz]
  1. meta/
  2. src/
  3. BUILD.gn
  4. README.md
  5. take_trace.sh
src/performance/trace_thread_stress/README.md

Trace Thread Stress

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.

Running the workload

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.

Configuring the workload

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.