History log of /external/fio/thread_options.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
435228488ffd062f4eac710aaa862e04cd20dfee 01-May-2014 Daniel Gollub <daniel.gollub@gmail.com> Avoid buildenv conditional in thread_option struct

Managed to run into issues with an external ioengine
which got build with CONFIG_LIBNUMA not defined. Fio
itself got build with CONFIG_LIBNUMA this resulted
in different struct members offsets in the two different
ELF objects. Causing crashes due to invalidate offsets
inside the thread_data structure (e.g. td->io_ops->data).

Ideally all structs which might be used by external
ioengines should be independent of buildenv conditionals
like CONFIG_LIBNUMA or others.

Removed the CONFIG_LIBNUMA in thread_options.h and replaced
the libnuma specific "struct bitmask" members with strings
which hold the option's input value. This should also make
the marshaling/demarshaling in cconv.c easier.
(Note: the NUMA bits are not handled in cconv.c at the
moment. And not part of the thread_options_packed struct)

Signed-off-by: Daniel Gollub <daniel.gollub@gmail.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/thread_options.h
77731b29c35286a43ca6109ebf13389169ec20e9 28-Apr-2014 Jens Axboe <axboe@fb.com> Add option for io_limit

'size' denotes both the size of the region for IO, as well as the
amount of IO to transfer. Sometimes it's useful to be able to set
them separately instead. With this patch, you can do:

size=100G
io_limit=10G

and have fio do 10G of IO between 0..100G of the address space.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/thread_options.h
bedc9dc24223bb33be4120f4a57718bc54888ca5 17-Mar-2014 Jens Axboe <axboe@fb.com> Add support for file appends

Add option file_append (bool). If set, fio will append to a file
instead of operate within the size of it. This is similar to
setting offset= to the size of each file.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/thread_options.h
c46fda904f38a66f5f68a4b766438c09ef8cddcc 11-Mar-2014 Sébastien Bouchex Bellomié <sbouchex@infovista.com> Fix pointer alignment bug causing SIGBUS on Sparc64

OK, the issue was related to the alignment issue between the
thread_options structure and its "packed" version : The lexxx_to_cpu
macros are incorrectly casting the pointers and that causes an bus
error. I have fixed the issue by avoid casting the pointers and calling
directly the "swap" method.

I have also included a fixed on the thread_options structure regarding
the ddir_seq_add variable : Its length was incorrect.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/thread_options.h
c2acfbac7e9eb8ac5407ac024c0fd000614c77e2 28-Feb-2014 Jens Axboe <axboe@fb.com> Add support for cpus_allowed_policy

Two policies are supported:

shared cpumask is shared between all threads. This is the original
behavior.

split cpumask is split between threads, each thread gets a unique
CPU.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/thread_options.h
cb1402d674fb7694d1b09d7ef4aeb3d4506f23f0 25-Feb-2014 Jens Axboe <axboe@fb.com> Ensure that fio_get_kb_base() doesn't assume 'data' is thread_options

Nasty hack, but at least we don't corrupt option data.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/thread_options.h
23ed19b0e10749dca2389511f78d89db886c064a 20-Feb-2014 Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> fio: provide an option for a startdelay range

This patch allows the specification of start delay as range. With a
range each thread will chose an individual startdelay out of the range.

That solves an issue of startdelay being the same for each numjob clone
and that way spreads all kind of activities e.g. that all clones with
mixed r/w jobs switch r/w at the same time. Also all kind of other
"thundering herd" issues can be softened by some time spread due to this
option.

Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/thread_options.h
56e2a5fc76067c91738f7eb0efbd6ec6d349e0f2 20-Feb-2014 Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> fio: allow general repeatability

This patch adds a "allrandrepeat" option similar to the existing
randrepeat. But other than the former option it does not only affect
the random I/O pattern, but also all remaining users of randomness as
well.

By that e.g. testcases using nrfiles, filesize ranges, blocksizesplit
ranges and so on will stay repeatable across (euqally parametrized) runs
as well. To maintain compatibility the default is off.

Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>

Update by me to fix missing thread_options.h and cconv.c change.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/thread_options.h
363cffa71a96eb4c7595bb8c325a09eb01f766a5 28-Jan-2014 Grant Grundler <grundler@chromium.org> fio: consolidate rand_seed to uint64_t

csscope showed rand_seed was defined 4 times - each a different type.
While they are used differently, the places where they overlap
should reference the same type. This patch makes three of them the same
as suggested by Jens Axboe.

Signed-off-by: Grant Grundler <grundler@chromium.org>

Updated by me to change rand_seed option to unsigned long long
and changes related to that.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
621677626f2551bedfdc4a5fc3b3e5f8492b94fa 17-Sep-2013 Juan Casse <jcasse@chromium.org> Adds verify_only option

When this option is set, a dry run (no actual io is performed) of the
workload will be done in order to compute the numberio for each block
header without overwriting the data on disk. Then, do_verify() will be
effectively verifying data that was written in a previous fio run.
In the case that "loops" is set to more than 1, do_verify() will delay
the verification of numberio to the last iteration when the same
numberio state that would have been written to disk in a previous
fio run has been reached.

Signed-off-by: Juan Casse <jcasse@chromium.org>
Reviewed-by: Grant Grundler <grundler@chromium.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
ce35b1ece06ce27ebff111e47c2a6610c311a92b 14-Jan-2014 Jens Axboe <axboe@kernel.dk> Add option for specifically setting buffer contents

Fio can use zeroes, slightly scrambled data, full random data,
or specifically compressible data. With this option, the user
can now fully control the pattern written, similarly to how
verify_pattern works for verify=meta.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
04778baf2def8c1c5a3d7d60233c56d140831711 11-Jan-2014 Jens Axboe <axboe@kernel.dk> Add option to manually seed the random generators

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
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/thread_options.h
d01612f3ae2515eb035d0c4ce954d8cb167a0a61 15-Nov-2013 Chris Mason <chris.mason@fusionio.com> Add support for O_ATOMIC

O_ATOMIC makes writes atomic, meaning that they are fully stable
on media (in the event of a power cut) when acknowledged by the
device and OS.

This only truly works on Linux with the pending patches to
add O_ATOMIC.

Updated by Jens to:

- Add man page and HOWTO description of the option
- Make O_ATOMIC imply O_DIRECT, so that it actually works if you
don't set O_DIRECT manually.
- Add the option to the conversion list so it works for
client/server.
- Error handling so that if atomic=1 is set and the OS does not
support it, error out instead of just pretending it works.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
5054e67c7d87f25a9eb7b647adaee5e1c9c7cc5b 08-Nov-2013 Jens Axboe <axboe@kernel.dk> Fix access-outside-array of o->rwmix[]

gcc 4.9 rightfully complains about it, though in a very obtuse way:

