Skip to content
  • Steven Rostedt (Red Hat)'s avatar
    tracing: Add tracepoint benchmark tracepoint · 81dc9f0e
    Steven Rostedt (Red Hat) authored
    In order to help benchmark the time tracepoints take, a new config
    option is added called CONFIG_TRACEPOINT_BENCHMARK. When this option
    is set a tracepoint is created called "benchmark:benchmark_event".
    When the tracepoint is enabled, it kicks off a kernel thread that
    goes into an infinite loop (calling cond_sched() to let other tasks
    run), and calls the tracepoint. Each iteration will record the time
    it took to write to the tracepoint and the next iteration that
    data will be passed to the tracepoint itself. That is, the tracepoint
    will report the time it took to do the previous tracepoint.
    The string written to the tracepoint is a static string of 128 bytes
    to keep the time the same. The initial string is simply a write of
    "START". The second string records the cold cache time of the first
    write which is not added to the rest of the calculations.
    
    As it is a tight loop, it benchmarks as hot cache. That's fine because
    we care most about hot paths that are proba...
    81dc9f0e