summary refs log tree commit diff stats
path: root/trace/control.c
diff options
context:
space:
mode:
authorGerd Hoffmann <kraxel@redhat.com>2012-10-26 13:46:34 +0200
committerStefan Hajnoczi <stefanha@redhat.com>2012-11-16 13:12:13 +0100
commitddde8acc989d9e59b37605d438d5cb6b5ce8fbae (patch)
tree9bfd116fdf631efffbd510bebd770fe4ccb4cc5b /trace/control.c
parent81dee729c1a8fccaab8cd978721acca0282f43c9 (diff)
downloadfocaccia-qemu-ddde8acc989d9e59b37605d438d5cb6b5ce8fbae.tar.gz
focaccia-qemu-ddde8acc989d9e59b37605d438d5cb6b5ce8fbae.zip
trace: allow disabling events in events file
Disable trace events prefixed with a '-'.  Useful
to enable a group of tracepoints with exceptions,
like this:

  usb_xhci_port_*
  -usb_xhci_port_read

which will enable all xhci port tracepoints except reads.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'trace/control.c')
-rw-r--r--trace/control.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/trace/control.c b/trace/control.c
index 22d5863eeb..be05efb99b 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);