From 19cfaf3f4d8e53ce43cccd809676f8f2a40f0b34 Mon Sep 17 00:00:00 2001 From: "Alan D. Brunelle" Date: Mon, 12 Jan 2009 18:29:53 +0100 Subject: [PATCH] Added no messages option to blkparse.c Added a new option (-M, --no-msgs) option to blkparse: I have found that the CFQ I/O scheduler sends a *tremendous* amount of messages, that bloat the .bin file generated when using the -d option. The file sizes can shrink by >50% when using the -M option in those case. Signed-off-by: Alan D. Brunelle Signed-off-by: Jens Axboe --- blkparse.c | 20 +++++++++++++++++--- doc/blkparse.1 | 9 +++++++++ doc/blktrace.tex | 1 + 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/blkparse.c b/blkparse.c index d869da6..ef55697 100644 --- a/blkparse.c +++ b/blkparse.c @@ -104,7 +104,6 @@ static struct per_process_info *ppi_hash_table[PPI_HASH_SIZE]; static struct per_process_info *ppi_list; static int ppi_list_entries; -#define S_OPTS "a:A:b:D:d:f:F:hi:o:Oqstw:vV" static struct option l_opts[] = { { .name = "act-mask", @@ -160,6 +159,12 @@ static struct option l_opts[] = { .flag = NULL, .val = 'i' }, + { + .name = "no-msgs", + .has_arg = no_argument, + .flag = NULL, + .val = 'M' + }, { .name = "output", .has_arg = required_argument, @@ -270,6 +275,7 @@ static int ppi_hash_by_pid = 1; static int verbose; static unsigned int act_mask = -1U; static int stats_printed; +static int bin_output_msgs = 1; int data_is_native = -1; static FILE *dump_fp; @@ -1612,7 +1618,10 @@ static void dump_trace(struct blk_io_trace *t, struct per_cpu_info *pci, pdi->events++; - output_binary(t, sizeof(*t) + t->pdu_len); + if (bin_output_msgs || + !(t->action & BLK_TC_ACT(BLK_TC_NOTIFY) && + t->action == BLK_TN_MESSAGE)) + output_binary(t, sizeof(*t) + t->pdu_len); } /* @@ -2645,7 +2654,7 @@ static int is_pipe(const char *str) return 0; } -#define S_OPTS "a:A:b:D:d:f:F:hi:o:Oqstw:vV" +#define S_OPTS "a:A:b:D:d:f:F:hi:o:Oqstw:vVM" static char usage_str[] = "\n\n" \ "-i | --input=\n" \ "[ -a | --act-mask= ]\n" \ @@ -2662,6 +2671,7 @@ static char usage_str[] = "\n\n" \ "[ -s | --per-program-stats ]\n" \ "[ -t | --track-ios ]\n" \ "[ -w