.\"                                      Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH FIO_GENERATE_PLOTS 1 "May 19, 2009"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh        disable hyphenation
.\" .hy        enable hyphenation
.\" .ad l      left justify
.\" .ad b      justify to both left and right margins
.\" .nf        disable filling
.\" .fi        enable filling
.\" .br        insert line break
.\" .sp <n>    insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
fio_generate_plots \- Generate plots for Flexible I/O Tester
.SH SYNOPSIS
.B fio_generate_plots
.RI " title"
.br
.SH DESCRIPTION
This manual page documents briefly the
.B fio_generate_plots
command. This manual page was written for the Debian distribution
because the original program does not have a manual page.
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
\fBfio_generate_plots\fP is a shell script that uses gnuplot to
generate plots from fio run with \-\-latency-log (\-l) and/or 
\-\-bandwidth-log (\-w). It expects the log files that fio
generated in the current directory.
.SH OPTIONS
The script takes the title of the plot as only argument. It does
not offer any additional options.
.SH AUTHOR
fio_generate_plots was written by Jens Axboe <jens.axboe@oracle.com>,
now Jens Axboe <jaxboe@fusionio.com>.
.PP
This manual page was written by Martin Steigerwald <ms@teamix.de>,
for the Debian project (but may be used by others).
