History log of /external/fio/parse.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
eaa89f5256b92e78067dc3649e4d9b7a70149302 22-Jan-2015 Jens Axboe <axboe@fb.com> parse: ensure strings are pre-terminated when using strncpy()

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
7126d86baaad3a2b46f1efb05caa4bb691eaa477 17-Dec-2014 Jens Axboe <axboe@fb.com> parse: remove the arithmetic parser checking

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
9c62acd93cd70b6bfd01892b59926c4fb2a3639b 09-Dec-2014 Jens Axboe <axboe@fb.com> options: add support for checking if an option has been set

We often just do a non-zero check, but an option can be set
and be set to zero, so we can't currently detect that. For
complicated options, we add a second variable to mark if it
has been set or not. This allows us to directly check if a
given option was set by the user or not.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
786715eaa81c267b4a372e22f028e7a5543e5698 05-Dec-2014 Jens Axboe <axboe@fb.com> parse: make suggestions for unknown options

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
79dc914fcf76e8f6c8f8e20dc75bd424cc833d27 11-Nov-2014 Stephen M. Cameron <stephenmcameron@gmail.com> Fixup some of the time (usec) based conversions

Modified by Jens to fixup some of the mtime/utime confusion,
and add a specific ->is_time to options to get rid of future
issues in this area.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
0f7f9a918590b45589224568245f75e2dbff9e14 06-Nov-2014 Jens Axboe <axboe@fb.com> Make fio -Wshadow clean

Found a few issues, actually.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
64c9d60b95a121b4d7a4ca3b0fdf2390236d17b2 30-Sep-2014 Stephen M. Cameron <stephenmcameron@gmail.com> enable informing arithmetic parser of implicit units

This is so that "runtime=100" can be interpreted as 100 seconds
rather than 100 microseconds, but runtime=(100ms + 100s) can also
get the right answer (in microseconds).

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
21bda79f8acca1d3ef24ddafd39e2ed76c5823ab 30-Sep-2014 Stephen M. Cameron <stephenmcameron@gmail.com> verify that expression parsing code gets the right answer

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
c3805eb1451972285565504e11be642f082fe7df 29-Sep-2014 Stephen M. Cameron <stephenmcameron@gmail.com> fio: support suffixes in expression parser

Note that time values in expressions by default have units of microseconds

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
88b635b84d831b109f0807922449fa7a900f5dbd 29-Sep-2014 Stephen M. Cameron <stephenmcameron@gmail.com> fio: allow arithmetic expressions to be used in job files

However, the arithmetic expressions must be enclosed in parentheses.
That is not a hard requirement, I just did it that way to enable the old
code to be used for the existing job files, to reduce risk of breaking
something that previously worked.

Known issues:

1) if overflow or underflow occurs during the evaluation of arithmetic
expressions, it is not detected. Likewise, detection of floating point
divide by zero is a bit iffy. Calculations are carried out both as long
longs and as integers. If at any point, a double precision floating
point value is used, floating point values are used, and for the final
long long calculation the double is cast to a long long.

There may be other numeric subtleties lurking as well. These kind of
things are why I require the parentheses to invoke the arithmetic
processing.

2) I made no effort to work this code into the autoconf system. Have no
idea how to do that, esp. with lex and yacc involved in this.

3) Suffixes (k, M, GiB, etc.) do not work with expressions. It is
probably not very difficult to fix this.

Signed-off-by: Stephen M. Cameron <stephenmcameron@gmail.com>

Modified by me to make configure auto-detect presence of yacc/lex and
enable the arithmetic only if those conditions are met. Also got rid
of the Makefile in exp/ and added the targets to the general Makefile,
since this makes it easier to do properly.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
8adb452ea0c7bcaae35d0dadcc273162e75232f2 23-Sep-2014 Jens Axboe <axboe@fb.com> Fix min/max typeof warnings

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
ef7035a9b2c7af1e745b7cd2448685527ef7eeb0 19-Jun-2014 Jens Axboe <axboe@fb.com> Add support for compiling for ESX

With contributions from Ryan Haynes <rhaynes@fusionio.com>

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
ab50817f68faf742e7725922b9225fc067275750 14-Apr-2014 Jens Axboe <axboe@fb.com> parse: make it clear that 'cp' can't be NULL for o->off1

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
f75c69a1e26166b5c205c6d4c0a6a9412ee6cd86 03-Apr-2014 Jens Axboe <axboe@fb.com> parse: fix crash with empty FIO_OPT_STR_STORE variables

Sébastien reports:

A crash on solaris & windows (at least) when using fio-2.1.6.1 :

A simple profile that use a env variable : directory=${DIRECTORY}

I'm starting fio without defining DIRECTORY and I'm getting a crash:

The stack on solaris is :

core 'core' of 4574: ./fio ../fio_env.win
0000000100035348 set_name_idx (ffffffff7fffe970, 100231950, 0, 16c4e8, 0, 1002319b0) + cc
0000000100021a70 add_file (ffffffff7b400000, ffffffff7fffee60, 0, 0, 100071c30, ffffffff7fffe970) + 38
000000010000daf4 add_job.part.4 (7, 100236050, 0, ffffffff7ffff268, 1, 0) + 11f0
000000010000f444 parse_jobs_ini (0, 0, 0, 1, 100236050, 1002276c0) + 77c
0000000100010db0 parse_options (5118, ffffffff7ffff968, 1, 0, 0, 10021eef0) + 304
000000010006ff68 main (2, ffffffff7ffff968, ffffffff7ffff980, 100228338, 100000000, 2800) + 20
000000010000952c _start (0, 0, 0, 0, 0, 0) + 7c

Same thing happens with filename and other store options. Fix this
by checking in the parser whether the string is empty or not.

Reported-by: Sébastien Bouchex Bellomié <sbouchex@infovista.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
0de5b26f6e177aacac0683306c47e0cbaf58b0b6 22-Feb-2014 Jens Axboe <axboe@fb.com> Unify the time handling

Some options are in seconds, if no units are given. These include
runtime/timeout, startdelay, and ramp_time. Handle this
appropriately. Internally it should all be microseconds now, it's
just the conversion factor.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
e4668264df255e8d01680920a4e78fd4186aeff1 21-Feb-2014 Jens Axboe <axboe@fb.com> Fixup time multipliers

