All of lore.kernel.org
 help / color / mirror / Atom feed
From: Erwan Velu <erwan@enovance.com>
To: fio@vger.kernel.org
Subject: [pull request] Updates for exec_string
Date: Wed, 17 Jul 2013 23:23:01 +0200	[thread overview]
Message-ID: <51E70B35.1080702@enovance.com> (raw)

The following changes since commit d1415111eebe7a95d8de1af1ec61e80f9d534552:

   genfio: Enforce time_based if runtime > 0 (2013-07-12 17:13:59 +0200)

are available in the git repository at:

   git@github.com:enovance/fio.git exec_string

for you to fetch changes up to ce4864950d2ced54e0a1ccb8ef9a1e62135f1d2d:

   backend: Logging exec_{pre|post}run (2013-07-17 23:16:31 +0200)

----------------------------------------------------------------
Erwan Velu (2):
       backend: Get rid of sh -c for exec_string
       backend: Logging exec_{pre|post}run

  backend.c | 11 ++++++-----
  fio.1     |  6 ++++++
  2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/backend.c b/backend.c
index 8d16fe2..b9c1c12 100644
--- a/backend.c
+++ b/backend.c
@@ -1086,14 +1086,15 @@ static int keep_running(struct thread_data *td)
      return 0;
  }

-static int exec_string(const char *string)
+static int exec_string(struct thread_options *o, const char *string, 
const char *mode)
  {
-    int ret, newlen = strlen(string) + 1 + 8;
+    int ret, newlen = strlen(string) + strlen(o->name) + strlen(mode) + 
9 + 1;
      char *str;

      str = malloc(newlen);
-    sprintf(str, "sh -c %s", string);
+    sprintf(str, "%s &> %s.%s.txt", string, o->name, mode);

+    log_info("%s : Saving output of %s in %s.%s.txt\n",o->name, mode, 
o->name, mode);
      ret = system(str);
      if (ret == -1)
          log_err("fio: exec of cmd <%s> failed\n", str);
@@ -1274,7 +1275,7 @@ static void *thread_main(void *data)
      if (init_random_map(td))
          goto err;

-    if (o->exec_prerun && exec_string(o->exec_prerun))
+    if (o->exec_prerun && exec_string(o, o->exec_prerun, (const char 
*)"prerun"))
          goto err;

      if (o->pre_read) {
@@ -1397,7 +1398,7 @@ static void *thread_main(void *data)

      fio_mutex_up(writeout_mutex);
      if (o->exec_postrun)
-        exec_string(o->exec_postrun);
+        exec_string(o, o->exec_postrun, (const char *)"postrun");

      if (exitall_on_terminate)
          fio_terminate_threads(td->groupid);
diff --git a/fio.1 b/fio.1
index 91020b2..91fd531 100644
--- a/fio.1
+++ b/fio.1
@@ -1061,9 +1061,15 @@ simulate a smaller amount of memory. The amount 
specified is per worker.
  .TP
  .BI exec_prerun \fR=\fPstr
  Before running the job, execute the specified command with 
\fBsystem\fR\|(3).
+.RS
+Output is redirected in a file called \fBjobname.prerun.txt\fR
+.RE
  .TP
  .BI exec_postrun \fR=\fPstr
  Same as \fBexec_prerun\fR, but the command is executed after the job 
completes.
+.RS
+Output is redirected in a file called \fBjobname.postrun.txt\fR
+.RE
  .TP
  .BI ioscheduler \fR=\fPstr
  Attempt to switch the device hosting the file to the specified I/O 
scheduler.


             reply	other threads:[~2013-07-17 21:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-17 21:23 Erwan Velu [this message]
2013-07-18 21:00 ` [pull request] Updates for exec_string Jens Axboe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51E70B35.1080702@enovance.com \
    --to=erwan@enovance.com \
    --cc=fio@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.