fio.git
12 years agogfio: add per-job option view
Jens Axboe [Sat, 24 Mar 2012 19:22:29 +0000 (20:22 +0100)]
gfio: add per-job option view

The option view is now a master notebook of jobs that got added
from a given job file, with each tab holding a new notebook
with tabs for the options.

This is pretty slow for big jobs. Adding eg the 1mbs-clients.fio
example job file shows this nicely, since it contains 32 jobs.
Will need to look into how to speed this up.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: start of per-job option edit
Jens Axboe [Sat, 24 Mar 2012 07:56:50 +0000 (08:56 +0100)]
gfio: start of per-job option edit

Currently we don't properly handle job files with multiple
job entries in them, each one just overwrites the last.
Start tracking all of them.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoclient: use eta msec as the poll interval
Jens Axboe [Fri, 23 Mar 2012 12:19:31 +0000 (13:19 +0100)]
client: use eta msec as the poll interval

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoserver: idle a bit more of we are not expecting work
Jens Axboe [Fri, 23 Mar 2012 11:25:18 +0000 (12:25 +0100)]
server: idle a bit more of we are not expecting work

Don't wakeup every 100msec if we are not expecting an event
that wont already wakes up poll() automatically.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: improve and remember font selection
Jens Axboe [Fri, 23 Mar 2012 09:52:25 +0000 (10:52 +0100)]
gfio: improve and remember font selection

Redraw/expose doesn't quite work yet, though.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: indentation fixup
Jens Axboe [Fri, 23 Mar 2012 07:18:57 +0000 (08:18 +0100)]
graph: indentation fixup

Use tabs, not spaces.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoFix reversal of IOPS and BW graphs
Jens Axboe [Fri, 23 Mar 2012 07:15:46 +0000 (08:15 +0100)]
Fix reversal of IOPS and BW graphs

Commit 8dfd6071 inadvertently mixed them up, restore original
behaviour.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: make completion percentiles graphs expand to window width
Stephen M. Cameron [Fri, 23 Mar 2012 06:49:05 +0000 (07:49 +0100)]
gfio: make completion percentiles graphs expand to window width

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: make completion percentiles boxes expand to container width
Stephen M. Cameron [Fri, 23 Mar 2012 06:49:02 +0000 (07:49 +0100)]
gfio: make completion percentiles boxes expand to container width

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: make io depths expand to window width
Stephen M. Cameron [Fri, 23 Mar 2012 06:48:52 +0000 (07:48 +0100)]
gfio: make io depths expand to window width

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: make latency buckets expand to window width
Stephen M. Cameron [Fri, 23 Mar 2012 06:48:37 +0000 (07:48 +0100)]
gfio: make latency buckets expand to window width

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: return opaque graph_label_t for each label added
Jens Axboe [Thu, 22 Mar 2012 21:10:37 +0000 (22:10 +0100)]
graph: return opaque graph_label_t for each label added

Gets rid of the strcmp() lookup, store the graph label locally
instead and just pass that in.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: leave notebook entry as the file name
Jens Axboe [Thu, 22 Mar 2012 20:42:55 +0000 (21:42 +0100)]
gfio: leave notebook entry as the file name

We have the job name(s) in the combo box already, it's nicer to
just leave the tab as the filename.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoFixes for 32-bit compile
Jens Axboe [Thu, 22 Mar 2012 20:31:00 +0000 (21:31 +0100)]
Fixes for 32-bit compile

- uint32/64 casting
- Real bug fix in types[] index beyond length.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: hide graph if all values are zero
Jens Axboe [Thu, 22 Mar 2012 20:21:00 +0000 (21:21 +0100)]
gfio: hide graph if all values are zero

If all visible data points in a label are zero, don't display it
and don't show tooltips.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: fix finding tooltips from label 1+
Jens Axboe [Thu, 22 Mar 2012 19:48:02 +0000 (20:48 +0100)]
graph: fix finding tooltips from label 1+

Only break if we actually found a tooltip, not unconditionally.
Cleanups.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: fix missing else
Jens Axboe [Thu, 22 Mar 2012 08:33:33 +0000 (09:33 +0100)]
graph: fix missing else

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: prio tree alias handling
Jens Axboe [Thu, 22 Mar 2012 08:24:05 +0000 (09:24 +0100)]
graph: prio tree alias handling

Store aliases in a list off the prio node.

Switch graph internals to use flist, instead of home brew list.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoMake fio include the git version in the version output
Jens Axboe [Wed, 21 Mar 2012 21:25:22 +0000 (22:25 +0100)]
Make fio include the git version in the version output

Makes it easier in bug reporting, don't have to ask people what
they are running...

Here's to you, Kep.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: remove unnecessary float multiplier
Jens Axboe [Wed, 21 Mar 2012 21:00:43 +0000 (22:00 +0100)]
graph: remove unnecessary float multiplier

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: yet one tooltip tweaking
Jens Axboe [Wed, 21 Mar 2012 20:55:21 +0000 (21:55 +0100)]
graph: yet one tooltip tweaking

Don't use a percentage of the data value as the check point, that
makes it increasingly difficult to pin point a tooltip for a graph
that is near the bottom end of the range. Instead use a fixed
percentage of the first tickmark, that makes it equally fair
across the range.

Also switch to using the X axis as the prio tree index, since that
should be increasing nicely all the time.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: bump prio end value by ytick delta, if all zeroes
Jens Axboe [Wed, 21 Mar 2012 19:20:35 +0000 (20:20 +0100)]
graph: bump prio end value by ytick delta, if all zeroes

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: cleanup tooltip alias handling
Jens Axboe [Wed, 21 Mar 2012 18:53:32 +0000 (19:53 +0100)]
graph: cleanup tooltip alias handling

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: fix crash on alias in prio tree
Jens Axboe [Wed, 21 Mar 2012 18:48:32 +0000 (19:48 +0100)]
graph: fix crash on alias in prio tree

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: clear prio root iter on extra loop
Jens Axboe [Wed, 21 Mar 2012 18:33:32 +0000 (19:33 +0100)]
graph: clear prio root iter on extra loop

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: fix for unitialized graph_value nodes
Jens Axboe [Wed, 21 Mar 2012 17:54:30 +0000 (18:54 +0100)]
graph: fix for unitialized graph_value nodes

And leaking tooltip/node on free.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: remove debug printf
Jens Axboe [Wed, 21 Mar 2012 16:18:46 +0000 (17:18 +0100)]
graph: remove debug printf

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: switch tooltip lookups to being range based in a prio tree
Jens Axboe [Wed, 21 Mar 2012 16:17:45 +0000 (17:17 +0100)]
graph: switch tooltip lookups to being range based in a prio tree

This cuts a lot of the CPU usage from browsing bigger graphs. Even
the normal graphs are typically cut in half.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoMove rbtree into lib/
Jens Axboe [Wed, 21 Mar 2012 13:07:11 +0000 (14:07 +0100)]
Move rbtree into lib/

And make ARRAY_SIZE() generally available, also outside gfio.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: stop matching tooltips if X diff is too large
Jens Axboe [Wed, 21 Mar 2012 12:36:46 +0000 (13:36 +0100)]
graph: stop matching tooltips if X diff is too large

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: set notebook label to base filename
Jens Axboe [Wed, 21 Mar 2012 11:55:49 +0000 (12:55 +0100)]
gfio: set notebook label to base filename

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: use glib hash for tab lookup
Jens Axboe [Wed, 21 Mar 2012 11:48:32 +0000 (12:48 +0100)]
gfio: use glib hash for tab lookup

Not really a CPU saver, but it reduces the amount of code we have
to maintain by getting rid of the list lookup.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: fix gc leak
Jens Axboe [Wed, 21 Mar 2012 11:02:13 +0000 (12:02 +0100)]
gfio: fix gc leak

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: fixup spurious editor indent
Jens Axboe [Wed, 21 Mar 2012 10:59:18 +0000 (11:59 +0100)]
gfio: fixup spurious editor indent

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: split some parts into gclient.c
Jens Axboe [Wed, 21 Mar 2012 10:13:31 +0000 (11:13 +0100)]
gfio: split some parts into gclient.c

We'll probably want to split gclient.c into op code handling and
results display/view.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: add gerror.c for reporting errors
Jens Axboe [Wed, 21 Mar 2012 09:25:29 +0000 (10:25 +0100)]
gfio: add gerror.c for reporting errors

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: update for handling files, connections, states
Jens Axboe [Wed, 21 Mar 2012 09:15:20 +0000 (10:15 +0100)]
gfio: update for handling files, connections, states

Big update, changes:

- Notify from client helpers when a client is removed. This helps
  gfio track this.

- Make the connection states more bullet proof. You can now connect
  and disconnect, and expect connect to work again.

- Limit number of files opened through file selection or drag'n drop
  to just 1.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoclient: don't leak file descriptor on exit
Jens Axboe [Tue, 20 Mar 2012 14:15:00 +0000 (15:15 +0100)]
client: don't leak file descriptor on exit

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoserver: use passed in sk in send functions
Jens Axboe [Tue, 20 Mar 2012 13:35:35 +0000 (14:35 +0100)]
server: use passed in sk in send functions

It's not always server_fd, for client communication it's the
client fd.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: lessen use of main_ui directly
Jens Axboe [Tue, 20 Mar 2012 11:25:36 +0000 (12:25 +0100)]
gfio: lessen use of main_ui directly

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogoptions: remember to mark option index for FIO_OPT_STR_VAL
Jens Axboe [Tue, 20 Mar 2012 11:09:13 +0000 (12:09 +0100)]
goptions: remember to mark option index for FIO_OPT_STR_VAL

Fixes hiding of these options.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogoptions: use glib n-ary tree for option dependencies
Jens Axboe [Tue, 20 Mar 2012 10:29:09 +0000 (11:29 +0100)]
goptions: use glib n-ary tree for option dependencies

We didn't support looking up children of children before, since
it would just be too costly (making the whole 'visible' thing
be N!). Move to a glib n-ary tree for option dependencies, this
is a lot cleaner and faster.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogoptions: enable combo box hiding
Jens Axboe [Tue, 20 Mar 2012 09:29:45 +0000 (10:29 +0100)]
goptions: enable combo box hiding

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agooptions: add ->hide_on_set
Jens Axboe [Tue, 20 Mar 2012 09:19:44 +0000 (10:19 +0100)]
options: add ->hide_on_set

Normally we hide children if the parent isn't set, but for some
options it's the other way around.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogoptions: don't emit change signals during setup
Jens Axboe [Tue, 20 Mar 2012 09:05:38 +0000 (10:05 +0100)]
goptions: don't emit change signals during setup

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogoptions: ensure that FIO_OPT_STR_VAL doesn't exceed max multiplier
Jens Axboe [Tue, 20 Mar 2012 08:49:49 +0000 (09:49 +0100)]
goptions: ensure that FIO_OPT_STR_VAL doesn't exceed max multiplier

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogoptions: better support for FIO_OPT_STR_VAL
Jens Axboe [Tue, 20 Mar 2012 08:32:35 +0000 (09:32 +0100)]
goptions: better support for FIO_OPT_STR_VAL

Split the value into two components, an integer 0-1023 value
and a combo box with a b/kb/gb/tb/etc multiplier.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogoptions: free opt types on exit from edit options view
Jens Axboe [Tue, 20 Mar 2012 07:31:29 +0000 (08:31 +0100)]
goptions: free opt types on exit from edit options view

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: kill ge on widget destroy
Jens Axboe [Tue, 20 Mar 2012 07:20:48 +0000 (08:20 +0100)]
gfio: kill ge on widget destroy

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoMerge branch 'gfio' of ssh://brick.kernel.dk/data/git/fio into gfio
Jens Axboe [Tue, 20 Mar 2012 07:11:47 +0000 (08:11 +0100)]
Merge branch 'gfio' of ssh://brick.kernel.dk/data/git/fio into gfio

12 years agogfio: fix crash on exit
Stephen M. Cameron [Tue, 20 Mar 2012 06:11:26 +0000 (07:11 +0100)]
gfio: fix crash on exit

Pass in correct data pointer.

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: clear stale widget pointers on dialog destruction
Stephen M. Cameron [Tue, 20 Mar 2012 06:10:47 +0000 (07:10 +0100)]
gfio: clear stale widget pointers on dialog destruction

gopt_widgets and gopt_g_widgets arrays need to be cleared when
the job editing dialog widget tree is destroyed, otherwise you
get a crash or weird behavior if you attempt to edit a job more
than once.

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogoptions: block gtk signal handlers instead of hacking around them
Jens Axboe [Mon, 19 Mar 2012 21:01:20 +0000 (22:01 +0100)]
goptions: block gtk signal handlers instead of hacking around them

