[ktap] Re: Porting my systemtap-based tools to ktap

  • From: "zhangwei(Jovi)" <jovi.zhangwei@xxxxxxxxx>
  • To: ktap@xxxxxxxxxxxxx
  • Date: Fri, 27 Sep 2013 22:45:16 +0800

On 2013/9/27 2:43, Yichun Zhang (agentzh) wrote:
Hello guys!

The ktap project looks very interesting. And I'm wondering when we can
port most of our systemtap-based tools over to ktap. We've accumulated
quite a lot of tools for tracing various issues on various layers
(like Lua code level, LuaJIT VM level, Nginx core level, KyotoTyrant
level, kernel TCP level, kernel scheduler level, and etc) in
production:

     https://github.com/agentzh/nginx-systemtap-toolkit
     https://github.com/agentzh/stapxx/tree/master/samples

Basically we need the following features in ktap before starting the port:

* user space backtrace support (and also a way to get backtraces for
or above JITted code, as from PCRE JIT or LuaJIT).
* user space context variable and function argument manipulation
support (like systemtap's $var)
* uprobe points by symbol names instead of raw offsets
* accessing user process global variables in any context (like
systemtap's @var())
* support for manipulating arbitrarily complex C data structures (like
systemtap's $r->headers_in->headers syntax)
* better aggregation support
* a higher level macro system to make it possible to write
self-contained tools completely in the ktap language.

There may be some other missing bits. But these features will help us
go really really far ;)

Hi Yichun,

I'm very glad to hear you have interest on porting nginx-systemtap-toolkit
to ktap, it's good news for me.

I also appreciate you summarized above lacked features in ktap, obviously
ktap have big lack in userspace domain currently, the main technical
reason behind is I always hope ktap could use the debuginfo handling
code as perf(like perf-probe), if ktap would merged into mainline in
someday, then it's would be easy to integrate with perf, otherwise,
ktap need to implement debuginfo parse code in own way.
(I guess we will know the decision soon. :))

I already put these features list into ktap project todo list at wiki link:
https://github.com/ktap/ktap/wiki/todo

that todo list make me not forget things easily. :)
Thank you for putting these into table.

jovi.




Other related posts: