Recent changes (master)
The following changes since commit b384f4d3472e9dae62122c631899bac86368df63:
ci: add Alpine Linux container test platform (2026-07-23 14:28:28 -0400)
are available in the Git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to c76c61b0fbe1b90a7886b8790805cf9903285074:
ci: add a test for OOM issue with large iolog trims (2026-07-27 12:19:07 -0400)
----------------------------------------------------------------
Vincent Fu (1):
ci: add a test for OOM issue with large iolog trims
t/jobs/t0038-397f1338.fio | 16 ++++++++++++++++ t/jobs/t0038.iolog | 24 ++++++++++++++++++++++++ t/run-fio-tests.py | 19 +++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 t/jobs/t0038-397f1338.fio create mode 100644 t/jobs/t0038.iolog
---
Diff of recent changes:
t/jobs/t0038-397f1338.fio new file +16 -0
@@ -0,0 +1,16 @@ +# +# Make sure that Fio appropriately ignores the sizes of trim commands when +# determining how much memory to allocate when reading an iolog. +# +# The iolog issues large trim and small write commands. Since trim is a +# metadata-only command in this context Fio does not need to size the data +# buffer to accommodate the sizes of the trims. +# +# Expected result: Job completes without issue +# Buggy result: Job fails with out-of-memory error +# + +[test] +read_iolog=t0038.iolog +ioengine=null +iodepth=128
t/jobs/t0038.iolog new file +24 -0
@@ -0,0 +1,24 @@ +fio version 3 iolog +30 /dev/null add +10731 /dev/null open +10736 /dev/null trim 0 2147483648 +10752 /dev/null write 0 4096 +10780 /dev/null trim 4096 2147483648 +10782 /dev/null write 4096 4096 +10784 /dev/null trim 8192 2147483648 +10785 /dev/null write 8192 4096 +10787 /dev/null trim 12288 2147483648 +10788 /dev/null write 12288 4096 +10791 /dev/null trim 16384 2147483648 +10793 /dev/null write 16384 4096 +10795 /dev/null trim 20480 2147483648 +10797 /dev/null write 20480 4096 +10798 /dev/null trim 24576 2147483648 +10799 /dev/null write 24576 4096 +10801 /dev/null trim 28672 2147483648 +10802 /dev/null write 28672 4096 +10804 /dev/null trim 32768 2147483648 +10806 /dev/null write 32768 4096 +10808 /dev/null trim 36864 2147483648 +10809 /dev/null write 36864 4096 +10892 /dev/null close
t/run-fio-tests.py +19 -0
@@ -626,6 +626,16 @@ class FioJobFileTest_iops_rate(FioJobFileTest): self.failure_reason = f"{self.failure_reason} iops ratio mismatch," self.passed = False +class FioJobFileTest_t0038(FioJobFileTest): + """ + Make sure t0034 can find the iolog by copying it to the test directory. + """ + def setup(self, *args, **kws): + super().setup(*args, **kws) + + src = os.path.join(os.path.dirname(self.fio_job), 't0038.iolog') + shutil.copy(src, self.paths['test_dir']) + TEST_LIST = [ {
@@ -969,6 +979,15 @@ TEST_LIST = [ 'pre_success': SUCCESS_DEFAULT, 'requirements': [Requirements.linux, Requirements.libaio], }, + { + 'test_id': 38, + 'test_class': FioJobFileTest_t0038, + 'job': 't0038-397f1338.fio', + 'success': SUCCESS_DEFAULT, + 'pre_job': None, + 'pre_success': None, + 'requirements': [], + }, { 'test_id': 1000, 'test_class': FioExeTest,