Re: [ftrace] possible to implement user-space tracers?

From: Scotty Bauer
Date: Tue Aug 11 2015 - 15:12:13 EST


It is possible to trace from userland, Android does it.

Essentially you need to write your data into /sys/kernel/debug/tracing/trace_marker

then read it out of /sys/kernel/debug/tracing/trace


If you care how the implementation works you can read it in /kernel/tracing/trace.c (http://lxr.free-electrons.com/source/kernel/trace/trace.c) search for tracing_mark_fops and tracing_fops.


In Android here are the relevant files you will need to see how it's used in userland:
Atrace (for reading data out + setting things up):
https://android.googlesource.com/platform/frameworks/native/+/master/cmds/atrace/atrace.cpp
https://android.googlesource.com/platform/external/chromium-trace/+/master (host side setup of the device)

trace-dev (for writing data in):
https://android.googlesource.com/platform/system/core/+/master/libcutils/trace-dev.c

Once we have all the data we usually run it through trace-viewer, (https://github.com/catapult-project/catapult)

Cheers.


On 2015-08-11 06:53, Kun Huang wrote:
Hi ftrace developers

I'm developing a huge python based programs and facing performance
issue everyday. I like the ftrace system and hope there could be a
tracer to trace&report my python codes. Is it possible or is it
worthy
to do this?

---

Kun
--
To unsubscribe from this list: send the line "unsubscribe
linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[6]
Please read the FAQ at http://www.tux.org/lkml/ [7]

Links:
------
[1] http://lxr.free-electrons.com/source/kernel/trace/trace.c
[2]
https://android.googlesource.com/platform/frameworks/native/+/master/cmds/atrace/atrace.cpp
[3] https://android.googlesource.com/platform/external/chromium-trace/+/master
[4]
https://android.googlesource.com/platform/system/core/+/master/libcutils/trace-dev.c
[5] https://github.com/catapult-project/catapult
[6] http://vger.kernel.org/majordomo-info.html
[7] http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/