History log of /external/fio/file.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
eda3a60699e1d96bb68875ef2169ca819eb8f4f9 20-May-2017 Elliott Hughes <enh@google.com> Update to fio-2.20.

Bug: N/A
Test: builds, seems to work
Change-Id: I455dcc898f00dc50ae5cb65d1b381982df5a51e0
/external/fio/file.h
d55dd0413b5f2df5e637c9c6e752b4272e4a1e5f 15-Dec-2014 Jens Axboe <axboe@fb.com> file: unionize lfsr/randommap

We only use one of them, add file flags to distinguish between the
two.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/file.h
aa31de7d76f05dae6b015eb882c98a816c1a4b5f 15-Dec-2014 Jens Axboe <axboe@fb.com> Add helpers for getting/setting file engine data

Since it's a uint64_t, we need casting to get/set the engine data
or some platforms will complain. Encapsulate that in helper macros.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/file.h
eea6bedef6357ff84b878f989f758f9a8e441839 15-Dec-2014 Jens Axboe <axboe@fb.com> file: move mmap related data to engines/mmap.c where it belongs

We should not keep this in the generic file structure, it belongs
in file engine data for the specific engine.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/file.h
08a99bed133fdd5dd6ef87c8638b45b135b10a8e 15-Dec-2014 Jens Axboe <axboe@fb.com> Fix read/write mix and different levels of randomness

Stephen reports:

When using fio configuration below:

[global]
ioengine=libaio
direct=1
runtime=600
bs=32k
iodepth=8
rw=randrw
rwmixread=80
percentage_random=100,0

[drive1]
filename=/dev/sda

I am expecting to see 80% reads, 20% writes where all reads are random
and all writes are sequential. I captured a bus trace of traffic to the
disk and the bus trace reflected as much with one issue. The write
commands are essentially random. Each write begins at a new random LBA.
If 2 or more writes occur in a row, the LBA's are sequential based on
the block size BUT I feel the heart of this feature would be to emulate
a large file write during random access. With that in mind would it be
possible for sequential reads or writes within mixed sequential/random
workload to remember the last LBA accessed? In this scenario the writes
would still only take up 20% of the workload but when a write did occur
it should be the next sequential step from the last write.

-----

This is due to the fact that fio tracks last start/end on a unified
basis, not per read/write/trim direction. Fix that.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/file.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/file.h
5903e7b7907854014478b6febfc5645a203ff59e 26-Feb-2014 Jens Axboe <axboe@fb.com> blktrace: load improvements

- Set the state explicitly to SETTING_UP when loading the
traces. This could take a while, so tell the status thread
that we are setting up so it knows how to display us
correctly.

- Fix a bug with multiple devices where we didn't cache the
major/minor properly. This made blktrace spend tons of CPU
cycles looking up /sys.

- Handle multiple devices correctly when adding files.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/file.h
bcbfeefa7bce8383cf85fe59ced91f54821dfbd2 20-Feb-2014 Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com> fio: add multi directory support

This patch adds support for ':' seperated multiple directories at the
directory config statement in order to achieve an automatic distribution
of job clones (numjob) across directories.

That way people can distribute a load across these directories (usually
mount points of disks) automatically - changing numjob will be
sufficient to get all job clones evenly (optimal if dirs % numjobs = 0,
otherwise as good as possible) distributed at all times.

To avoid confused users old config Files will behave like they always
did, old fio binaries using new config files won't abort but just use
the first specified dir. If one specifies an explcit (non generated)
filename the distribution to many directories is also deactivated.

It also fixes an issue of events seeming out of order like when running
with --debug=file seeing the "..." message meaning "I created the
clones" prior to the last clone activities. Now the clones are called
with index N-1 .. 1, zero being the base thread as before.

Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/file.h
bea5c23dfb5166931ff476a483fd66d5e5b10601 12-Feb-2014 Daniel Gollub <daniel.gollub@t-online.de> Make file.h C++ safe by casting fio_file_flags

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

--8<---
[...]
os/../file.h: In function ‘void fio_file_set_open(fio_file*)’:
os/../file.h:142:1: error: invalid conversion from ‘int’ to ‘fio_file_flags’ [-fpermissive]
os/../file.h: In function ‘void fio_file_clear_open(fio_file*)’:
os/../file.h:142:1: error: invalid conversion from ‘int’ to ‘fio_file_flags’ [-fpermissive]
os/../file.h: In function ‘void fio_file_set_closing(fio_file*)’:
[...]
--->8---

Signed-off-by: Daniel Gollub <d.gollub@telekom.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/file.h
002fe73409d1e3d5e7dfe2885f75885bfaf506bc 11-Feb-2014 Jens Axboe <axboe@fb.com> Fix issue with openfiles= and file sizing

Fill the given size as well as we can, given the size and nr
of files.

Fix an issue where we don't properly honor how many files to
keep open at any point in time.

Signed-off-by: Jens Axboe <axboe@fb.com>
/external/fio/file.h
d7df1d133b0c3daad4ae4c731e0dae7b0181fd62 21-Mar-2013 Jens Axboe <axboe@kernel.dk> Rework lockfile= file lock handling

