summaryrefslogtreecommitdiffstats
path: root/main.cxx
diff options
context:
space:
mode:
authorguanglei <guanglei>2006-05-09 09:33:19 +0000
committerguanglei <guanglei>2006-05-09 09:33:19 +0000
commitf272aaccb24b64bf1baa1d70722e0608d654297f (patch)
tree0d26c047f15a0eba6eb7f636fa072a88d0350c77 /main.cxx
parent1533faf160b1456dd03865f117773abb823adc7a (diff)
downloadsystemtap-steved-f272aaccb24b64bf1baa1d70722e0608d654297f.tar.gz
systemtap-steved-f272aaccb24b64bf1baa1d70722e0608d654297f.tar.xz
systemtap-steved-f272aaccb24b64bf1baa1d70722e0608d654297f.zip
-M option to control to do merge or not for bulk mode
Diffstat (limited to 'main.cxx')
-rw-r--r--main.cxx20
1 files changed, 19 insertions, 1 deletions
diff --git a/main.cxx b/main.cxx
index ab13a516..95a1cfaa 100644
--- a/main.cxx
+++ b/main.cxx
@@ -67,6 +67,7 @@ usage (systemtap_session& s)
<< " -u unoptimized translation" << (s.unoptimized ? " [set]" : "") << endl
<< " -g guru mode" << (s.guru_mode ? " [set]" : "") << endl
<< " -b bulk (relayfs) mode" << (s.bulk_mode ? " [set]" : "") << endl
+ << " -M Don't merge per-cpu files for bulk (relayfs) mode" << (s.merge ? "" : " [set]") << endl
<< " -s NUM buffer size in megabytes, instead of "
<< s.buffer_size << endl
<< " -p NUM stop after pass NUM 1-5, instead of "
@@ -136,6 +137,7 @@ main (int argc, char * const argv [])
s.keep_tmpdir = false;
s.cmd = "";
s.target_pid = 0;
+ s.merge=true;
const char* s_p = getenv ("SYSTEMTAP_TAPSET");
if (s_p != NULL)
@@ -151,7 +153,7 @@ main (int argc, char * const argv [])
while (true)
{
- int grc = getopt (argc, argv, "hVvtp:I:e:o:R:r:m:kgc:x:D:bs:u");
+ int grc = getopt (argc, argv, "hVMvtp:I:e:o:R:r:m:kgc:x:D:bs:u");
if (grc < 0)
break;
switch (grc)
@@ -160,6 +162,10 @@ main (int argc, char * const argv [])
version ();
exit (0);
+ case 'M':
+ s.merge = false;
+ break;
+
case 'v':
s.verbose ++;
break;
@@ -247,6 +253,18 @@ main (int argc, char * const argv [])
}
}
+ if(!s.bulk_mode && !s.merge)
+ {
+ cerr << "-M option is valid only for bulk (relayfs) mode." <<endl;
+ exit(1);
+ }
+
+ if(!s.output_file.empty() && s.bulk_mode && !s.merge)
+ {
+ cerr << "You can't specify -M, -b and -o options together." <<endl;
+ exit(1);
+ }
+
for (int i = optind; i < argc; i++)
{
if (! have_script)