WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH 3/4] xentrace: Disable tracing by default on exit

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH 3/4] xentrace: Disable tracing by default on exit
From: George Dunlap <George.Dunlap@xxxxxxxxxxxxx>
Date: Mon, 25 Feb 2008 16:59:20 +0000
Delivery-date: Tue, 26 Feb 2008 03:32:27 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 1.5.0.12 (X11/20071019)

xentrace: Disable tracing by default on exit
Includes an option to disable this behavior.
Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

diff -r 0852863cb87e tools/xentrace/xentrace.c
--- a/tools/xentrace/xentrace.c Mon Feb 25 15:53:46 2008 +0000
+++ b/tools/xentrace/xentrace.c Mon Feb 25 15:57:59 2008 +0000
@@ -55,7 +55,8 @@ typedef struct settings_st {
     uint32_t cpu_mask;
     unsigned long tbuf_size;
     unsigned long disk_rsvd;
-    uint8_t discard:1;
+    uint8_t discard:1,
+        disable_tracing:1;
 } settings_t;
 
 settings_t opts;
@@ -156,6 +157,28 @@ void write_buffer(unsigned int cpu, unsi
  fail:
     PERROR("Failed to write trace data");
     exit(EXIT_FAILURE);
+}
+
+static void disable_tbufs(void)
+{
+    int xc_handle = xc_interface_open();
+    int ret;
+
+    if ( xc_handle < 0 ) 
+    {
+        perror("Couldn't open xc handle to disable tbufs.");
+        goto out;
+    }
+
+    ret = xc_tbuf_disable(xc_handle);
+
+    if ( ret != 0 )
+    {
+        perror("Couldn't disable trace buffers");
+    }
+
+out:
+    xc_interface_close(xc_handle);
 }
 
 static void get_tbufs(unsigned long *mfn, unsigned long *size)
@@ -465,6 +488,9 @@ int monitor_tbufs(int outfd)
         wait_for_event_or_timeout(opts.poll_sleep);
     }
 
+    if(opts.disable_tracing)
+        disable_tbufs();
+
     /* cleanup */
     free(meta);
     free(data);
@@ -503,6 +529,11 @@ void usage(void)
 "                          this argument will be ignored.\n" \
 "  -D  --discard-buffers   Discard all records currently in the trace\n" \
 "                          buffers before beginning.\n" \
+"  -x  --dont-disable-tracing\n" \
+"                          By default, xentrace will disable tracing when\n" \
+"                          it exits. Selecting this option will tell it to\n" \
+"                          keep tracing on.  Traces will be collected in\n" \
+"                          Xen's trace buffers until they become full.\n" \
 "  -?, --help              Show this message\n" \
 "  -V, --version           Print program version\n" \
 "\n" \
@@ -573,6 +604,7 @@ void parse_args(int argc, char **argv)
         { "trace-buf-size", required_argument, 0, 'S' },
         { "reserve-disk-space", required_argument, 0, 'r' },
         { "discard-buffers", no_argument,      0, 'D' },
+        { "dont-disable-tracing", no_argument, 0, 'x' },
         { "help",           no_argument,       0, '?' },
         { "version",        no_argument,       0, 'V' },
         { 0, 0, 0, 0 }
@@ -610,6 +642,10 @@ void parse_args(int argc, char **argv)
 
         case 'r': /* Disk-space reservation */
             opts.disk_rsvd = argtol(optarg, 0);
+            break;
+
+        case 'x': /* Don't disable tracing */
+            opts.disable_tracing = 0;
             break;
 
         default:
@@ -640,6 +676,7 @@ int main(int argc, char **argv)
     opts.evt_mask = 0;
     opts.cpu_mask = 0;
     opts.disk_rsvd = 0;
+    opts.disable_tracing = 1;
 
     parse_args(argc, argv);
 
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH 3/4] xentrace: Disable tracing by default on exit, George Dunlap <=