Commit 74454ce4 assumed default time is in msec, when it's
in reality usec. Fix that up, and also add a specific 'us'
or 'usec' multiplier (of 1).

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
74454ce40f1a5e1e682da0a8acb824a7f6910270 20-Feb-2014 Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> fio: allow milliseconds on all time specifiers

This patch allows all time specifiers to be specified down to
milliseconds. Default will stay seconds for compatibility with old
configs.

It also adds documentation to the existing time units day, hour and
minute.

Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
ebadc0ce34c11b3e0130d5602b18f4ed0e638386 12-Feb-2014 Daniel Gollub <daniel.gollub@t-online.de> Make parse.h C++ safe by avoiding "or" keyword

Fixes for g++ (4.7.2) following compiler errors when fio.h
gets included (e.g. in an external C++ ioengine):

--8<---
[...]
parse.h:31:6: error: expected unqualified-id before ‘or’ token
[...]
--->8---

Signed-off-by: Daniel Gollub <d.gollub@telekom.de>

Updated by me to apply to recent version, and fix gfio usage
of ->or as well.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
f0fdbcafc3a62b84250e5ccdcaec47e3ffa93a00 11-Feb-2014 Jens Axboe <axboe@fb.com> parse: cleanup difference between profile and normal options

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
7b504eddc4b039f2db3a0626bd08f880c5f4de27 11-Feb-2014 Jens Axboe <axboe@fb.com> parse: get rid of raw option offsets

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/parse.c
3e260a46ea9a8de224c3d0a29a608da3440f284a 09-Dec-2013 Jens Axboe <axboe@kernel.dk> Add options to have fio latency profile a device

This adds three new options:

- latency_target. This defines a specific latency target, in usec.
- latency_window. This defines the period over which fio samples.
- latency_percentile. This defines the percentage of IOs that must
meet the criteria specified by latency_target/latency_window.

With these options set, fio will run the described workload and
vary the queue depth between 1 and iodepth= to find the best
performing spot that meets the criteria specified by the three
options.

A sample job file is also added to demonstrate how to use this.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
292cc475b1f26ae4c94c3028fc33dee96b22655b 27-Nov-2013 Jens Axboe <axboe@kernel.dk> init: escape description option string

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
d94722713ebd7bbdbf8b284b7563f2dd17964e24 25-Jul-2013 Jens Axboe <axboe@kernel.dk> Add support for randomness of any IO direction

sequential_random used to be applied to all of the IO
directions, with no possibility of having different settings
for reads, writes, and trims. Now it supports setting each of
them individually.

By default, if you do:

sequential_random=50

it will still apply to all three. If you do:

sequential_random=10,90,80

you would get reads 10% random, writes 90% random, and trims
80% random.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
2fdbefdd43968f3bf354a488288b9794b5f5c6bb 22-Jul-2013 Erwan Velu <erwan@enovance.com> core: Insure "il" is initialized in all cases

Prior this commit, "il" was not initialized and check_int() was supposed
to setup it's value before usage.

In fact, check_int() can let "il" uninitialized leading to a dprint()
with a unintialized value.
/external/fio/parse.c
4ac23d27a5e5dea73c4db4a4fcc46a6afe645bd0 23-May-2013 Jens Axboe <axboe@kernel.dk> parse: if profile is set, only show options relevant to the profile

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
ae3fcb5afb2479f142912e64cad3c271541af5fe 25-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: add debug output when enabled

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
06464907159baf7a1eeac654a023743e33f28d86 25-Apr-2013 Jens Axboe <axboe@kernel.dk> Add support for other ways of triggering intermediate result outputs

Fio has support for using the USR1 signal to dump the current
results while continuing to run. Add a --status-interval parameter
to allow this to be configured to automatically happen every X
seconds.

There's also support for signaling fio through the file system. To
do that, simply touch /tmp/fio-dump-status. When fio sees this file,
it will unlink and dump the current results.

A small tweak is needed for the file approach to work in Windows.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
b7f487cf80a8299a656df9c2214ff73e72956d71 10-Apr-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
engines/libaio.c
engines/net.c
iolog.h
options.c
options.h
parse.c
parse.h
thread_options.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
cca5b5bc3a622b4f4a103d05c55284fc167a0b82 10-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: fix spelling error

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
bb71ecd67de0ddcc30531615a24bfa69e40d35a4 10-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: bring in more stuff from gfio

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
81c6b6cdd2f696528c423ff940a06efae8def583 10-Apr-2013 Jens Axboe <axboe@kernel.dk> Unify options with gfio

Add the parser features and unify the option table.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
ffd7821f3dadaf8972730d0543301f77d1956a47 10-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: set invalid group on option with no group set

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
22754746e5dc2552f0c7b995a2095b5723119784 10-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: catch all options without a group/category set

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
3c037bcf2334ca75b23103a954232a48e4ce6dc4 10-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: don't print min/max option ranges if posval[] is set

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
ba9c7219eefcc04e84a4fb4970f4b5caeaf48aa6 10-Apr-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
options.c
parse.c
server.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
128e4caf9db24d81b564fe004d471b3550186f51 10-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: for option with posval, dump allowed values on failure

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
ca718005e5384fd47459f5cbaa0e617b5000c7c7 09-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: add posval support to FIO_OPT_INT

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
d926d535c7e1a12ff1a57a718ed8e84f617b0172 09-Apr-2013 Jens Axboe <axboe@kernel.dk> parse: add posval support to FIO_OPT_INT

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
62232d0618e3f5aa4805b4be34e872895ba1beb2 05-Apr-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile

Signed-off-by: Jens Axboe <axboe@kernel.dk>
a03fb65f4e5d657ee3bb68309cfa70ae2d5bc44b 29-Mar-2013 Jens Axboe <axboe@kernel.dk> parse: fix misparse of bs=64k-128k

We failed parsing the postfix for this case, resulting in
64 and 128k being the result (instead of 64k and 128k).

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
9db01ef976006c002b05fa4e4ec589eb029aac5b 07-Feb-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
configure
fio.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
eef02441621aa969f01a1a331e0215dd587d25af 06-Feb-2013 Jens Axboe <axboe@kernel.dk> Handle normal output wrapping of the percentile list

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
619adf9c5aa472904eec3a62f13030e6b261ea25 06-Feb-2013 Jens Axboe <axboe@kernel.dk> Cleanup the percentile output formatting

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
435d195a9da120c5a618129cdb73418f4748c20a 06-Feb-2013 Vincent Kang Fu <VFu@fusionio.com> Handle percentile lists with higher precision that 2 digits

We cap the output at %2.2f right now, that's not always enough.
Make the parser check and store the precision required to
output the list correctly.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
90b7a96d9573a14f20470af2aa0dd4e60611a477 04-Feb-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
fio.h
parse.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
ab9461eaea21e861cc777aae2420db8f486ed1e2 02-Feb-2013 Bruce Cran <brucec@router.wharfnet> values.h is obsolete: use float.h and DBL_MIN/MAX instead.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
266506958a1dbaa41800f0b1170217d81c702f47 02-Feb-2013 Jens Axboe <axboe@kernel.dk> parse: use MIN/MAXDOUBLE instead of some representation of NAN

Doesn't always work for C99.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
fd112d34a2cfdc2d9efcd394e38b6d87b357c23d 02-Feb-2013 Vincent Kang Fu <VFu@fusionio.com> Fix percentile_list option

Commit 802ad4a8 broke the parsing of the percentile list,
by neglecting to change the parser type fo a fio_fp64_t.

Also get rid of the def_percentile_list, just set the
default percentile list as the option default.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
135be493d843d4cae2966a35cbd22a3058ec8e4b 29-Jan-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
configure
options.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
478920ba7d75349ec04331baa45c585ad54f7114 24-Jan-2013 Jens Axboe <axboe@kernel.dk> NAN: use __builtin_nanf() if not available

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
2a988d8bcb447eb098fc382835cc507587c6ba66 11-Dec-2012 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
fio.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
119cd939010b646825d06ac04af41dc5268f2765 06-Dec-2012 Jens Axboe <axboe@kernel.dk> parser: always match the correct option length for posval options

Right now we match rw=randr as rw=randrw, since we use the length
of the passed in option. Use a correct max of the ival and string
passed in, so that we fail if a full match isn't present.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
49758e11f3658686ccd1c61724a5eba142f3ee4f 03-Dec-2012 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
fio.h
io_u.c
ioengine.h
memory.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
bfe1d59237aeb5a9c3540b0beb69c686af41dfa9 29-Nov-2012 Jens Axboe <axboe@kernel.dk> parse: fix wrong "might be used unitialized" warning on some compilers

GCC 3.4.3 on Solaris, I'm looking at you. Apparently:

if (a || b) {
if (a)
c = foo;
else if (b)
c = bar;

*c = foobar;
}

is too hard to figure out.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
1e5324e723116a5faf9da686993cc79c14d62d4b 14-Nov-2012 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
backend.c
client.c
fio.h
options.c
parse.c
parse.h
server.c
server.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
e25839d4cb5fefcb5ffce76128a4faedb177e7af 06-Nov-2012 Jens Axboe <axboe@kernel.dk> Add sample zipf distribution randomizer

Instead of just doing purely random IO where each block is
touched exactly (or close to, depending on random map) once,
add a zipf distribution scheme where a selectable theta
defines the spread and frequency of blocks read/written.

Committing this so I don't lose it. Needs a few changes,
for instance we need to hash the zipf output so that
the spread doesn't always just favor the lower LBA range.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
f982d35f5ae88f728c6853aaf57448db8f5fcf98 24-Sep-2012 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio
d4fc2f04e5fa3cbad31d04eefa39632a301a3d95 24-Sep-2012 Jens Axboe <axboe@kernel.dk> parser: fix overflowing integer type options

If we use bs=4g, the parser will happily take it since it shares
the data type with unsigned long long options. Make sure that
FIO_OPT_INT types have a cap of UINT_MAX, if they haven't set
a lower limit.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
d79db1222039e906dd49ae290daa59701f4e2385 24-Sep-2012 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
backend.c
client.c
fio.h
init.c
io_ddir.h
options.c
server.h
stat.c
stat.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
6eaf09d6e9ca1f8accb057cdb18620b7e53ae33f 14-Sep-2012 Shaohua Li <shli@fusionio.com> Add support for trim as a workload type

This only works on Linux so far, and it's always sync given what
the interface to the kernel looks like. Also restricted to pure
block devices.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
3c3ed070502bbfec387ded2c43d5e4559ca24a63 27-Mar-2012 Jens Axboe <axboe@kernel.dk> White space spring cleaning

Lets squash them all, with a bit of tooling help.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
90265353af8dbf1c43804996909777d4c1a5998e 19-Mar-2012 Jens Axboe <axboe@kernel.dk> 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>
/external/fio/parse.c
e8b0e958cd219cabb1154e2b06036863a7d6dbd7 19-Mar-2012 Jens Axboe <axboe@kernel.dk> 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>
/external/fio/parse.c
0a074fe4bb0c085d1d6a060c279aae3f79722c99 16-Mar-2012 Jens Axboe <axboe@kernel.dk> parse: ensure that an option has a category

If not, set it to misc and complain.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
9af4a24408ea7d4cea084a4fe214b81145cc36ac 16-Mar-2012 Jens Axboe <axboe@kernel.dk> 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>
/external/fio/parse.c
a04f158df11fce840dbd7b5e426245929e6276a3 07-Mar-2012 Jens Axboe <axboe@kernel.dk> parser: relax restriction on postfix ranges

Currently we misparse this option:

bs=1k,4k

as read_bs=1, and write_bs=4096, since we compare the postfix
strictly against "k,4k". Use range compares instead.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
cc62ea704e4de10eb595b551f29af41266cf225d 09-Feb-2012 Jens Axboe <axboe@kernel.dk> Fix a few other static code checker spotted "issues"

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
e721c57fc77e0155bb73a2c266dba0c6ce0bd3b5 09-Feb-2012 Jens Axboe <axboe@kernel.dk> Fixup a few items spotted by a static code checker

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
184b4098cccb8392eb8ecdd23cdc6597b540df36 16-Nov-2011 Steven Lang <tirea@google.com> Fix parsing of ioengine strings

This cleans up parsing of FIO_OPT_STR_STORE options which have defined
values (IE ioengine).  I made a few assumptions here...

1. If FIO_OPT_STR_STORE was used, that means a copy of the string is
desired, so it is always copied if the offset is non-zero.
2. If the values were the only allowed values, then FIO_OPT_STR would
have been used; therefore it is not an error to give a value not in
the list.
3. If an option callback is defined, then any values are ignored and
the callback is called to parse the string.  (Don't think this
currently applies, anywhere, but there is precendent in other options
skipping normal parsing if a callback is used.)
4. If no offsets are defined, and no callback is given, the behavior
is undefined - though this patch handles it cleanly and still calls
value callbacks; though I believe fio will still complain about a bad
options structure.

This fixes two cases (Restores it to previous behavior without
breaking new functionality).
1. External ioengines (The patch to a .so is never in the list of
possible values, so was never matching)
2. IO engines compiled in but not in the list in options.c

This patch should be applied to the 1.5x stable branch as well, though
it doesn't apply cleanly due to one line difference from my last
options patch.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
de890a1e48d40238dac69f302708dde8719de240 09-Nov-2011 Steven Lang <tirea@google.com> Private parameters for ioengines

Here is the polished version of the engine private options patch. As
discussed, the global section only ever tracks the private options for
the globally defined ioengine. For command line parameters, the
ioengine must be selected before any private options are used. (IE
--ioengine=libaio --userspace_reap will work, but --userspace_reap
--ioengine=libaio will not.)

The userspace_reap option from libaio has been moved over to this new
option method, usage should be identical to before.
The net ioengine has been modified to use parameters, with hostname,
port, protocol and listen defined as ioengine private parameters. The
old style of hostname=host,port,protocol no longer works, so usage
will need to be updated. (It will spit out an error that should be
clear enough that it changed if this is tried.) Also, with the new
way for specifying parameters, the net IO engine now allows data to
flow in either direction on TCP connections, regardless of which end
initiates the connection.

There's also a new command line argument --enghelp which can be used
to get help on ioengine private parameters, similar to --cmdhelp.
With no argument, it lists all built-in ioengine. The argument is an
ioengine name (Or path to .so) and optionally a comma followed by a
command name, which behaves identically to --cmdhelp.

For ioengine authorship, if options are supplied, both the options
structure and the size of the storage needed must be supplied, and the
storage must be large enough to hold a pointer to struct thread_data;
that is because the options callback doesn't explicitly have a pointer
to the thread data (Normally it relies on the fact that the options
struct is the start of the thread data), so the offset 0 of the struct
must point to the thread data, and is filled in automatically. (This
also neatly provides a guarantee that offset 0 is reserved in the
options data, so it can be safely used as a test of undefined.)

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
d0c814ececb7410e97d1a437e80fc2dfd5c6de38 28-Oct-2011 Steven Lang <tirea@google.com> Cleanup option keyword/environment substitution

Right now the substitution for options seems quite fragile. Among the
issues...

- If bc had an error and returned no output, it caused a NULL reference
- Multiple variable substitutions (For example $ncpus * $pagesize)
caused an error as it tried to run bc after the first, with the second
still text
- Memory leak for every keyword substituted
- Multiplication caused shell wildcard expansion (*) of the current
directory when passing the input to bc
- Shell escape sequences would be parsed on the command line when bc is called
- Potential buffer overrun due to unchecked lengths on the input line

So I did a little cleanup to get rid of the issues. This patch also
moves the environment variable substitution to run before the keyword
substitution, so an environment variable can now indirectly perform a
keyword substitution.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
4c8e9640702d90f9e2c5d5d5f5f9e299c67978eb 15-Oct-2011 Jens Axboe <axboe@kernel.dk> Fix strip blank space for empty string

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
7e356b2dee2e86f3684424fc6e903f1ef9f00ef4 14-Oct-2011 Jens Axboe <axboe@kernel.dk> Memory leak fixes

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
28d7c363e2f82d09cf7f6aa772d255712aff5c5c 05-Oct-2011 Jens Axboe <axboe@kernel.dk> parser: always use the fio logging instead of stderr/stdout

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
06b0be6efb3da5131bc8386251d017f0abafbdac 04-Oct-2011 Jens Axboe <axboe@kernel.dk> parser: use logging infrastructure

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
3c703d13b1323869de7e51b9c5c7feb9d9c8211d 21-Sep-2011 Jens Axboe <axboe@kernel.dk> Silence build warning on HPUX

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/parse.c
ba4ddd690a04f39abada885f1b4ea3b228e790a8 07-Sep-2011 Jens Axboe <jaxboe@fusionio.com> Better parser fix

The previous one broke all postfixes for ranges, that wasn't
very nice. This one allows the proper postfix and +/- as well,
as long as the latter is seen before a digit.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
6925dd356191bc40e8a1ebc8fd92a40b476658c3 07-Sep-2011 Jens Axboe <jaxboe@fusionio.com> Revert "Fix parser bug with ranges"

This reverts commit f20485ad77872d6c5084dead547420386a6ecd5e.
/external/fio/parse.c
f20485ad77872d6c5084dead547420386a6ecd5e 07-Sep-2011 Jens Axboe <jaxboe@fusionio.com> Fix parser bug with ranges

The change to allow -/+ for values broke ranges.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
1c964ce59ba23b1ab515a8f0b6506329c1c3d3e1 01-Sep-2011 Jens Axboe <jaxboe@fusionio.com> Only clear string pointer in parser for sub-value options

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
ce952ab65a46f728ffada9613bb50ace7aeaa7c8 31-Aug-2011 Jens Axboe <jaxboe@fusionio.com> Fix parser using uninitialized memory

Introduced by e2979754b554d6a48cffa98f41fb59bc045922ac.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
e2979754b554d6a48cffa98f41fb59bc045922ac 31-Aug-2011 Jens Axboe <jaxboe@fusionio.com> Remove duplicate code in parser

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
58052f3717975199f9c1b2aef75894ba2c527f40 31-Aug-2011 Jens Axboe <jaxboe@fusionio.com> Fix FIO_OPT_STR_STORE without posval

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
c44b1ff54402c589e8f07436ec56efb4f8b1ac23 31-Aug-2011 Jens Axboe <jaxboe@fusionio.com> Add sub-option support (sort-of) and convert libaio_userspace_reap

You should now use ioengine=libaio:userspace_reap instead of
the separate option.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
833491908a1afd67d27ce79257de3a4d80143d9f 13-Aug-2011 Yu-ju Hong <yjhong@google.com> stats: Add a function to report completion latency percentiles

This patch introduces two new options:
1) Specifying --clat_percentiles enables the reporting of
completion latency percentiles.
2) --percentile_list allows the user to customize the
list of percentiles to report.

Signed-off-by: Yu-ju Hong <yjhong@google.com>

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
31d23f47d5ee53f74fbf20e17e83c7cb42e39878 23-Jul-2011 Dave Engberg <dengberg@evernote.com> Fix bsrange read,write value option pairs

The 'bs' and 'bssplit' configuration variables accept separate numbers
for read and write operations if you separate them with a comma. For
example: bssplit=1k/39:8k/50:64k/11,1k/29:8k/50:64k/21

The documentation for 'bsrange' says it works the same way, but if I try
to specify two ranges with a comma, I get an error when I run the app.
E.g. if I put this line in the configuration file: bsrange=1k-16k,2k-32k

I get this error output:

fio: pid=26861, err=22/file:engines/sync.c:62, func=xfer, error=Invalid argument

This patch fixes it.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
74ba1808c32e978229eefa7cf28c08bcb73b5b5d 15-Jul-2011 Jens Axboe <jaxboe@fusionio.com> Make string-set options behave more like bool options

Before this change, string-set options (like time_based) would not
complain if passed an argument, they would just always evaluate
to being set. This is very confusing if someone uses them negated,
ala:

time_based=0

since fio would interpret that as the option being set. Now we'll
do the right thing, time_based=0 will be identical to not having
the option set. And time_based=1 or just time_based will equate
to the option being set.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
7bb591020669b7266c57108f2a68b48a03ae72ee 12-Jul-2011 Jens Axboe <jaxboe@fusionio.com> Allow percentage setting for size=

Sometimes it's useful to set this to a particular size of a device.
Allowing percentages makes this more easy, as one does not have to
do the math outside of fio and pass in as environment variables
or custom job files.

To use, simply add a

size=15%

or whatever is needed, then fio will use 15% of the total size of
the device(s) or file(s) given. Percentage can be from 1 to 100.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
76cd9378b90dddf2cedc9a5d49f317aaad485b90 08-Jul-2011 Jens Axboe <jaxboe@fusionio.com> Get rid of warning on platforms for casting char -> int

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
e42b01eba09c9d2f5e943b67eaf66c8a443c230f 05-May-2011 Jens Axboe <jaxboe@fusionio.com> Revert "parser: get rid of useless is_time variable"

This reverts commit 1a1137d9ba2603e295aaac579777ab0d3524faa6.
/external/fio/parse.c
55ed9636e82b8dee419b5a76c07098bff4d980b6 27-Mar-2011 Jens Axboe <jaxboe@fusionio.com> Fix parser bug dealing with range options and postfix

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
1a1137d9ba2603e295aaac579777ab0d3524faa6 27-Mar-2011 Jens Axboe <jaxboe@fusionio.com> parser: get rid of useless is_time variable

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
ae3fb6fbaf7dd68291f5de8e8aaac0d28e24c9ee 14-Sep-2010 Jens Axboe <jaxboe@fusionio.com> Add missing option type

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
1d1c187b36fd4ee28d72d04660b37a7c3edd64e6 29-Jul-2010 Jens Axboe <jaxboe@fusionio.com> Fix bad deref of memory in parser

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
808def7036ddfaf6f0ec2f5ecce031fd46ce40ef 15-Jul-2010 Jens Axboe <jaxboe@fusionio.com> Really fix broken option length check

Commit 7b4cb1320928bdea2360cf36fc45c83700052d43 matched the
string passed in, but that doesn't work for postfix values
appended.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
57fc29faae372cb474b5f2ef921638ab28bb9dc0 23-Jun-2010 Jens Axboe <jaxboe@fusionio.com> Allow use of KiB etc to give explicit base 10 multiplies

Useful for disk drives, where capacity is given in base 10 units.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
7b4cb1320928bdea2360cf36fc45c83700052d43 18-Jun-2010 Jens Axboe <jaxboe@fusionio.com> parser: match on length of argument, not potential value

Otherwise we match subset of a string, that doesn't always
work well.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/parse.c
d091d099aa867596745f2fa0d58631a14a746520 01-Apr-2010 Jens Axboe <jens.axboe@oracle.com> Make the 'closest option' print a bit better

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
7758d4f0b0f87d53826e1a6a6302bdc16667ed2d 18-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Fix bad type usage in parse.c for external options

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
ae2ddba4e74f06b5ec986d1c3387cd14e69f8146 10-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Fix broken FIO_OPT_STR option

Only break out and show help if the option had ->posval entries.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b62bdf2c3e8877c276796d1ed7909df194fc846c 10-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Fix parser bug capping multi value options at 2

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
5f6ddf1e568d5014925a98da316d92f9e6e03eb4 09-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Allow OR'able option values

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
e6d2e7ec8134c94e764e10b124ff9379877ec158 09-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Remove debug printf()

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
7eb36574da703ebdfac414d7428712320f552a96 08-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Make profile io op overrides a dedicated structure

Also add a 'get_next_file' hook while at it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
a0741cbb98a0399d26e90cb05604bbfb20a45bc6 05-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Fix parse strlen() bug

Commit 38789b58775ee5e00f4669f01b3c9da31a7345e3 checks the wrong
string, it's unitialized garbage.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
f5b6bb85364fcb8b2ac8d922ca65afd9dfabc9bb 05-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Allow the adding of 'posval' for dynamic options like 'profile'

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
a3073f4a296bba2cbd026603fe284341c370bfb0 05-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Allow holes in the option posval (possible values)

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
07b3232de97ac32a873f0b5d17c8f49c18ed3ae7 05-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Cleanup profile support

This is closer to where it needs to end up. No ext_options, just
include profile options in the general option table (and mark them
private for that profile).

Profile options are only available after loading a specific profile,
so there should be less confusion.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
e2de69dac799a1eecac1b52085f908729591ef5a 04-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Add initial support for profile specific options

Not complete yet, we need to split option parsing for profiles a
bit.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
02c6aad501477833c7e017eec0bb14f8e6957b68 04-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Add parser support for out-of-td option storage

Currently the parser assumes the storage is inside a thread_data
structure.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
9f988e2ebb3bff7087cc9681a54bd7f0d0e42140 04-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Add support for registrering external options

Start of support for real profiles.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
38789b58775ee5e00f4669f01b3c9da31a7345e3 03-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Add check for OPT_LEN_MAX being too small

Will hopefully catch a bug like this in the future.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
975462a6cbfe5c97ba6d7207978467748611b5ab 23-Dec-2009 Jens Axboe <jens.axboe@oracle.com> Allow 'b' postfix for integer values