Turns out g_signal_handler_{block,unblock} exists and do exactly
what we need. Use them.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agocpu: move cpuload/cpuchunks options into private engine option space
Jens Axboe [Mon, 19 Mar 2012 20:45:12 +0000 (21:45 +0100)]
cpu: move cpuload/cpuchunks options into private engine option space

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agooptions: more groupings
Jens Axboe [Mon, 19 Mar 2012 20:27:02 +0000 (21:27 +0100)]
options: more groupings

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: apply inverse options to buffered/direct
Jens Axboe [Mon, 19 Mar 2012 20:13:01 +0000 (21:13 +0100)]
gfio: apply inverse options to buffered/direct

For these, we'd ideally use radio buttons instead. But hard to
pass that info from the options structure, so lets just punt
to inverse check buttons for now.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agooptions: more option grouping
Jens Axboe [Mon, 19 Mar 2012 19:56:53 +0000 (20:56 +0100)]
options: more option grouping

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agooptions: group cgroups and jobs
Jens Axboe [Mon, 19 Mar 2012 19:44:33 +0000 (20:44 +0100)]
options: group cgroups and jobs

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: fill default options on new job
Jens Axboe [Mon, 19 Mar 2012 19:37:41 +0000 (20:37 +0100)]
gfio: fill default options on new job

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoAdd support for inverse options
Jens Axboe [Mon, 19 Mar 2012 19:29:44 +0000 (20:29 +0100)]
Add support for inverse options

Options that are tied to each other, meaning that if one is
incremented by X, the other is decremented by X automatically.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: option improvements
Jens Axboe [Mon, 19 Mar 2012 18:17:49 +0000 (19:17 +0100)]
gfio: option improvements

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: add support for FIO_OPT_STR_MULTI options
Jens Axboe [Mon, 19 Mar 2012 17:36:29 +0000 (18:36 +0100)]
gfio: add support for FIO_OPT_STR_MULTI options

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoCategorize a few more options
Jens Axboe [Mon, 19 Mar 2012 14:16:08 +0000 (15:16 +0100)]
Categorize a few more options

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: improve option edit
Jens Axboe [Mon, 19 Mar 2012 13:37:08 +0000 (14:37 +0100)]
gfio: improve option edit

Allow grouping of options into both categories, and groups. The
groups are within a category. This shrinks down the number of
job edit tabs a lot.

Work in progress...

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agobackend: privatize nr_thread/nr_process
Jens Axboe [Mon, 19 Mar 2012 09:44:29 +0000 (10:44 +0100)]
backend: privatize nr_thread/nr_process

We need to start moving init items out of add_job(), to allow
for updating of job options. The number of threads and processes
can be calculated before running jobs, so move them there.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoserver: make client connections fork off
Jens Axboe [Mon, 19 Mar 2012 08:13:15 +0000 (09:13 +0100)]
server: make client connections fork off

Instead of handling connections inline from the server, fork
them off before running them. This makes the able to handle
the idle loop command send/reply directly, without being
invoked from the idle loop.

New connections are forked off automatically as well, leaving
the server free to accept new connections. Not sure we want that,
or at least it should be an option to return BUSY on attempted
new connections.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: set clat/lat bucket graph Y title
Jens Axboe [Sat, 17 Mar 2012 18:59:06 +0000 (19:59 +0100)]
gfio: set clat/lat bucket graph Y title

And ensure that disk utilization lines up from the top of the notebook page,
not centered in the middle.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoMerge branch 'master' into gfio
Jens Axboe [Sat, 17 Mar 2012 18:52:32 +0000 (19:52 +0100)]
Merge branch 'master' into gfio

12 years agoAdded 99.95 and 99.99 default percentiles.
Steven Lang [Sat, 17 Mar 2012 12:16:28 +0000 (13:16 +0100)]
Added 99.95 and 99.99 default percentiles.

Since there are 20 slots for percentiles, but not all used by default,
I figure it doesn't hurt to add a couple extra percentiles to the
default for tail latency capture.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoMerge branch 'master' into gfio
Jens Axboe [Sat, 17 Mar 2012 12:03:34 +0000 (13:03 +0100)]
Merge branch 'master' into gfio

12 years agoAdd regression test for 37cf9e3c
Jens Axboe [Sat, 17 Mar 2012 11:59:12 +0000 (12:59 +0100)]
Add regression test for 37cf9e3c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoEnable read/write sequential offset to be a non-multiple of the block size
Jens Axboe [Sat, 17 Mar 2012 11:54:30 +0000 (12:54 +0100)]
Enable read/write sequential offset to be a non-multiple of the block size

The way that fio does offset math internally, if a non-multiple
of the blocksize was given as a sequence offset, it would simply
be ignored due to the block offset division rounding it down.
In other words, if you did:

rw=read:512k
bs=1m

it did not read 1m and 0 offset, 1m at 512k offset, etc. Instead
the hole is ignored.

Fix this by leaving the generated sequential offset in bytes
instead of turning it into a 'fio block'.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: make option hiding actually work
Jens Axboe [Fri, 16 Mar 2012 20:45:05 +0000 (21:45 +0100)]
gfio: make option hiding actually work

We have multiple widgets if they appear in multiple tabs. Keep
track of that and hide them all.

Still need to handle non-bool options, but at least the logic
is sound now.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: initial support for hiding child options
Jens Axboe [Fri, 16 Mar 2012 20:22:56 +0000 (21:22 +0100)]
gfio: initial support for hiding child options

If children depend on a parent, we want to hide them if the parent
isn't set. This is initial support for doing that.

Nevermind that it doesn't actually work, the hiding is buggy. And
it's only implemented for the check button type options for now.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoAdd hint on whether to hide a sub option if a parent isn't set
Jens Axboe [Fri, 16 Mar 2012 19:16:59 +0000 (20:16 +0100)]
Add hint on whether to hide a sub option if a parent isn't set

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoAllow options to specify intervals
Jens Axboe [Fri, 16 Mar 2012 18:57:23 +0000 (19:57 +0100)]
Allow options to specify intervals

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: sync range spin buttons in edit view
Jens Axboe [Fri, 16 Mar 2012 18:41:01 +0000 (19:41 +0100)]
gfio: sync range spin buttons in edit view

They are paired, min/max for read, and min/max for write. If the user
adjusts the min value larger than max, adjust the max automatically.
And vice versa for the max value.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoAdd FIO_OPT_G_IO_ENG category
Jens Axboe [Fri, 16 Mar 2012 18:16:27 +0000 (19:16 +0100)]
Add FIO_OPT_G_IO_ENG category

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoAdd categories for missing options
Jens Axboe [Fri, 16 Mar 2012 18:08:39 +0000 (19:08 +0100)]
Add categories for missing options

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoparse: ensure that an option has a category
Jens Axboe [Fri, 16 Mar 2012 17:58:39 +0000 (18:58 +0100)]
parse: ensure that an option has a category

If not, set it to misc and complain.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agotime_based: Avoid restarting main I/O loop
Daniel Ehrenberg [Fri, 16 Mar 2012 17:54:15 +0000 (18:54 +0100)]
time_based: Avoid restarting main I/O loop

Previously, when fio had written a volume of I/O equal to the size
argument, it restarted the main do_io loop.

This patch allows time_based tests to be run for longer than one
cycle in the do_io main loop. This has a couple of advantages:
 * The random number generator is not reset on each iteration
   of the loop, so running longer will reach different locations.
 * There is not a throughput-reducing point where all operations
   must be reaped before new operations are submitted.

The implementation consists of two minor changes:
 * In the do_io loop, a time_based test will not exit the loop for
   reading or writing too much data.
 * When reading or writing sequentially, the operations wrap around
   to the beginning after reading the end within the
   get_next_seq_block function.

Modified by Jens to properly restart when using a randommap
as well.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: correctly input stored FIO_OPT_STR_STORE options
Jens Axboe [Fri, 16 Mar 2012 17:53:32 +0000 (18:53 +0100)]
gfio: correctly input stored FIO_OPT_STR_STORE options

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: inherit and show more options correctly in edit job
Jens Axboe [Fri, 16 Mar 2012 15:34:06 +0000 (16:34 +0100)]
gfio: inherit and show more options correctly in edit job

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: demo of how to inherit option values into edit window
Jens Axboe [Fri, 16 Mar 2012 13:56:44 +0000 (14:56 +0100)]
gfio: demo of how to inherit option values into edit window

