67bf982340d95ca98098ea050b54b4c7adb116c0 |
|
10-Jan-2013 |
Jens Axboe <axboe@kernel.dk> |
Add configure script Get rid of all the fragile guessing and checking of features, and roll a configure script instead. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/engines/splice.c
|
24d23ca76f9be4500270e7074a1dab038e3a4a2b |
|
13-Nov-2012 |
Jens Axboe <axboe@kernel.dk> |
Get rid of uninitialized_var() It causes complaints on other compilers (clang). One case was actually not used at all, initialize the rest to 0. Signed-off-by: Jens Axboe <axboe@kernel.dk>
/external/fio/engines/splice.c
|
76a3179ec3b849e4d4b0324ab3f517beec816bdf |
|
13-May-2011 |
Jens Axboe <jaxboe@fusionio.com> |
splice: use ->o.memalign to indicate we want aligned buffers Vasilis Liaskovitis reports: --- I am trying to use the splice ioengine to read/write from/to tmpfs (/dev/shm). Writing works fine e.g. with the following fio config: [sw] rw=write size=1g directory=/dev/shm iodepth=32 direct=0 blocksize=512k numjobs=1 nrfiles=1 ioengine=splice loops=1 group_reporting create_on_open=1 create_serialize=0 But reading the same file afterwards with the splice ioengine fails: [sw] rw=read size=1g directory=/dev/shm iodepth=32 direct=0 blocksize=512k numjobs=1 nrfiles=1 ioengine=splice loops=1 group_reporting root@server1:~/fio# ./fio /root/fior_splice.fio sw: (g=0): rw=read, bs=512K-512K/512K-512K, ioengine=splice, iodepth=32 fio 1.53 Starting 1 process fio: pid=17504, err=22/file:filesetup.c:502, func=open(/dev/shm/sw.1.0), error=Invalid argument Run status group 0 (all jobs): Is something misconfigured in the fio read config? The --debug=all output is: Starting 1 process file 17517 setup files file 17517 get file size for 0x7f2f87451028/0/0x7f2f87451108 diskutil 17517 /dev/shm/sw.1.0 belongs to maj/min 0/17 process 17517 pid=0: runstate 0 -> 1 process 17517 will fork mutex 17517 wait on startup_mutex process 17519 jobs pid=17519 started process 17519 pid=17519: runstate 1 -> 2 mutex 17519 up startup_mutex mutex 17519 wait on td->mutex mutex 17517 done waiting on startup_mutex process 17517 pid=17519: runstate 2 -> 4 mutex 17519 done waiting on td->mutex mem 17519 Alloc 16777216 for buffers [...] file 17519 trying file /dev/shm/sw.1.0 10 file 17519 fd open /dev/shm/sw.1.0 file 17519 file not found in hash /dev/shm/sw.1.0 file 17519 get file /dev/shm/sw.1.0, ref=0 io 17519 invalidate cache /dev/shm/sw.1.0: 0/1073741824 file 17519 fd close /dev/shm/sw.1.0 file 17519 error 1 on open of /dev/shm/sw.1.0 file 17519 get_next_file_rr: (nil) fio: pid=17519, got signal=11 process 17517 pid=17519: runstate 4 -> 9 process 17517 terminate group_id=-1 process 17517 setting terminate on sw/17519 diskutil 17517 update io ticks Other fio ioengines (sync, vsync) work fine for both reading/writing on tmpfs. Also, other splice tests can do both reads and writes to tmpfs (e.g. splice-cp). This happens with current fio-master or fio-1.38-1 (debian package) thanks for any comments, --- The reason is that splice uses ->o.odirect to set that we want aligned buffers, but we actually have a flag for that now. So just use that. Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/engines/splice.c
|
a3edaf76b30880c3bf4455c30614ce88cdbbe071 |
|
26-Sep-2010 |
Jens Axboe <jaxboe@fusionio.com> |
Use log_err() in the io engines Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/engines/splice.c
|
a5f3027cb0495dfe217b2626d248fcc054e7e878 |
|
20-Jul-2010 |
Jens Axboe <jaxboe@fusionio.com> |
Initial commit for TRIM/DISCARD support Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
/external/fio/engines/splice.c
|
f011531e61ae750cdf82074e0dea1379b07fa239 |
|
09-Mar-2010 |
Jens Axboe <jens.axboe@oracle.com> |
Update libaio/posixaio/splice for sync updates Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
9c0d224129b0c59698e4c77e7fed00dc8cbb50e1 |
|
01-Jul-2009 |
Jens Axboe <jens.axboe@oracle.com> |
Don't allow pre_read on IO engines that cannot seek We cannot pre-read files, if we cannot seek back and read the same data again. So just disable it with a warning to the user. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
cd98801fbed25dcc49f58cf1451af22f0455a6e6 |
|
20-Apr-2009 |
Jens Axboe <jens.axboe@oracle.com> |
splice engine: fix vmsplice() problem with block sizes larger than a pipe Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
df9c26b10275a631e83e7cc92d5f7384998b2c49 |
|
05-Mar-2009 |
Jens Axboe <jens.axboe@oracle.com> |
Avoid opening files until they are used Fio still opens and creates all files, just to check the size of them. Add a specialized IO engine op for getting the size of a file and use that instead. This also cleans a lot of things up. Note that the IO engine version is now bumped to 10, meaning that external engines will have to separate the file open from the size checking. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
f3f552b9920cc45c5b1f9c679f36b8ddb13927d0 |
|
13-Jun-2008 |
Jens Axboe <jens.axboe@oracle.com> |
Add uninitialized_var() to silence bogus compiler warnings Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
0aa417a9515f9dc17523c1870f6409370e94ca19 |
|
09-Jun-2008 |
Jens Axboe <jens.axboe@oracle.com> |
splice: if splicing fails with EINVAL, it's most likely missing fs support So tell the user in more direct terms. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
2992b059b8f54ac91e723a8bde629b4d8fed513e |
|
30-May-2008 |
Jens Axboe <jens.axboe@oracle.com> |
close_ioengine() clears ->data after calling engine cleanup Then we can remove that bit from io engines. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
3a6d267d644226983a430cf0f217c27f4c38cd45 |
|
16-Oct-2007 |
Jens Axboe <jens.axboe@oracle.com> |
splice: fix fallback from copy vmsplice to nothing Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
8b850243258107412710cd38252f0cfb8802593d |
|
16-Oct-2007 |
Jens Axboe <jens.axboe@oracle.com> |
splice: fix problem with current mainline kernels splice was updated to work well with the newer vmsplice patches, where we don't have to copy data at all. But that broke the regular vmsplice that copies data, which is all the mainline kernel still support. Fix that up, so we do appropriate fallbacks. Fixes the problem reported by gurudas pai <gurudas.pai@oracle.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
7101d9c24abec4be58a086d85d6d92ec6e6492e9 |
|
12-Sep-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Full readonly check Both in core and in engines. To the extent possible, this should catch even fio errors. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
81887d5dcd608492e59ed3fb2ac8fcb463223120 |
|
07-Sep-2007 |
Jens Axboe <jens.axboe@oracle.com> |
splice: update to new vmsplice-to-user interface I changed the kernel bits (they aren't merged yet), so update the fio splice engine to reflect that. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
a26fc7c568964658aa2b98610ebd9054e2477456 |
|
05-Sep-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Fix splice engine compile We need to move the splice_unmap_io_u() function. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
bb446c117849b39ece795602774c3716eef6064a |
|
04-Sep-2007 |
Jens Axboe <jens.axboe@oracle.com> |
splice engine: add unmapping for vmsplice-to-user Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
436885758c1b859392b80c616c338f9cfe9a9dfb |
|
14-Aug-2007 |
Jens Axboe <jens.axboe@oracle.com> |
splice: automatically detect whether vmsplice-to-user works Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
f24254e1d142e80dc76d1f2e316da12f6ec125ee |
|
13-Jun-2007 |
Jens Axboe <jens.axboe@oracle.com> |
splice engine: support for vmsplice to user space Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
317b95d07d4921d2594a1be6e014c9c2d062fe75 |
|
02-Apr-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Move os/arch/compiler headers into directories Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
b4ba5f302c467dc10c8b89459a8cb97d2958f359 |
|
02-Apr-2007 |
Jens Axboe <jens.axboe@oracle.com> |
splice engine: return negative for error Otherwise fio_splice_queue() will think it has handle errno number of bytes. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
da751ca9665bcdeca56d2eec5b629a0953c07662 |
|
14-Mar-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Update io engine comments Some were plain wrong, mainly because they were born through copying an existing engine. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
b5af82930ccfd7dda6a1b11794efb452eb76d8dc |
|
08-Mar-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Revamp file open/close handling Some IO engines need special handling for opening and closing files, and this has complicated the fio filesetup.c file. Instead have the io engine provide hooks for file open/close. This also greatly cleans up the flags (we can get rid of SELFOPEN and MMAPIO) and moves private knowledge into the engines where it belongs. This potentially destabilizes fio somewhat, so testing is needed. The new openfiles option that is introduced with this change isn't verified working yet, hence it isn't documented. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
e1161c325f7866bae879e686d1c673ca32ab09ae |
|
22-Feb-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Add more context to the error messages Errors like: fio: pid=0, err=22/file:filesetup.c:380, error=Invalid argument do not give a lot of clue as to what is wrong, unless you have a matching source. So add a context relevant info message as well. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
22819ec237297fc39435ed566bee01a4225bfb39 |
|
18-Feb-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Unify and fixup error handling First step in getting ->queue() and ->getevents() handled in a more sane fashion. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
36167d82e5f49dee91c6d2cd426068edee90e36f |
|
18-Feb-2007 |
Jens Axboe <jens.axboe@oracle.com> |
Change IO engine queuing Instead of always pretending to be async, let the IO engines return FIO_Q_COMPLETED or FIO_Q_QUEUED to signal async or sync completions regardless of their nature. This cleans up the queuing model quite a bit. Also fixed a verification error spotted while doing this transformation. The main intent of this is to allow queuing more than 1 piece of IO at the time, that will come in a later changeset. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
95bcd815e5ce55d6cdd8eb83bda5ee411f37bdc9 |
|
11-Feb-2007 |
Jens Axboe <jens.axboe@oracle.com> |
[PATCH] Move td_verror() into io_ops->queue() hook Shows where the error occured, not where it got noticed. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
cec6b55da1c282b5b91ad346c7804171fccf151e |
|
06-Feb-2007 |
Jens Axboe <jens.axboe@oracle.com> |
[PATCH] Support residual io counts from io engines We need this for requeuing support, the network engine makes this pretty apparent (it's not unusual to see short tranfers there). Basically we add an xfer_buf and xfer_buflen member to the io_u, and these are the fields that the io engine MUST use. That allows fio to increment and reset these appropriately, and simply requeue the io_u for service of the next part of it. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|
f8fe35e8c9e88dd681ea151251d75f6116a958b4 |
|
06-Feb-2007 |
Jens Axboe <jens.axboe@oracle.com> |
[PATCH] Rename io engines Typing fio-engine-foo is annoying, just rename them to their type. They already reside in a private directory, no point in putting the fio-engine prefix on the files. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
/external/fio/engines/splice.c
|