diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2012-11-19 08:32:03 -0600 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2012-11-19 08:32:03 -0600 |
commit | c562d15d318e4ad9293032553472da71039a270f (patch) | |
tree | 90f67af2cabd386408bf071e1b44b876f423a857 | |
parent | 698229eb284ae29dcaae2c686cbf5dcf02f783ad (diff) | |
parent | e94c4c9287392e9c4de5e9cc3a0fa40da959ccb5 (diff) | |
download | qemu-c562d15d318e4ad9293032553472da71039a270f.zip qemu-c562d15d318e4ad9293032553472da71039a270f.tar.gz qemu-c562d15d318e4ad9293032553472da71039a270f.tar.bz2 |
Merge remote-tracking branch 'stefanha/tracing' into staging
* 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>
-rw-r--r-- | docs/tracing.txt | 13 | ||||
-rw-r--r-- | hmp-commands.hx | 7 | ||||
-rw-r--r-- | scripts/tracetool/backend/dtrace.py | 11 | ||||
-rw-r--r-- | trace/control.c | 9 |
4 files changed, 22 insertions, 18 deletions
diff --git a/docs/tracing.txt b/docs/tracing.txt index c541133..453cc4a 100644 --- a/docs/tracing.txt +++ b/docs/tracing.txt @@ -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 @@ -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. diff --git a/hmp-commands.hx b/hmp-commands.hx index b74ef75..010b8c9 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -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 diff --git a/scripts/tracetool/backend/dtrace.py b/scripts/tracetool/backend/dtrace.py index 6be7047..23c43e2 100644 --- a/scripts/tracetool/backend/dtrace.py +++ b/scripts/tracetool/backend/dtrace.py @@ -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 @@ -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 diff --git a/trace/control.c b/trace/control.c index 22d5863..be05efb 100644 --- a/trace/control.c +++ b/trace/control.c @@ -12,6 +12,8 @@ void trace_backend_init_events(const char *fname) { + int ret; + if (fname == NULL) { return; } @@ -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); |