CC cconv.o
In file included from thread_options.h:5:0,
from cconv.c:3:
cconv.c: In function 'convert_thread_options_to_cpu':
os/os.h:197:16: warning: iteration 2u invokes undefined behavior
[-Waggressive-loop-optimizations]
__le32_to_cpu(*__val); \
^
os/os.h:176:28: note: in definition of macro '__le32_to_cpu'
#define __le32_to_cpu(x) (x)
^
cconv.c:78:17: note: in expansion of macro 'le32_to_cpu'
o->rwmix[i] = le32_to_cpu(top->rwmix[i]);
^
cconv.c:63:2: note: containing loop
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
^
In file included from thread_options.h:5:0,
from cconv.c:3:
cconv.c: In function 'convert_thread_options_to_net':
os/os.h:209:16: warning: iteration 2u invokes undefined behavior
[-Waggressive-loop-optimizations]
__cpu_to_le32(*__val); \
^
os/os.h:179:28: note: in definition of macro '__cpu_to_le32'
#define __cpu_to_le32(x) (x)
^
cconv.c:372:19: note: in expansion of macro 'cpu_to_le32'
top->rwmix[i] = cpu_to_le32(o->rwmix[i]);
^
cconv.c:352:2: note: containing loop
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
^
In file included from thread_options.h:5:0,
from cconv.c:3:
cconv.c: In function 'fio_test_cconv':
os/os.h:209:16: warning: iteration 2u invokes undefined behavior
[-Waggressive-loop-optimizations]
__cpu_to_le32(*__val); \
^
os/os.h:179:28: note: in definition of macro '__cpu_to_le32'
#define __cpu_to_le32(x) (x)
^
cconv.c:372:19: note: in expansion of macro 'cpu_to_le32'
top->rwmix[i] = cpu_to_le32(o->rwmix[i]);
^
cconv.c:352:2: note: containing loop
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
^
In file included from thread_options.h:5:0,
from cconv.c:3:
os/os.h:197:16: warning: iteration 2u invokes undefined behavior
[-Waggressive-loop-optimizations]
__le32_to_cpu(*__val); \
^
os/os.h:176:28: note: in definition of macro '__le32_to_cpu'
#define __le32_to_cpu(x) (x)
^
cconv.c:78:17: note: in expansion of macro 'le32_to_cpu'
o->rwmix[i] = le32_to_cpu(top->rwmix[i]);
^
cconv.c:63:2: note: containing loop
for (i = 0; i < DDIR_RWDIR_CNT; i++) {
^

Fix it by extending the rwmix indexes to the full rwdir count,
even though it doesn't support trim as part of the mix (yet).

Reported-by: Bruce Cran <bruce@cran.org.uk>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
ddf24e42b5f801e6a66f8976c97edcb88080ecdf 09-Aug-2013 Jens Axboe <axboe@kernel.dk> Add number_ios= option

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
6aca9b3d1042bef94958ebee0656755a91695f4b 25-Jul-2013 Jens Axboe <axboe@kernel.dk> Add support for bs_is_seq_rand

This option will switch the meaning of the read,write part of any
blocksize setting to mean sequential,random instead.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
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/thread_options.h
5971116e9e3714d830dcb4bebf7b10e3803cbefd 26-Apr-2013 Jens Axboe <axboe@kernel.dk> Get rid of td->o.perc_seq

No point in tracking both perc_seq and perc_rand, when we know
that perc_seq + perc_rand == 100.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
211c9b8948b43ed47aedf1227e0444a58db015e4 26-Apr-2013 Jens Axboe <axboe@kernel.dk> Add support for modifying the randomness of a workload

Fio supports random or sequential IO, or random IO with a number of
sequential IOs in between. The percentage_random options allows
more fine grained control over this. It defaults to 100, which would
make any random workload still purely random. If set below 100,
there will be some percentage of sequential IOs. This happens randomly,
but at the specified percentages.

The percentage_sequential option is just the complement of that, it
is guaranteed that:

percentage_sequential + percentage_random == 100%

The later setting has priority, each will adjust the other.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
3c978125e2bc883a9e69f0bae0122f936f995f17 17-Apr-2013 Jens Axboe <axboe@kernel.dk> Split out td error handling code

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
8f91cc3f7835cdca84944d456e1da77d44a7c354 11-Apr-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'gfio' into gfio-int

Conflicts:
backend.c
fio.c
fio.h
init.c
libfio.c
options.c
thread_options.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
888677a428eb6ae6b54195e99734d6d6b3ee55e7 10-Apr-2013 Jens Axboe <axboe@kernel.dk> Merge in zipf differences from gfio

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
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>
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/thread_options.h
8062f52754eb548cfd1de892a983fd5f0e63b347 10-Apr-2013 Jens Axboe <axboe@kernel.dk> Add thread_options.h

The options are always problematic to merge between the master
repo and gfio. So import this bit from gfio.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
22f80458a520d0c5371c64bf91d24cdd21dff825 09-Apr-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
eta.c
fio.h
init.c
options.c
stat.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
d7213923067aa49922962a469a691c3ec951064d 21-Mar-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
fio.h
options.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
95820b6e6c92025df8d89c0bf39b174e53137c41 31-Jan-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
client.c
configure
fio.c
fio.h
server.c
server.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
836fcc0fceb233ebcc41ee63b4ea5cae20b678a4 24-Jan-2013 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
backend.c
client.c
fio.c
fio.h
ioengine.h
options.c
os/os-linux.h
server.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
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>
b999b3c74daa2dedd398544e898b54d8b221314c 24-Sep-2012 Jens Axboe <axboe@kernel.dk> server: include new options, bump server rev

Todo: convert the new error additions across the wire.

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

Conflicts:
backend.c
fio.h
io_u.c

Signed-off-by: Jens Axboe <axboe@kernel.dk>
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>
fb390e242cac8868e01cdc2046c63e04e3d53d70 07-May-2012 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
Makefile
backend.c
client.c
fio.h
os/windows/install.wxs
server.c
server.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
203160d52b866497caef35335a7032fb9702a4af 29-Mar-2012 Jens Axboe <axboe@kernel.dk> options: get rid of more .cb option usage we don't need

- The lat/bw/iops log does not need two ways of storing whether
they are enabled or not. Just change the option to a string
storing variant, and use the existance of a filename to see
if it's set or not.

- The trim_percentage option need not have a callback, the
parser knows the limits and can store it appropriately.

- The verify_offset option can express it's minimum value
directly, it doesn't need a callback to set it on its own.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
28727df79348d4ebbd8fd4b0dd89bbca035f68d0 29-Mar-2012 Jens Axboe <axboe@kernel.dk> options: move ioprio/ioprio_class into thread_options space

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
ae278f9a37b942132595b339389160a250a966a8 28-Mar-2012 Jens Axboe <axboe@kernel.dk> Add o->lockmem to conversion functions

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
1b79a070d9307ad57cea5922292241bd3851a039 28-Mar-2012 Jens Axboe <axboe@kernel.dk> Make lockmem a per job option

We need to get rid of per job options that fiddle with global
state. It's confusing, and it breaks remote option handling.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
83ea422a62b8a42b14c362db61c2e7bf53862e80 28-Mar-2012 Jens Axboe <axboe@kernel.dk> Start the process of making options more gfio friendly

We either need to eliminate the option callbacks, or ensure that
they don't have side effects outside of touching td->o. We will
need to use &td->o as the data passed in for the callbacks, not
the full td.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
0353050fe32065e1932a43a7c39a7c390ea71142 19-Mar-2012 Jens Axboe <axboe@kernel.dk> cpu: move cpuload/cpuchunks options into private engine option space

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
588b7f09161ff432777de4cf9c3345b6f976ad98 19-Mar-2012 Jens Axboe <axboe@kernel.dk> gfio: fill default options on new job

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
6a4cf74fc2521b601cb1cc9478526cc441830a5c 16-Mar-2012 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
fio.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
e476994eed3bee246ca166ea6ad6018911408e9b 13-Mar-2012 Jens Axboe <axboe@kernel.dk> Merge branch 'master' into gfio

Conflicts:
client.c
fio.h

Signed-off-by: Jens Axboe <axboe@kernel.dk>
51167799022df58d45a99bbd7aa9cf81a47c46c9 08-Mar-2012 Jens Axboe <axboe@kernel.dk> Add basic cconv test

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
2dc1cbb52f73303d479a72e99930a2838c4b0fa4 08-Mar-2012 Jens Axboe <axboe@kernel.dk> Add thread_options_pack structure

First step towards having an on-disk and on-wire independent
options structure, with the goal being that we parse options
locally (hence allowing them to be edited sanely) and send them
to the server in one nice package.

Additionally, this is a step towards being able to have a new
fio/gfio "project" file format, which includes all the info a
given client needs. This includes job options, where to connect,
etc.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h
ec41265e81c70d8573d1359e27876c37c30c7d9d 08-Mar-2012 Jens Axboe <axboe@kernel.dk> Abstract out the thread_options structure

We need to prepare to have an on-disk/net version of the same.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/thread_options.h