Fio would previously regard '1tb' as just 1 byte, since the 'b' postfix
isn't a valid multiplier. Allow the 'b' as well, just ignore it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
0b9d69ecb14045cf3b2622ae922756b9889b25e6 11-Sep-2009 Jens Axboe <jens.axboe@oracle.com> Silence the style/whitespace police

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
d6978a3242daad9cb7b0710b724f19225d1ed7e2 18-Jul-2009 Jens Axboe <jens.axboe@oracle.com> A few more kb_base fixups

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
a639f0bbd278365a2fa15031afd29a24dc917437 18-Jul-2009 Jens Axboe <jens.axboe@oracle.com> Make kb_base apply to parser k/m/g etc values

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b09da8fa5be85634a3e8331d6e5ce07cd427a5a2 17-Jul-2009 Jens Axboe <jens.axboe@oracle.com> Add tera/peta suffixes

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
d447a8c25a735519089626b3047da646597a7c6f 17-Jul-2009 Jens Axboe <jens.axboe@oracle.com> parser: dump valid option format for ->verify() fail

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
70a4c0c8417bba7c2e1e9a384b9acf226f5b9782 01-Jul-2009 Jens Axboe <jens.axboe@oracle.com> Add verify hook to options

This allows us to individually verify options, instead of having
a big function that attempts to fix things up.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
3980127d55c6b1773274bc854aae4589aa3f785a 01-Jul-2009 Jens Axboe <jens.axboe@oracle.com> Only show maxval in --cmdhelp if it is given

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
c1f75438a5888d96b3aa4f6a0cac50c4d4047f14 15-Jun-2009 Jens Axboe <jens.axboe@oracle.com> Cmd help type fix

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
e01b22b8fe3f20376fe8fdc6f2c28cc3682d698e 09-Jun-2009 Jens Axboe <jens.axboe@oracle.com> parser: get rid of FIO_OPT_STR_VAL_INT

It's treated the same as FIO_OPT_INT since we got rid of the
int vs siint distinction.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
7c8f1a5ce2ecde0ef8372e983895855ac838c76c 09-Jun-2009 Jens Axboe <jens.axboe@oracle.com> Fix bug in parser with postfix and truncated direction values

If you pass in foo=500k, then the 'k' multiplier will go unnoticed.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
903dc3f6f7a44b17f09152a4fd9a2e2d767cc2cc 10-Mar-2009 Jens Axboe <jens.axboe@oracle.com> Fix integer store bug in parser

With commit f7fa2653589f9ecf0d3d106286f17620bcf32de0 I forgot to check
the type, so we would mis-store on platforms where sizeof(int) is different
from sizeof(long).

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
f7fa2653589f9ecf0d3d106286f17620bcf32de0 09-Mar-2009 Jens Axboe <jens.axboe@oracle.com> Get rid of int vs siint difference

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b347f9daece7d65a6e596cd3bd0ef3602e40b059 09-Mar-2009 Jens Axboe <jens.axboe@oracle.com> Allow 0x (or 0X) prefix for any int value to indicate hex base

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
853ee7fc686293cd45fbb177c75114ed2489144d 06-Mar-2009 Jens Axboe <jens.axboe@oracle.com> Fix failure to strip end of line with comment

We left a space at the end, which confused the postfix checking.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
43c129b4ff85a7f7f7e0929f9dd73e756e37a2e3 08-Dec-2008 Jens Axboe <jens.axboe@oracle.com> Properly strip end-of-option blanks

We don't want to fail with

option_foo = 0

when

option_foo=0

works.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
e3cedca76d9fc104eb4f6f869606fb5bf4c0d59c 19-Nov-2008 Jens Axboe <jens.axboe@oracle.com> Add support for giving bw/clat/slat log prefixes

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
8cdabc1df71ec546d47ba4eb1190b8c7b6e62f9a 19-Nov-2008 Jens Axboe <jens.axboe@oracle.com> Fix bug in parser that causes a crash with a bad option

The priority sorting would crash if it failed to lookup both
of the passed in options.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
88b5a391bc2f9eb85066219e453682a746730ead 07-Oct-2008 Aaron Carroll <aaronc@gelato.unsw.edu.au> Add environment-variable substitution to config options

Strings of the form ${VARNAME} in config option strings are substituted with
the value of the environment variable VARNAME. Only the right hand side of
an option assignment undergoes substitution. If VARNAME is empty or
undefined, the empty string is substituted.

Signed-off-by: Aaron Carroll <aaronc@gelato.unsw.edu.au>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
3b8b7135602a4d3a7132fee10da9c1203ab643ad 10-Jun-2008 Jens Axboe <jens.axboe@oracle.com> Add option priorities

For instance, filename= must come after directory= or things will
go wrong. So add a priority value to each option, so that the parser
will take that into account.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
15ca150e8dbfd68aa5beb479fcb3f07447417a04 07-Apr-2008 Jens Axboe <jens.axboe@oracle.com> Mark rwmixcycle option as deprecated in the option parser

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
5ec10eaad3b09875b91e19a20bbdfa06f2117562 06-Mar-2008 Jens Axboe <jens.axboe@oracle.com> Style fixups

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
323d9113db91a8fb2efe93b9916c22f74ff9af3f 01-Mar-2008 Jens Axboe <jens.axboe@oracle.com> Fix recursive dump of options

If a child also had a child, we would miss it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
a3d741fa3bc3120d5b62a56826a97524daa32803 27-Feb-2008 Jens Axboe <jens.axboe@oracle.com> Add --debug=parse for option parsing debug

Adds log.h and debug.h to split the logging and debug bits out of
fio, so that the parser can use them.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
97e8cd444561ef03dd65c6c3c37c934796a4993f 05-Feb-2008 Jens Axboe <jens.axboe@oracle.com> parser: always set off3/4 even if we have more

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
564ca97254984165e06d5fd4b1270bac95ca55fb 14-Dec-2007 Jens Axboe <jens.axboe@oracle.com> Add support for 'bssplit' option, fine grained block size contrl

From the HOWTO addition:

bssplit=str Sometimes you want even finer grained control of the
block sizes issued, not just an even split between them.
This option allows you to weight various block sizes,
so that you are able to define a specific amount of
block sizes issued. The format for this option is:

bssplit=blocksize/percentage:blocksize/percentage

for as many block sizes as needed. So if you want to define
a workload that has 50% 64k blocks, 10% 4k blocks, and
40% 32k blocks, you would write:

bssplit=4k/10:64k/50:32k/40

Ordering does not matter. If the percentage is left blank,
fio will fill in the remaining values evenly. So a bssplit
option like this one:

