[Sheepdog] [PATCH v3] Add a ftrace-like trace utility
namei.unix at gmail.com
Thu Mar 1 03:38:44 CET 2012
On 03/01/2012 10:20 AM, Liu Yuan wrote:
> - fix trace_lookup_ip()
> - fix main thread ring buffer init
> - fix pop_return_trace()
> - use ring buffer for trace output
> - add a cat operation for collie
> This patch set aims to provide a ftrace-like trace utility for performance tuning
> of online system in production environment. This means virtually no overhead when
> disabled, rather low even enabled.
> Currently 'graph' tracer is implemented, accounting CPU usage at funciton granularity.
> The patch set achieves this by dynamically patching the binary code at runtime, making
> use of GCC -pg instrumentation features, which instrument a 5-bytes opcode in every function.
> When the trace is
> turned off, the opcode is patched as NOP opcode.
> turned on, the opcode is a call opcode to our trace functions and we can hook callbacks both for
> function entry and exit. This is how the patch atually calculate the time spent by function.
> The underlying infrastructure is quite modular, I hope we can implement other tracers that considered useful
How is my patch that remove the coroutine usage? Is there any problem?
Currently, trace can't work with coroutine.
More information about the sheepdog