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
|