From f272aaccb24b64bf1baa1d70722e0608d654297f Mon Sep 17 00:00:00 2001 From: guanglei Date: Tue, 9 May 2006 09:33:19 +0000 Subject: -M option to control to do merge or not for bulk mode --- ChangeLog | 8 ++++++++ buildrun.cxx | 1 + main.cxx | 20 +++++++++++++++++++- session.h | 1 + stap.1.in | 4 ++++ 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 2436ef53..de5881cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ +2006-05-09 Li Guanglei + PR 2520 + * main.cxx: add -M option to stop merge per-cpu files in bulk mode + * session.h: add merge member into systemtap_session + * buildrun.cxx: generate stpd_cmd to stop merge per-cpu files if -M + option is turned on by stap. + 2006-05-09 Li Guanglei PR 2647 + Patch given by Gui Jian * runtime/vsprintf.c: %0s support to print null-terminated string 2006-05-08 Li Guanglei diff --git a/buildrun.cxx b/buildrun.cxx index f71af527..ab2b85f6 100644 --- a/buildrun.cxx +++ b/buildrun.cxx @@ -113,6 +113,7 @@ run_pass (systemtap_session& s) + string(PKGLIBDIR) + "/stpd " + (s.bulk_mode ? "" : "-r ") + (s.verbose>1 ? "" : "-q ") + + (s.merge ? "" : "-m ") + "-u " + username + " " + (s.output_file.empty() ? "" : "-o " + s.output_file + " "); 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." <