Skip to content

Commit

Permalink
Merge remote-tracking branch 'stefanha/tracing' into staging
Browse files Browse the repository at this point in the history
* stefanha/tracing:
  trace: Remove "info trace" from documents
  trace: document '-' syntax for disabling events
  trace: allow disabling events in events file
  Avoid all systemtap reserved words

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
  • Loading branch information
Anthony Liguori committed Nov 19, 2012
2 parents 698229e + e94c4c9 commit c562d15
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 18 deletions.
13 changes: 4 additions & 9 deletions docs/tracing.txt
Expand Up @@ -139,6 +139,10 @@ having a common prefix in a batch. For example, virtio-blk trace events could
be enabled using:
trace-event virtio_blk_* on

If a line in the "-trace events=<file>" file begins with a '-', the trace event
will be disabled instead of enabled. This is useful when a wildcard was used
to enable an entire family of events but one noisy event needs to be disabled.

== Trace backends ==

The "tracetool" script automates tedious trace event code generation and also
Expand Down Expand Up @@ -185,15 +189,6 @@ records the char* pointer value instead of the string that is pointed to.

==== Monitor commands ====

* info trace
Display the contents of trace buffer. This command dumps the trace buffer
with simple formatting. For full pretty-printing, use the simpletrace.py
script on a binary trace file.

The trace buffer is written into until full. The full trace buffer is
flushed and emptied. This means the 'info trace' will display few or no
entries if the buffer has just been flushed.

* trace-file on|off|flush|set <path>
Enable/disable/flush the trace file or set the trace file name.

Expand Down
7 changes: 0 additions & 7 deletions hmp-commands.hx
Expand Up @@ -1573,13 +1573,6 @@ show roms
@end table
ETEXI

#ifdef CONFIG_TRACE_SIMPLE
STEXI
@item info trace
show contents of trace buffer
ETEXI
#endif

STEXI
@item info trace-events
show available trace events and their state
Expand Down
11 changes: 10 additions & 1 deletion scripts/tracetool/backend/dtrace.py
Expand Up @@ -73,6 +73,15 @@ def d(events):
'};')


# Technically 'self' is not used by systemtap yet, but
# they recommended we keep it in the reserved list anyway
RESERVED_WORDS = (
'break', 'catch', 'continue', 'delete', 'else', 'for',
'foreach', 'function', 'global', 'if', 'in', 'limit',
'long', 'next', 'probe', 'return', 'self', 'string',
'try', 'while'
)

def stap(events):
for e in events:
# Define prototype for probe arguments
Expand All @@ -87,7 +96,7 @@ def stap(events):
if len(e.args) > 0:
for name in e.args.names():
# Append underscore to reserved keywords
if name in ('limit', 'in', 'next', 'self', 'function'):
if name in RESERVED_WORDS:
name += '_'
out(' %s = $arg%d;' % (name, i))
i += 1
Expand Down
9 changes: 8 additions & 1 deletion trace/control.c
Expand Up @@ -12,6 +12,8 @@

void trace_backend_init_events(const char *fname)
{
int ret;

if (fname == NULL) {
return;
}
Expand All @@ -30,7 +32,12 @@ void trace_backend_init_events(const char *fname)
if ('#' == line_buf[0]) { /* skip commented lines */
continue;
}
if (!trace_event_set_state(line_buf, true)) {
if ('-' == line_buf[0]) {
ret = trace_event_set_state(line_buf+1, false);
} else {
ret = trace_event_set_state(line_buf, true);
}
if (!ret) {
fprintf(stderr,
"error: trace event '%s' does not exist\n", line_buf);
exit(1);
Expand Down

0 comments on commit c562d15

Please sign in to comment.