-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRELEASES.txt
155 lines (109 loc) · 4.26 KB
/
RELEASES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
Version 0.4 (Dec 9 2013)
-------------------------
= Highlight changes from v0.3
* kernel symbol read (syntax: `symbol_name`)
* parse symbol on uprobe (need libelf link)
trace probe:/lib64/libc.so.6:malloc {}
trace probe:/lib64/libc.so.6:malloc%return {}
trace probe:/lib64/libc.so.6:* {} # trace all function in glibc
* support static marker(SDT)
trace sdt:/lib64/libc.so.6:setjmp {}
trace sdt:/lib64/libc.so.6:* {} # trace all sdt in glibc
* support kprobe wildcard
trace probe:vfs* {}
* support run multiple ktap instances concurrently
* add command option for list available events and symbols
-le [glob] : list pre-defined events in system
-lf DSO : list available functions from DSO
-lm DSO : list available sdt notes from DSO
* better annotation for output of argname
* basic FFI support (depend on CONFIG_KTAP_FFI)
FFI will allow call kernel function from ktap script
cdef [[ int printk(char *fmt, ...); ]]
C.printk("this is ffi printk from ktap\n")
(currently only support basic C types, structure support is ongoing)
* New sample scripts
userspace/malloc_size_hist.kp
userspace/malloc_free.kp
userspace/gcc_unwind.kp
userspace/glibc_sdt.kp #trace all static marker in glibc
userspace/glibc_trace.kp #trace all functions in glibc
userspace/glibc_func_hist.kp #show glibc functions in histogram
syscalls/syslatl.kp #syscall latency linear aggregation
syscalls/syslist.kp #syscall latency as a list with counts
syscalls/opensnoop.kp #trace open() syscalls and print basic details
ffi/ffi_kmalloc.kp
ffi/printk.kp
ffi/sched_clock.kp
* use amalgamation build as default
x86_64 build: ktap binary size is 98K, ktapvm.ko size is 983K
* Big cleanups and lots of bugfix
Version 0.3 (Oct 29 2013)
-------------------------
= Highlight changes from v0.2
* Homepage released: www.ktap.org
* Tutorial: http://www.ktap.org/doc/tutorial.html
* Wiki: https://github.com/ktap/ktap/wiki
* simple new tracing block syntax
trace EVENTDEF { action }
trace_end { action }
* New event tracing keywords: argevent, argname, arg1..arg9
trace "syscalls:*" function () {
print(argevent)
}
* New timer block syntax
tick-N { action }
profile-N { action }
* Basic aggregation support
It's similar with systemtap, use "<<<" operator
support aggregate function: count, sum, avg, max, min
* Introduce new "+=" operator
* Introduce sort_paris for table sort iteration
* New sample scripts
helloworld.kp
syscalls/sctop.kp
profiling/stack_profile.kp
io/traceio.kp
mem/kmalloc-top.kp
syscalls/errinfo.kp
schedule/schedtimes.kp
game/tetris.kp
* ansi library for sending ANSI escape sequences
* statistics of ktapvm
* Big cleanups and lots of bugfix
Version 0.2 (Jul 31 2013)
-------------------------
= Script highlight changes from v0.1
* new tracing block syntax
trace EVENTDEF function (e) { BODY }
trace_end function (e) { BODY }
* support trace filter
trace 'sched:sched_switch /prev_comm == foo || next_comm == foo/
* support kprobe/kretprobe
trace "probe:do_sys_open dfd=%di filename=%dx flags=%cx mode=+4($stack)"
trace "probe:do_sys_open%return fd=$retval"
* support uprobe/uretprobe
trace "probe:/lib/libc.so.6:0x000773c0"
trace "probe:/lib/libc.so.6:0x000773c0%return"
* support function tracing
trace "ftrace:function /ip == mutex*/"
* support oneline scripting
ktap -e 'trace "syscalls:*" function (e) { print(e) }'
* specific pid or cpu to tracing
ktap -C cpu *.kp
ktap -p pid *.kp
* more sample scripts
* support calling print_backtrace() in any context
* support calling exit() in any context
= Backend highlight changes from v0.1
* unified perf callback mechanism
* use ring buffer transport instead of relayfs
* reentrant in ktap tracing
* performance boost(use percpu data in many case)
* safe table/string manipulation
* safe ktap exit
* big code cleanups
* fixed a lot of bugs, more stable than v0.1
Version 0.1 (May 21 2013)
-------------------------
https://lwn.net/Articles/551253/