We now fill FIO_OPT_STR_STORE options directly into the edited
values.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoMerge branch 'master' into gfio
Jens Axboe [Fri, 16 Mar 2012 13:02:54 +0000 (14:02 +0100)]
Merge branch 'master' into gfio

Conflicts:
fio.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoFix problem with iodepth_batch_complete=0 and accounting
Jens Axboe [Fri, 16 Mar 2012 12:55:50 +0000 (13:55 +0100)]
Fix problem with iodepth_batch_complete=0 and accounting

If the queue is full, we always need to reap at least one event.
Otherwise we end up failing get_io_u() and restarting the file.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoFix wrap bug in mtime_since()
Jens Axboe [Fri, 16 Mar 2012 12:55:27 +0000 (13:55 +0100)]
Fix wrap bug in mtime_since()

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: move more code to ghelpers.c
Jens Axboe [Fri, 16 Mar 2012 11:05:17 +0000 (12:05 +0100)]
gfio: move more code to ghelpers.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: use 0 as the floor for the line graph
Jens Axboe [Fri, 16 Mar 2012 09:17:08 +0000 (10:17 +0100)]
graph: use 0 as the floor for the line graph

Unless we have values below 0, in which case use that.

This makes it easier to visually compare a running read/write
workload. Without this change, the lowest valued graph would define
the floor of the graph view.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: start of options view and edit
Jens Axboe [Fri, 16 Mar 2012 09:13:49 +0000 (10:13 +0100)]
gfio: start of options view and edit

This is pretty crap right now, but it's exposing all the options.
Now we just need them to reflect the current job, and be able to
update a remote job with a new set of options.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: use ctrl-d for connect/disconnect
Jens Axboe [Thu, 15 Mar 2012 20:57:40 +0000 (21:57 +0100)]
gfio: use ctrl-d for connect/disconnect

ctrl-e is used by job edit.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: start of splitting up the source a bit
Jens Axboe [Thu, 15 Mar 2012 18:38:01 +0000 (19:38 +0100)]
gfio: start of splitting up the source a bit

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: include direct/buffered IO type in the iotype field
Jens Axboe [Thu, 15 Mar 2012 17:57:03 +0000 (18:57 +0100)]
gfio: include direct/buffered IO type in the iotype field

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: add bs display
Jens Axboe [Thu, 15 Mar 2012 14:55:04 +0000 (15:55 +0100)]
gfio: add bs display

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agogfio: put disk utilization tab in a scrolled window
Jens Axboe [Thu, 15 Mar 2012 14:38:02 +0000 (15:38 +0100)]
gfio: put disk utilization tab in a scrolled window

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agograph: tighten x-axis tooltip hit
Jens Axboe [Thu, 15 Mar 2012 14:37:36 +0000 (15:37 +0100)]
graph: tighten x-axis tooltip hit

Make it 10, like the Y-axis. Seems to work well in practice.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoDocument compress_buffer_percentage, compress_buffer_chunk
Jens Axboe [Thu, 15 Mar 2012 14:02:56 +0000 (15:02 +0100)]
Document compress_buffer_percentage, compress_buffer_chunk

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoNote offset_increment parent option
Jens Axboe [Thu, 15 Mar 2012 13:53:38 +0000 (14:53 +0100)]
Note offset_increment parent option

And move it up near "offset".

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agoFix offset_increment option and add man page entry for it
Jens Axboe [Thu, 15 Mar 2012 13:50:58 +0000 (14:50 +0100)]
Fix offset_increment option and add man page entry for it

td->thread_number starts at 1, not 0. So we need to subtract
one before multiplying with the offset.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
12 years agordma engine graceful teardown
Yufei Ren [Thu, 15 Mar 2012 13:44:47 +0000 (14:44 +0100)]
rdma engine graceful teardown

For rdma ioengine's one side operation, RDMA_WRITE or RDMA_READ,
server side gets a message from client side that the task is finished.
In previous version, the server simply exit() in td_io_commit() which
causes segmentation fault in thread mode or process hanging in process
mode. This patch achieves graceful tear down by setting up `td->done`
as UDP engine did.

Signed-off-by: Jens Axboe <axboe@kernel.dk>