summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
4 daysMakefile: Suppress `-Wimplicit-fallthrough` when compiling `lex.yy`HEADmasterAmmar Faizi
lex.yy.c is an auto generated C file. When compiling with clang-15, we got the following warning: ``` CC lex.yy.o lex.yy.c:1444:5: warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough] case EOB_ACT_END_OF_FILE: ^ lex.yy.c:1444:5: note: insert '__attribute__((fallthrough));' to silence this warning case EOB_ACT_END_OF_FILE: ^ __attribute__((fallthrough)); lex.yy.c:1444:5: note: insert 'break;' to avoid fall-through case EOB_ACT_END_OF_FILE: ^ break; 1 warning generated. ``` There is nothing we can do to fix lex.yy.c since it's an auto generated file. Fix this by appending `-Wno-implicit-fallthrough` when compiling this file if we have `-Wimplicit-fallthrough` flag enabled. Reviewed-by: Niklas Cassel <niklas.cassel@wdc.com> Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org> Link: https://lore.kernel.org/r/20220512164333.46516-4-ammarfaizi2@gnuweeb.org Signed-off-by: Jens Axboe <axboe@kernel.dk>
4 daysbackend: Fix indentationAmmar Faizi
Reviewed-by: Niklas Cassel <niklas.cassel@wdc.com> Signed-off-by: Ammar Faizi <ammarfaizi2@gnuweeb.org> Link: https://lore.kernel.org/r/20220512164333.46516-2-ammarfaizi2@gnuweeb.org Signed-off-by: Jens Axboe <axboe@kernel.dk>
4 daysexamples: add example job file for xnvme engine usageAnkit Kumar
Co-Authored-By: Ankit Kumar <ankit.kumar@samsung.com> Co-Authored-By: Simon A. F. Lund <simon.lund@samsung.com> Link: https://lore.kernel.org/r/20220511163019.5608-4-ankit.kumar@samsung.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
4 daysdocs: documentation for xnvme ioengineAnkit Kumar
Signed-off-by: Ankit Kumar <ankit.kumar@samsung.com> Link: https://lore.kernel.org/r/20220511163019.5608-3-ankit.kumar@samsung.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
4 daysengines/xnvme: add xnvme engineAnkit Kumar
This patch introduces a new fio engine to work with xNVMe >= 0.2.0. xNVMe provides a user space library (libxnvme) to work with NVMe devices. The NVMe driver being used by libxnvme is re-targetable and can be any one of the GNU/Linux Kernel NVMe driver via libaio, IOCTLs, io_uring, the SPDK NVMe driver, or your own custom NVMe driver. For more info visit https://xnvme.io https://github.com/OpenMPDK/xNVMe Co-Authored-By: Ankit Kumar <ankit.kumar@samsung.com> Co-Authored-By: Simon A. F. Lund <simon.lund@samsung.com> Co-Authored-By: Mads Ynddal <m.ynddal@samsung.com> Co-Authored-By: Michael Bang <mi.bang@samsung.com> Co-Authored-By: Karl Bonde Torp <k.torp@samsung.com> Co-Authored-By: Gurmeet Singh <gur.singh@samsung.com> Co-Authored-By: Pierre Labat <plabat@micron.com> Link: https://lore.kernel.org/r/20220511163019.5608-2-ankit.kumar@samsung.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-05-01Merge branch 'patch-1' of https://github.com/ferdnyc/fioJens Axboe
* 'patch-1' of https://github.com/ferdnyc/fio: README: Update Fedora pkg URL
2022-05-01README: Update Fedora pkg URLFrank Dana
2022-04-29Merge branch 'global_dedup' of https://github.com/bardavid/fioJens Axboe
* 'global_dedup' of https://github.com/bardavid/fio: adding an example for dedupe_global usage and DRR testing Introducing support for generation of dedup buffers across jobs. The dedup buffers are spread evenly between the jobs that enabled the dedupe_global option
2022-04-28adding an example for dedupe_global usage and DRR testingBar David
Signed-off-by: Bar David <bardavvid@gmail.com>
2022-04-27Introducing support for generation of dedup buffersBar David
across jobs. The dedup buffers are spread evenly between the jobs that enabled the dedupe_global option Note only dedupe_mode=working_set is supported. Note compression is supported with the global dedup enabled Signed-off-by: Bar David <bardavvid@gmail.com>
2022-04-17Merge branch 'fix/json/strdup_memory_leak' of https://github.com/dpronin/fioJens Axboe
* 'fix/json/strdup_memory_leak' of https://github.com/dpronin/fio: updated logging of iops1, iops2, ratio in FioJobTest_iops_rate fixed bunch of memory leaks in json constructor
2022-04-17updated logging of iops1, iops2, ratio in FioJobTest_iops_rateDenis Pronin
log iops1 and iops2 upon reading json_data from results log ratio as iops2 / iops1 Signed-off-by: Denis Pronin <dannftk@yandex.ru>
2022-04-17fixed bunch of memory leaks in json constructorDenis Pronin
fixed memory leak produced by not freed string given by 'strdup' in 'json_object_add_value_string' function Signed-off-by: Denis Pronin <dannftk@yandex.ru>
2022-04-17Merge branch 'fix/jobs_eta_memory_leak' of https://github.com/dpronin/fioJens Axboe
* 'fix/jobs_eta_memory_leak' of https://github.com/dpronin/fio: use flist_first_entry instead of flist_entry applied to 'next' list item fixed memory leak of not freed jobs_eta in several cases
2022-04-17use flist_first_entry instead of flist_entry applied to 'next' list itemDenis Pronin
use flist_first_entry in 'handle_xmits' function Signed-off-by: Denis Pronin <dannftk@yandex.ru>
2022-04-17fixed memory leak of not freed jobs_eta in several casesDenis Pronin
used 'free' function in 'print_thread_status' and in 'show_thread_status_json' functions to free jobs_eta previously allocated Signed-off-by: Denis Pronin <dannftk@yandex.ru>
2022-04-17Merge branch 'fix/memory-leak' of https://github.com/dpronin/fioJens Axboe
* 'fix/memory-leak' of https://github.com/dpronin/fio: fixed possible and actual memory leaks
2022-04-10Merge branch 'fix/remove-sudo-in-test-script' of https://github.com/dpronin/fioJens Axboe
* 'fix/remove-sudo-in-test-script' of https://github.com/dpronin/fio: actions-full-test.sh, removed sudo from the script
2022-04-10actions-full-test.sh, removed sudo from the scriptDenis Pronin
the script might be called with 'sudo' from the call site, if required Signed-off-by: Denis Pronin <dannftk@yandex.ru>
2022-04-10fixed possible and actual memory leaksDenis Pronin
backend.c: release memory occupied by the parent process for options ioengines.c: free_ioengine entry point is protected by 'assert' call upon td and td->io_ops Signed-off-by: Denis Pronin <dannftk@yandex.ru>
2022-04-08iolog: Use %llu for 64-bitJens Axboe
The previous fix was a bit dump, we need %llu on 32-bit. Fi that and the cast. Fixes: 11cb686eeda8 ("iolog: fix warning for 32-bit compilation") Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-04-08iolog: fix warning for 32-bit compilationJens Axboe
Cast the 64-bit value, we can't print it directly as %lu. Fixes: e8cf24e570e0 ("iolog: add iolog_write for version 3") Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-04-08iolog: update man page for version 3Mohamad Gebai
Add documentation for iolog version 3, mainly the differences between versions 2 and 3. Signed-off-by: Mohamad Gebai <mogeb@fb.com> Link: https://lore.kernel.org/r/20220407174031.599117-4-mogeb@fb.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-04-08iolog: add iolog_write for version 3Mohamad Gebai
Add timestamps to all actions for iolog version 3. Fio now generates iolog files using version 3 by default, and only supports writing using that version. Reading iolog v2 still works as expected. Signed-off-by: Mohamad Gebai <mogeb@fb.com> Link: https://lore.kernel.org/r/20220407174031.599117-3-mogeb@fb.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-04-08iolog: add version 3 to support timestamp-based replayMohamad Gebai
Version 3 format looks as follows: timestamp filename action offset length All file and IO actions must have timestamps, including 'add'. The 'wait' action is not allowed with version 3 so that we can leave all timing functionality to timestamps. Signed-off-by: Mohamad Gebai <mogeb@fb.com> Link: https://lore.kernel.org/r/20220407174031.599117-2-mogeb@fb.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-04-06Fio 3.30fio-3.30Jens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-04-05smalloc: fix ptr address in redzone error messageVincent Fu
sfree_check_redzone is passed a pointer to the address of the *header* of an allocated block. This does not match the address of any of the buffers returned by smalloc. Adjust the value printed out to refer to the address returned by smalloc associated with the header in question. This makes debugging easier because it allows us to more easily identify the buffer where over-/under-run occurred. Signed-off-by: Vincent Fu <vincent.fu@samsung.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-03-30Rename 'fallthrough' attribute to 'fio_fallthrough'Jens Axboe
fallthrough is reserved in C++, so this causes issues with C++ programs pulling in the fio.h -> compiler.h header. Rename it to something fio specific instead. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-03-29Merge branch 'status-interval-finished-jobs' of https://github.com/mmkayPL/fioJens Axboe
* 'status-interval-finished-jobs' of https://github.com/mmkayPL/fio: Handle finished jobs when using status-interval
2022-03-29Handle finished jobs when using status-intervalKozlowski Mateusz
stat: When printing job stats with status-interval, don't keep adding values to the total runtime if the jobs are already finished. This should fix the printing of the intermediate runtime/average BW etc. Signed-off-by: Kozlowski Mateusz <mateusz.kozlowski@intel.com>
2022-03-28Merge branch 'master' of https://github.com/cccheng/fioJens Axboe
* 'master' of https://github.com/cccheng/fio: Fix compile error of GCC 4
2022-03-28Fix compile error of GCC 4Chung-Chiang Cheng
gcc-4.9.3 doesn't recognize __has_attribute(__fallthrough__) and reports the following error. CC crc/crc32c-arm64.o In file included from crc/../os/../file.h:5:0, from crc/../os/os-linux.h:32, from crc/../os/os.h:39, from crc/crc32c-arm64.c:2: crc/../os/../compiler/compiler.h:74:20: error: missing binary operator before token "(" Makefile:501: recipe for target 'crc/crc32c-arm64.o' failed make: *** [crc/crc32c-arm64.o] Error 1 Signed-off-by: Chung-Chiang Cheng <cccheng@synology.com>
2022-03-24Merge branch 'github-1372' of https://github.com/vincentkfu/fioJens Axboe
* 'github-1372' of https://github.com/vincentkfu/fio: io_u: produce bad offsets for some time_based jobs
2022-03-23io_u: produce bad offsets for some time_based jobsVincent Fu
Allow get_next_seq_offset to produce bad offsets for time_based jobs when fio is accessing more than one file. Otherwise fio will not skip to the next file once the current one is done. Fixes: https://github.com/axboe/fio/issues/1372 Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
2022-03-20engines/null: use correct -includeJens Axboe
Fixes: cef0a8357b3f ("engines/null: update external engine compilation") Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-03-20Merge branch 'master' of https://github.com/jnoc/fioJens Axboe
* 'master' of https://github.com/jnoc/fio: Added citation.cff for easy APA/BibTeX citation directly from the Github repository
2022-03-20Added citation.cff for easy APA/BibTeX citation directly from the Github ↵Jonathon Carter
repository Signed-off-by: Jonathon Carter <hello@jcarter.uk>
2022-03-20engines/null: update external engine compilationJens Axboe
Everything needs to include config-host.h, and make sure that the C++ side uses the right type for the queue op. Fixes: https://github.com/axboe/fio/issues/1371 Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-03-15Merge branch 'flags-fix' of https://github.com/albertofaria/fioJens Axboe
* 'flags-fix' of https://github.com/albertofaria/fio: Properly encode engine flags in thread_data::flags
2022-03-15Properly encode engine flags in thread_data::flagsAlberto Faria
We have 16 engine flags and an 18-bit shift, so cast engine flags to unsigned long long before shifting to avoid dropping FIO_ASYNCIO_SYNC_TRIM and FIO_NO_OFFLOAD. Also make thread_data::flags unsigned long long to ensure it fits all flags even when longs are 32 bit, and fix TD_ENG_FLAG_MASK. Signed-off-by: Alberto Faria <afaria@redhat.com>
2022-03-11t/dedupe: ensure that 'ret' is initializedJens Axboe
Fixes: 16b1e2456234 ("t/dedupe: handle errors more gracefully") Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-03-11t/dedupe: handle errors more gracefullyJens Axboe
Don't assert for a deflate error, properly check for it and pass it back up the stack so we can abort the thread. Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-03-10Merge branch 'fuzz-cleanup' of https://github.com/vincentkfu/fioJens Axboe
* 'fuzz-cleanup' of https://github.com/vincentkfu/fio: fuzz: avoid building t/fuzz/parse_ini by default
2022-03-10t/io_uring: only enable sync if we have preadv2Jens Axboe
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-03-10fuzz: avoid building t/fuzz/parse_ini by defaultVincent Fu
With a vanilla build t/fuzz/parse_ini will segfault because the symbol FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is not defined. If the symbol FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION is defined, fio won't tear down shared memory on program termination. Not tearing down shared memory is necessary for t/fuzz/parse_ini to work correctly. Don't build t/fuzz/parse_ini unless CFLAGS contains -DFUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION. Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
2022-03-10Merge branch 'improvement/enable-asan' of https://github.com/dpronin/fioJens Axboe
* 'improvement/enable-asan' of https://github.com/dpronin/fio: ASAN enabling when configuring Signed-off-by: Jens Axboe <axboe@kernel.dk>
2022-03-10Merge branch 'improvement/prevent-sigsegv-when-dup-files' of ↵Jens Axboe
https://github.com/dpronin/fio * 'improvement/prevent-sigsegv-when-dup-files' of https://github.com/dpronin/fio: improvements in dup_files function
2022-03-10Merge branch 'refactoring/configure' of https://github.com/dpronin/fioJens Axboe
* 'refactoring/configure' of https://github.com/dpronin/fio: configure script refactoring
2022-03-10Merge branch 'master' of https://github.com/dpronin/fioJens Axboe
* 'master' of https://github.com/dpronin/fio: fixed memory leak detected by ASAN
2022-03-10ASAN enabling when configuringDenis Pronin
introduced opportunity for a user to enable ASAN for the compiler when calling 'configure' script using '--enable-asan' option Signed-off-by: Denis Pronin <dannftk@yandex.ru>