Get rid of the hand rolled rw semaphores, just use pthread
rwlocks instead. Kill the batching too, it was broken by
default, so nobody could have been using it.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
47f07ddc7d3354cd6f985b6468989e5e699c4b53 11-Feb-2013 Jens Axboe <axboe@kernel.dk> Turn f->engine_data into a 64-bit value

Even on 32-bit platforms, we store (uint64_t) -1 in there
for some cases to make it be 'invalid'.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
33c48814e08cf961801bf37f759da2748eb3431b 21-Jan-2013 Jens Axboe <axboe@kernel.dk> Re-seed random generator when a file is reset

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
9cbef5049eb96541128940cc96d60481141bfc1c 04-Jan-2013 Jens Axboe <axboe@kernel.dk> Use uintptr_t for engine data

Gets rid of a warning on 32-bit builds on Linux.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
293b8c1f23bbe4c735cd00fbb7cca1121bf18016 04-Jan-2013 Jens Axboe <axboe@kernel.dk> Start of transition from unsigned long long to uint64_t

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
ef5f5a3a63f8b7c472f30484c520265aba6ef162 12-Dec-2012 Jens Axboe <axboe@kernel.dk> file: unify ->file_data and ->file_pos

The only real use case of ->file_pos was by the sync engine to
avoid an lseek() if the offset was already correct. The e4defrag,
falloc, and fusion-aw engine also set ->file_pos, but that looks
like a case of copy-paste, since they don't actually use it.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
e6c4d732fc99070091367d0ce41fe2cf1ddd1dc9 12-Dec-2012 Jens Axboe <axboe@kernel.dk> file hash: don't close file fd on lookup/add race

On Linux, udev often has a rule that triggers blkid to read data off
the device, if the device has been opened for writing. This triggers
when the device is closed.

Fio has an internal file hash for lookup of files. When threads start,
it can happen that one thread does a hash lookup without finding the
file, but when it has opened the file and attempts to insert it into
the hash, another thread has already completed that operation. When
that race happens, fio closes the file handle and does the lookup
again. That then triggers blkid to read pages off the device. As data
in the cache is invalidated on open of the device, we know have page
cache entries for the device again.

This is a problem for unbuffered workloads, where the existance of
page cache pages slows it down due to having to check for invalidation.
The user observed problem is that fio exhibits bi-modal performance
results, depending on whether the file hash race was hit during setup
or not.

Fix this by NOT closing the file if we hit this race, but instead wait
until the file is closed after the run.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
7ebd796f4e50c21d652e62bf1e112755b0f338a8 28-Nov-2012 Jens Axboe <axboe@kernel.dk> Rename the bitmap to axmap

It's not really a bitmap, it's a bitmap of bitmaps. Now named.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
8055e41d0ecc54770a2653427532b3e2c5fabdad 26-Nov-2012 Jens Axboe <axboe@kernel.dk> Add LFSR generator

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
51ede0b1e9c9b570b942b50b44d0455183a0d5ec 22-Nov-2012 Jens Axboe <axboe@kernel.dk> Rework file random map

Fio slows down at the end of a random IO run, when the random
map is used and it gets fuller. This causes slowdowns in
IOPS. This is largely due to the file random map being an
array of bits, and with random access to single bits of the
array at the time, locality is awful. The effect is observable
throughout a run, though, where it gradually gets slower and
slower. It just becomes more apparent at near the end of the
run, where the last 10% are fairly bad. This is even with
doing a bunch of tricks to reduce that cost.

Implement an N-level bitmap, where layer N uses a single bit
to represent 32/64-bits at layer N-1. The number of layers
depends on the number of blocks.

This has slightly higher overhead initially in theory, in
practice it performs about the same. As a bonus, the throughput
remains constant during the run, and even becomes faster
near the end.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
9c6f63166eaecc13e4b2ca1d80cc1b5e6185fd43 07-Nov-2012 Jens Axboe <axboe@kernel.dk> Make the zipf/pareto state per file

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
1ccc6dc75b28ef70cd7a8c39ac8c1cb68c720a65 19-Sep-2012 Dmitry Monakhov <dmonakhov@openvz.org> export file_lookup_open

generic_open_file is not always appropriate method, but other modules
may want to implement similar callback and use hash optimization.

Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
ce95d651568bd5494e4c4ddc95832715c6760d56 16-Aug-2012 Dan Ehrenberg <dehrenberg@google.com> Fixing wraparound behavior for time-based sequential read jobs

Previously, a buggy patch made sequential jobs wrap around when they
reached an offset of 'size'. However, the appropriate wraparound is at
size + initial offset. This patch restores the previous behavior.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
89ac1d48971578ccb0645c292d4a058340aeb909 11-Jun-2012 Shaohua Li <ShLi@fusionio.com> Fix "fio: file hash not empty on exit" with blktrace replay

There are two problems:
1. blktrace data hasn't file close action
2. redirect file fileno isn't correct

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
93bcfd20e37cef8cec350fe06d3a086724c9f257 20-Feb-2012 Bruce Cran <bruce@cran.org.uk> Move Windows port to MinGW

