AUTHOR = "David Sharp <dhsharp@google.com>"
NAME = "Tracing microbenchmark"
TIME = "SHORT"
TEST_CATEGORY = "Benchmark"
TEST_CLASS = "Kernel"
TEST_TYPE = "client"

DOC = """
A simple benchmark of kernel tracers such as ftrace. Enables tracepoints in
sys_getuid and makes 100,000 calls to getuid with tracing on and off to measure
the overhead of enabling tracing. The intent for this benchmark is to not
overflow the ring buffer, so the buffer is generously sized.


tracer:  tracepoint enabled
------
off:     n/a
ftrace:  syscalls:sys_enter_getuid

Args:
  tracer: see table above.
  buffer_size_kb: Set the tracing ring buffer to this size (per-cpu).
  calls: Set the number of calls to make to getuid.
"""


job.run_test('tracing_microbenchmark', tracer='off', tag='off', iterations=10)
job.run_test('tracing_microbenchmark', tracer='ftrace', tag='ftrace', iterations=10)