tools: Adding fiograph
authorErwan Velu <erwanaliasr1@gmail.com>
Wed, 16 Jun 2021 13:16:25 +0000 (15:16 +0200)
committerErwan Velu <erwanaliasr1@gmail.com>
Sun, 27 Jun 2021 21:15:24 +0000 (23:15 +0200)
commitd61215e076fe3b51c0ed92dd985101b84bbcd757
treef4b9ce81549c3a2e0d4e32a5365bd72dc66c7805
parentd3dacdc61dfe878fda0c363084c4330492e38b2b
tools: Adding fiograph

This tool generates graphviz graphs of any fio job file.

Reading a fio file can be sometimes tricky when :
  - you have lots of jobs
  - jobs override some options
  - jobs have dependencies

Understanding which jobs are running at the same time, which one waits
for which is sometimes difficult and could easily lead to mistakes.
It's pretty common to find jobs where people think jobs are sequential
while some run in parallel.

For ease the understanding of the scheduling and what's the
configuration status (local + global variables), this tool will use some
graphical helpers to enlighten things.

The configuration file can be used to adjust the rendering but by default :
  - jobs are defined in a blue rounded box
  - jobs running at the same time are inside the same gray background
  - time & size variables are shown as a self arrow
  - dependencies between jobs are shown by up->down black arrows
  - specific engines options are written in blue (top of the job box)
  - standard options are printed in green (bottom of the job box)
  - pre/post actions are printed in red (head/tail of the job box)
  - numjobs is replaced by a 'x' multiplicator on the job name

Several output formats can be defined via --format : list can be found
here https://graphviz.org/docs/outputs/

if --view option is used, the rendered file will be immediately shown.

if --keep is used, the grapvhiz file will be kept.

This commit also adds the rendering of the examples jobs.
If a newcomer gets into the repository, they can immediately better
understand what the jobs do.

Signed-off-by: Erwan Velu <erwanaliasr1@gmail.com>
76 files changed:
examples/1mbs_clients.png [new file with mode: 0644]
examples/aio-read.png [new file with mode: 0644]
examples/backwards-read.png [new file with mode: 0644]
examples/basic-verify.png [new file with mode: 0644]
examples/butterfly.png [new file with mode: 0644]
examples/cpp_null.png [new file with mode: 0644]
examples/cpuio.png [new file with mode: 0644]
examples/cross-stripe-verify.png [new file with mode: 0644]
examples/dev-dax.png [new file with mode: 0644]
examples/dfs.png [new file with mode: 0644]
examples/disk-zone-profile.png [new file with mode: 0644]
examples/e4defrag.png [new file with mode: 0644]
examples/e4defrag2.png [new file with mode: 0644]
examples/enospc-pressure.png [new file with mode: 0644]
examples/exitwhat.png [new file with mode: 0644]
examples/falloc.png [new file with mode: 0644]
examples/filecreate-ioengine.png [new file with mode: 0644]
examples/filedelete-ioengine.png [new file with mode: 0644]
examples/filestat-ioengine.png [new file with mode: 0644]
examples/fio-rand-RW.png [new file with mode: 0644]
examples/fio-rand-read.png [new file with mode: 0644]
examples/fio-rand-write.png [new file with mode: 0644]
examples/fio-seq-RW.png [new file with mode: 0644]
examples/fio-seq-read.png [new file with mode: 0644]
examples/fio-seq-write.png [new file with mode: 0644]
examples/fixed-rate-submission.png [new file with mode: 0644]
examples/flow.png [new file with mode: 0644]
examples/fsx.png [new file with mode: 0644]
examples/ftruncate.png [new file with mode: 0644]
examples/gfapi.png [new file with mode: 0644]
examples/gpudirect-rdmaio-client.png [new file with mode: 0644]
examples/gpudirect-rdmaio-server.png [new file with mode: 0644]
examples/http-s3.png [new file with mode: 0644]
examples/http-swift.png [new file with mode: 0644]
examples/http-webdav.png [new file with mode: 0644]
examples/ime.png [new file with mode: 0644]
examples/iometer-file-access-server.png [new file with mode: 0644]
examples/jesd219.png [new file with mode: 0644]
examples/latency-profile.png [new file with mode: 0644]
examples/libcufile-cufile.png [new file with mode: 0644]
examples/libcufile-posix.png [new file with mode: 0644]
examples/libhdfs.png [new file with mode: 0644]
examples/libiscsi.png [new file with mode: 0644]
examples/libpmem.png [new file with mode: 0644]
examples/librpma_apm-client.png [new file with mode: 0644]
examples/librpma_apm-server.png [new file with mode: 0644]
examples/librpma_gpspm-client.png [new file with mode: 0644]
examples/librpma_gpspm-server.png [new file with mode: 0644]
examples/libzbc-rand-write.png [new file with mode: 0644]
examples/libzbc-seq-read.png [new file with mode: 0644]
examples/mtd.png [new file with mode: 0644]
examples/nbd.png [new file with mode: 0644]
examples/netio.png [new file with mode: 0644]
examples/netio_multicast.png [new file with mode: 0644]
examples/nfs.png [new file with mode: 0644]
examples/null.png [new file with mode: 0644]
examples/numa.png [new file with mode: 0644]
examples/pmemblk.png [new file with mode: 0644]
examples/poisson-rate-submission.png [new file with mode: 0644]
examples/rados.png [new file with mode: 0644]
examples/rand-zones.png [new file with mode: 0644]
examples/rbd.png [new file with mode: 0644]
examples/rdmaio-client.png [new file with mode: 0644]
examples/rdmaio-server.png [new file with mode: 0644]
examples/ssd-steadystate.png [new file with mode: 0644]
examples/ssd-test.png [new file with mode: 0644]
examples/steadystate.png [new file with mode: 0644]
examples/surface-scan.png [new file with mode: 0644]
examples/test.png [new file with mode: 0644]
examples/tiobench-example.png [new file with mode: 0644]
examples/waitfor.png [new file with mode: 0644]
examples/zbd-rand-write.png [new file with mode: 0644]
examples/zbd-seq-read.png [new file with mode: 0644]
examples/zipf.png [new file with mode: 0644]
tools/fiograph/fiograph.conf [new file with mode: 0644]
tools/fiograph/fiograph.py [new file with mode: 0755]