bssplit=4k/50:1k/:32k/

would have 50% 4k ios, and 25% 1k and 32k ios. The percentages
always add up to 100, if bssplit is given a range that adds
up to more, it will error out.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
d78ee463665c7eb710e5ee5070b7873bee6dc611 10-Aug-2007 Jens Axboe <jens.axboe@oracle.com> Allow upper-case 'X' for hexidecimal in parser

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
fdf287440fa8486f0e96c8597349d5d25e98fb6a 31-Jul-2007 Jens Axboe <jens.axboe@oracle.com> Be a little more clever in finding child options

We don't need ->parent_seen, just start from the next option.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
ef9aff52b10c71a4cb2b3649deaea270fa3944a0 31-Jul-2007 Jens Axboe <jens.axboe@oracle.com> Parent options didn't recurse properly

It only displayed the first found. Add a ->parent_seen and
find all matches.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
afdf935261b23cdf08214e708133318548ddf2c4 31-Jul-2007 Jens Axboe <jens.axboe@oracle.com> Add parent link to options

Then we can nest display for --cmdhelp=all, to tie options
together.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
a61bdfd8846317f431c318e0fe1fb841084ca9ea 30-Jul-2007 Jens Axboe <jens.axboe@oracle.com> Parser: make check_int() accept hex input if prefixed with 0x

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
7f7e6e59f48bbd754847c825075a9c46962e0116 19-Jul-2007 Jens Axboe <jens.axboe@oracle.com> Fix memory overflow bugs

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
523bfadbd46b375012eb5f3898201455b057a1c4 04-Apr-2007 Jens Axboe <jens.axboe@oracle.com> Have strip_blank_end() also strip off any comments

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
0401bca6b35ee32681462713ce9bc0cc2accbbf2 29-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Fix memory overflow with > 64 byte options

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
4d651dad4b3ee17a9be223fc1c0489cd4e304f65 28-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Fix bug with stripping white space at the front of an option

After advancing the passed in pointer, the destination never
got set.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
0f3e35efd9f63ad1a504a7d09fdf12bb3ece13f9 20-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Warn if default value is given for string option without value

That would not make sense, as the option would then always be set
and there would be no way to unset it.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
f085737f15364ba194e5582b19a71eb35d4b8d11 19-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Sort option possible value map

We need to match longest option first, since we have to use
strncmp() to avoid fiddling with postfix options.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
d2bb7fea83d27baaa26fe99d8d1652e3496af70a 15-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Show alias in command help

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
7f9348f80b8734e0f00d7f4b14e58d2255d46ee7 15-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Command help match also on aliases

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b486f76ad31b593caded74f42468ea9adbdc21a7 15-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Accept '-' as siint delimter as well.

Hope this doesn't break any parsing...

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
7837213b66e20a8d91e7069f5823852f42c41440 14-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Add suboption help texts

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
c167dedce798151c8aa8a59be45ce57a5260b1aa 14-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Left justify help output

The right justification may look prettier, but it's harder
to read and find the option.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
af52b3455ad892322aab2791282b6bd4efdfdbf3 13-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Allow explicit setting of a number of files

We currently only allow filename=foo for one file, add the possibility
to specify any number of files by seperating with a colon.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
6612a27b284aec20c137e3e6b267685b8a4c824c 13-Mar-2007 Jens Axboe <jens.axboe@oracle.com> An option need not include ->posval[] entries

So only fail if we actually looked over some entries.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
0e9f7fac2a501f2baeedd11446e9fe102720c27d 01-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Improve friendliness of --cmdhelp

If no match is found, print the closest. Quite handy when
you can't quite remember the exact option name.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
320beefe2d0c5f05f24b4e0c1d13fcb2f1286a78 01-Mar-2007 Jens Axboe <jens.axboe@oracle.com> Don't require 'all' argument to --cmdhelp to dump all options

If an argument isn't given, just dump all commands. This has the
downside that one MUST use --cmdhelp=option to get option help,
where as before --cmdhelp option worked as well.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
ad231bc4f41a9756871455c69d05ea91f1adf727 01-Mar-2007 Joel Becker <joel.becker@oracle.com> [PATCH] parse.c: Make FIO_OPT_STR explicitly one value

The original change had __handle_option() check !first to avoid
parsing an FIO_OPT_STR a second time. However, the caller handle_option()
has a more explicit check. Excluding FIO_OPT_STR there is much cleaner.

Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
71dc58b8a48edee4b0a749d4723d622ffefde304 28-Feb-2007 Joel Becker <Joel.Becker@oracle.com> Fix parser bug

If the option parser sees a ':', it automatically assumes that
you meant a range. It will then try to parse the second half of the
option. This isn't just my external: option, it happens to mem: as
well. That is:

1) Option mem=mmaphuge:/dev/shm/foo
2) handle_option() notices the ':' and stores off ptr2.
3) __handle_option() corectly sees the option "mem" and maps
"mmaphuge" to MEM_MMAPHUGE. It then calls str_mem_cb(), which
stores off the "/dev/shm/foo" after the ':'. Still working
great.
4) Control returns to handle_option(), which sees that ptr2 is
non-NULL. It calls __handle_option() again, pointing to the
string after the ':'.
5) __handle_option() prints an error, as "/dev/shm/foo" is not a
known option.

Fix it by breaking out early for the 2nd parse round if the option
type is a string.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
ec1aee01a92f2e390d7ca14d26eebf6453780c53 26-Feb-2007 Jens Axboe <jens.axboe@oracle.com> Extend option name from 16 to 20 bytes

The file_service_type was too long, making the output look
badly formatted.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b1ec1da670aab645e32303ea5ffaa1e5ca336936 23-Feb-2007 Jens Axboe <jens.axboe@oracle.com> Move handling of possible values into the option parser

Eliminates the need for a callback for any FIO_OPT_STR type
option, unless it needs to do something there other than just
setting the variable.

The possible options are not in an array of value pairs, so we
can easily match an string option with an integer output value.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
f3502ba2dd72d846a388c774a01c6bb833871248 14-Feb-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Exabytes

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
675de85a183099071a56b9b2ecd196569f10236a 10-Feb-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Size parse should use strtoll()

It's a 64-bit quantity, found out when the size= option quit too early
for large non-postfixed values.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
ed92ac0ce9ce1cc64697272d307d4fa7d18ed64c 06-Feb-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Simple support for networked IO

