-A Give the trace mask directly as a number.
- -v Print program version info.
-b Sub buffer size in KiB.
-n Number of sub buffers.
+ -V Print program version info.
$ blkparse -i <input> [ -o <output> ] [ -b rb_batch ] [ -s ] [ -t ] [ -q ]
[ -w start:stop ] [ -f output format ] [ -F format spec ]
W - Bounce
X - Split
- -m Print missing entries.
- -v Print program version info.
+ -v More verbose for marginal errors.
+ -V Print program version info.
$ verify_blkparse filename
static struct per_process_info *ppi_list;
static int ppi_list_entries;
-#define S_OPTS "a:A:i:o:b:stqw:f:F:vnmD:"
+#define S_OPTS "a:A:i:o:b:stqw:f:F:vVnD:"
static struct option l_opts[] = {
{
.name = "act-mask",
.val = 'n'
},
{
- .name = "missing",
+ .name = "verbose",
.has_arg = no_argument,
.flag = NULL,
- .val = 'm'
+ .val = 'v'
},
{
.name = "version",
.has_arg = no_argument,
.flag = NULL,
- .val = 'v'
+ .val = 'V'
},
{
.name = "input-directory",
static int per_process_stats;
static int track_ios;
static int ppi_hash_by_pid = 1;
-static int print_missing;
+static int verbose;
static unsigned int act_mask = -1U;
static unsigned int t_alloc_cache;
iot = __find_track(pdi, t->sector + t_sec(t));
if (!iot) {
- fprintf(stderr, "merge not found for (%d,%d): %llu\n",
- MAJOR(pdi->dev), MINOR(pdi->dev),
- (unsigned long long) t->sector + t_sec(t));
+ if (verbose)
+ fprintf(stderr, "merge not found for (%d,%d): %llu\n",
+ MAJOR(pdi->dev), MINOR(pdi->dev),
+ (unsigned long long) t->sector + t_sec(t));
return;
}
iot = __find_track(pdi, t->sector);
if (!iot) {
- fprintf(stderr, "issue not found for (%d,%d): %llu\n",
- MAJOR(pdi->dev), MINOR(pdi->dev),
- (unsigned long long) t->sector);
+ if (verbose)
+ fprintf(stderr, "issue not found for (%d,%d): %llu\n",
+ MAJOR(pdi->dev), MINOR(pdi->dev),
+ (unsigned long long) t->sector);
return -1;
}
iot = __find_track(pdi, t->sector);
if (!iot) {
- fprintf(stderr, "complete not found for (%d,%d): %llu\n",
- MAJOR(pdi->dev), MINOR(pdi->dev),
- (unsigned long long) t->sector);
+ if (verbose)
+ fprintf(stderr,"complete not found for (%d,%d): %llu\n",
+ MAJOR(pdi->dev), MINOR(pdi->dev),
+ (unsigned long long) t->sector);
return -1;
}
return 1;
} else {
skip:
- if (print_missing) {
+ if (verbose) {
fprintf(stderr, "(%d,%d): skipping %lu -> %u\n",
MAJOR(pdi->dev), MINOR(pdi->dev),
pdi->last_sequence, bit->sequence);
"\t -f Output format. Customize the output format. The format field\n" \
"\t identifies can be found in the documentation\n" \
"\t-F Format specification. Can be found in the documentation\n" \
- "\t-m Print missing entries\n" \
- "\t-v Print program version info\n\n";
+ "\t-v More verbose for marginal errors\n" \
+ "\t-V Print program version info\n\n";
static void usage(char *prog)
{
case 'n':
ppi_hash_by_pid = 0;
break;
- case 'm':
- print_missing = 1;
- break;
case 'v':
+ verbose++;
+ break;
+ case 'V':
printf("%s version %s\n", argv[0], blkparse_version);
return 0;
default:
-n \emph{num-sub} & --num-sub=\emph{num-sub} & Specifies number of buffers to use \\ \hline
-o \emph{file} & --output=\emph{file} & Prepend \emph{file} to output file name(s) \\ \hline
-r \emph{rel-path} & --relay=\emph{rel-path} & Specifies RelayFS mount point \\ \hline
--v & --version & Outputs version \\ \hline
+-V & --version & Outputs version \\ \hline
-w \emph{seconds} & --stopwatch=\emph{seconds} & Sets run time to the number of seconds specified \\ \hline
\end{tabular}
& & \emph{start:end-time} -- Display traces from time \emph{start} \\
& & through {end-time} (in ns). \\ \hline
--v & --version & Display version \\ \hline
+-v & --verbose & More verbose marginal on marginal errors \\ \hline
+-V & --version & Display version \\ \hline
\end{tabular}