diff options
author | Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com> | 2011-02-04 07:52:05 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2011-02-07 06:18:11 -0500 |
commit | 1ff511e35ed87cc2ebade9e678e4a2fe39b6f9c5 (patch) | |
tree | b16cff475673db75aef773cc1118734a2172066a /Documentation/trace/kprobetrace.txt | |
parent | e3745369986ddcdaa19f70e2d24e658876b97e84 (diff) |
tracing/kprobes: Add bitfield type
Add bitfield type for tracing arguments on kprobe-tracer. The syntax of
a bitfield type is:
b<bit-size>@<bit-offset>/<container-size>
e.g.
Accessing 2 bits-width field with 4 bits-offset in 32 bits-width data at
4 bytes offseted from the address pointed by AX register:
+4(%ax):b2@4/32
Since the width of container data depends on the arch, so I just added
the container-size at the end.
Cc: 2nddept-manager@sdl.hitachi.co.jp
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <20110204125205.9507.11363.stgit@ltc236.sdl.hitachi.co.jp>
Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'Documentation/trace/kprobetrace.txt')
-rw-r--r-- | Documentation/trace/kprobetrace.txt | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Documentation/trace/kprobetrace.txt b/Documentation/trace/kprobetrace.txt index 5f77d94598dd..6d27ab8d6e9f 100644 --- a/Documentation/trace/kprobetrace.txt +++ b/Documentation/trace/kprobetrace.txt | |||
@@ -42,11 +42,25 @@ Synopsis of kprobe_events | |||
42 | +|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(**) | 42 | +|-offs(FETCHARG) : Fetch memory at FETCHARG +|- offs address.(**) |
43 | NAME=FETCHARG : Set NAME as the argument name of FETCHARG. | 43 | NAME=FETCHARG : Set NAME as the argument name of FETCHARG. |
44 | FETCHARG:TYPE : Set TYPE as the type of FETCHARG. Currently, basic types | 44 | FETCHARG:TYPE : Set TYPE as the type of FETCHARG. Currently, basic types |
45 | (u8/u16/u32/u64/s8/s16/s32/s64) and string are supported. | 45 | (u8/u16/u32/u64/s8/s16/s32/s64), "string" and bitfield |
46 | are supported. | ||
46 | 47 | ||
47 | (*) only for return probe. | 48 | (*) only for return probe. |
48 | (**) this is useful for fetching a field of data structures. | 49 | (**) this is useful for fetching a field of data structures. |
49 | 50 | ||
51 | Types | ||
52 | ----- | ||
53 | Several types are supported for fetch-args. Kprobe tracer will access memory | ||
54 | by given type. Prefix 's' and 'u' means those types are signed and unsigned | ||
55 | respectively. Traced arguments are shown in decimal (signed) or hex (unsigned). | ||
56 | String type is a special type, which fetches a "null-terminated" string from | ||
57 | kernel space. This means it will fail and store NULL if the string container | ||
58 | has been paged out. | ||
59 | Bitfield is another special type, which takes 3 parameters, bit-width, bit- | ||
60 | offset, and container-size (usually 32). The syntax is; | ||
61 | |||
62 | b<bit-width>@<bit-offset>/<container-size> | ||
63 | |||
50 | 64 | ||
51 | Per-Probe Event Filtering | 65 | Per-Probe Event Filtering |
52 | ------------------------- | 66 | ------------------------- |