- Add calls to WSAStartup in the network code as required by
Winsock.
- Add Windows-specific init_random_state function which uses the
Crypto API.
- Move Windows port to MinGW and update build system to create a
64-bit binary by default.
- Install text files as .rtf so they won't open in Notepad by default
(Wordpad understands Unix line endings; Notepad doesn't).
- Simplify WiX installer code.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
0e280eef250c3026e57445c9ebf1e2bbf31cd561 01-Feb-2012 Jens Axboe <axboe@kernel.dk> Grow file num_maps to unsigned long

Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/file.h
a596f047e2b3d447ccca76bd075f05473a1f8d1c 17-Jun-2011 Eric Gouriou <egouriou@google.com> Add ability to invoke fallocate() FALLOC_FL_KEEP_SIZE.

Linux offers fallocate() and the FALLOC_FL_KEEP_SIZE option as
an alternative to posix_fallocate(). When FALLOC_FL_KEEP_SIZE is
specified for an falloc request going beyond the end of the file,
the requested blocks get preallocated without changing the apparent
size of the file. This is is a commonly recommended use of fallocate()
for workloads performing append writes.

This patch modifies the fallocate option from a boolean option
to a string option accepting none/posix/keep/0/1. 'keep' is only
made available on systems where FALLOC_FL_KEEP_SIZE is available
(i.e., Linux at this time). If specified, fallocate() is used
with FALLOC_FL_KEEP_SIZE set. 'none' disables pre-allocation while
'posix' uses posix_fallocate(). The default behavior remains unchaned,
i.e., invoking posix_fallocate. The settings '0'/'1' are there to
provide backward compatibility for users who had explicitly set the
boolean option.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
0ce8b119b65849e537cab628a176a0ec4238aab0 27-Jan-2011 Jens Axboe <jaxboe@fusionio.com> Fix end-of-job slowdown for random IO with a random map

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
e2e58886427019b525d2a234c5404a38ec0c7ebf 04-Jan-2011 Jens Axboe <jaxboe@fusionio.com> OS headers need fio_file definition now

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
ecc314ba7c5f02b7e90ac1dfbce1a74cd4e6d6fe 04-Jan-2011 Bruce Cran <bruce@cran.org.uk> FIO Windows update

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
03e20d687566753b90383571e5e152c5142bdffd 02-Jan-2011 Bruce Cran <bruce@cran.org.uk> First snapshot of FIO for Windows

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
9e700a738f816bebb22333de97414b534c79c267 08-Oct-2010 Jens Axboe <jaxboe@fusionio.com> Add missing file.h f->file_data change

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
0e238572c4e63b0675fd9cbbf168d19ad8d60464 08-Oct-2010 Jens Axboe <jaxboe@fusionio.com> binject: setup and teardown mappings internally

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
49ffb4a2e1ac3026d77d9e1c03edc2753fcec41b 24-Aug-2010 Jens Axboe <jaxboe@fusionio.com> Fix blktrace replay

We would add duplicate files, if the open event comes before
the add file event. Make sure we return the current index file
instead of adding a duplicate, this causes bad file lookups.

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
38dad62d5154ffaad445bd0231b271b9a46a5190 20-Jul-2010 Jens Axboe <jaxboe@fusionio.com> Add rw_sequencer option

Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/file.h
44f29692cfba246981bb3c1b894333a6d2209f51 09-Mar-2010 Jens Axboe <jens.axboe@oracle.com> Initial suppor for sync_file_range()

This revs the ioengine to 11, as we now have another data direction.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/file.h
e943b8785fa19ab5536d91242f1063ae809cdf2b 02-Feb-2010 Jens Axboe <jens.axboe@oracle.com> Track last file offset

Avoids doing an lseek() in the sync IO engine.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/file.h
e8462bd8250cf3ff2d41f17e1a4d4cefc70b6b37 06-Jul-2009 Jens Axboe <jens.axboe@oracle.com> Add support for async IO verification offload

This adds support for setting up a number of IO verification offload
threads, instead of doing the offload inline. An option for controlling
the CPU affinity of those threads are always added.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/file.h
ed47cbf7063df84343cd79fdc64eb7bbf7d6df2a 03-Jul-2009 Jens Axboe <jens.axboe@oracle.com> mmap engine: allow full mmaps for 64-bit machines

No need to do partial mmaps there.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/file.h
c592b9fe12d4739d99d5bece517e304804876df6 03-Jun-2009 Jens Axboe <jens.axboe@oracle.com> More fio.h cleanups

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/file.h
590aebda258e146edd73382121be9c84643d8f1b 03-Jun-2009 Jens Axboe <jens.axboe@oracle.com> Move file service type defines to file.h

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/file.h
4cd02b3f7f4eda0ec263f04422ab6424b7693605 03-Jun-2009 Jens Axboe <jens.axboe@oracle.com> Move more file stuff to file.h

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/file.h
d6aed795f2e3e403828abf60874dd2d6e8342a1b 03-Jun-2009 Jens Axboe <jens.axboe@oracle.com> Clean up file flags

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