Adds a new ioengine, net. Use with ioengine=net, it supports only strict
reading or writing (no mixed reads/writes) to/from a single host.
The filename given must contain the host and port to connect to (or
listen from).

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
0c9baf913d6d251973798048d29c60507f486ee6 11-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Update irange documentation

Also allow ':' as the range delimeter, and '/' as the
direction delimeter.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
70df2f19d2a456224fee54e17066298b307c3667 11-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Abort early for bad option given to --cmdhelp

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
5b0a8880e2a0dafbdd12cabcb82f8fe728937e65 11-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Warn if both option variable offset and callback given

If the callback is present, it is preferred to the offsets. So
giving offsets with a callback specified doesn't make sense.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
4945ba127a43cad1424ebc75164b7a16a8160933 11-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Pretty up option looping

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
76a43db448f9fd5e9f1397428a433466d98e0d5d 11-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Change O_DIRECT vs buffered setup

Change the default from O_DIRECT IO to normal buffered IO. That makes
more sense, as O_DIRECT is a special case and should be manually
enabled as such.

Do this by adding a option negate switch, so we don't need two sets
of parameters to control these options.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
03b74b3ec5268e731ed7fcaef31c8c0655acd530 11-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Change timeout to runtime and rearrange option entries

Runtime is a more descriptive name - the documentation is updated
as well, however the parsing has added an alias functionality to
support older names as well. So 'timeout' still works.

Also rearrange option entries, now they matter because the --cmdhelp
option will print them in order.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
cda866caa9b9f6598e264d24a8997d24f3c2b1c7 10-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] strtoul() -> strtol() conversion

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
db8e0165bd86c5a4e9909b846acdbd5b22d263b1 10-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Be strict in checking option ranges

Fail if given value falls outside of range instead of adjusting
it automatically.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
63f29372bc1bd69b66816c96d88b9c0bd8f3d8b9 10-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Option minval should be signed

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
13335ddb0e304efa0fc96593dd1fd995ec6f68d7 10-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Introduce bool option type

We can automatically flag those with min/max values.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
15f7918ff432d5da2b2abc84a50c685bde5e72ef 10-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Show allowed option values for string matching

Helpful to avoid looking in the documentation.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
facba0e53b7108d70f34e3eb01b54c2efd73f5f4 10-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Pretty up command help output

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
ee738499877bb1ee913e839cb4a8d4edad2d52ad 10-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Add default option values

It's handy for the help text, and it also cleans up init.c by removing
a bunch of default option defines.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
29fc6afe1bfcb97dd7f33d8e58b99b2d93237d47 09-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Complain if bad option given to 'cmdhelp'

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
fd28ca4948aa67b76585c6c23d7f70a2cdc7a0d5 09-Jan-2007 Jens Axboe <jens.axboe@oracle.com> [PATCH] Add per-option help

It's hard to remember all the options that fio supports, so add a
'cmdhelp' option that either prints all possible options (if argument
is 'all'), or specific option help (if argument is the command).

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
1e97cce9f5a87a67293a05ec4533ed6968698b2e 05-Dec-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Fix warnings from icc

icc spewed a bunch of warnings on building fio, but it did actually build
and work. Some of them are real bugs, most are just "helpful" warnings.

icc doesn't like pointer arithmetic, however these are not fixed up. It
works as-is, just ignore those class of warnings.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
08e26e3579fdae51cc9aafc71a80c638563bf2cd 21-Nov-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Don't segfault on missing argument data

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
92b586f8ec428c23a88eea838afadc00331d4bb4 07-Nov-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Fix options with no parameters

Got broken yesterday, with the addition of the comma separated entries.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
787f7e95a3fb3bbe88431da53337bb9551d2357c 06-Nov-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Allow leading , in multi setting parameter

Allow only setting of the write end of the sizes by having an empty
text for the read side - example, use bs=,8k to just set the write
side and leave the read side with the default value.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
17abbe89b8d3a4c7a4deab00a7cc98fbd215f1ef 06-Nov-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Cleanup 2nd argument set parsing/setting

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
f90eff5a414f6e8c16a51c3a7d9b5e077ab49aac 06-Nov-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] bs= and bsrange= takes both read and write sizes

Get rid of read_bs/write_bs and read_bsrange/write_bsrange. It was ugly
and too complicated. Instead support giving both values in a single bs=
or bsrange= seperated by a comma.

Example: bs=1k,4k will use 1k blocks for reads, 4k blocks for writes.
bs=32k will use 32k blocks for both reads and writes.

Similar for bsrange=

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
75e6f36fae06978f29296fce76a7f00ca0df7b56 03-Nov-2006 Jens Axboe <axboe@suse.de> [PATCH] Fix int vs long problems in parsing some options

The type needs to match strictly, or we get into problems on big
endian architectures.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
0bbab0e789d4d8438d63327da052d64b45f0596a 02-Nov-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] String copy limiting fixes

Avoid overflows when we can.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b1508cf9ead36dc789a4e289f7522a070e57058c 02-Nov-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Improve job/cmd line parsing error logging

Drop jobs when needed and so on.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
5f599d8eae80112b585aabb63b595965689ae4b8 02-Nov-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Print an error when parsing a job option fails

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b765a37296e6a08b6e06d9186832546a18b0d2d7 27-Oct-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Fix modification of const string

Copy 'ptr' to local storage first.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b6e25da4225ca990f6997d2d60fe96a7b51d4661 27-Oct-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] FIO_OPT_RANGE breakage

After terminating the first string, remember to reset the pointer to the
beginning of the string.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
b46928282e0a890f49250e79b81af773a2b7108f 27-Oct-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Add full command line parameter support

You may now give full job options on the command line. Makes it easier
to script fio or for one-off runs, as you don't have to write a job file
and run that.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
33963c6c5f79b89ab93b570e51f68f6abb77c128 27-Oct-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] parse cleanups

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
e1f365035a952233463d85d659bd960ba78f012e 27-Oct-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Abstract option handling

Instead of parsing manually, we abstract out everything so parse.[ch] is
now a generic config file parser. This is the next step towards unifying
command and job options.

I'm sure I broke plenty of options in the process...

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c
cb2c86fdf03241fee32fd2e2caff43af1022403c 26-Oct-2006 Jens Axboe <jens.axboe@oracle.com> [PATCH] Split config name parse functions into parse.c

The plan is to add command line options that mirror the config options,
so fio will be easier to script.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/parse.c