[LTP] [PATCH v7] Rewrite aio-stress test using LTP API

Andrea Cervesato andrea.cervesato@suse.com
Thu Oct 13 10:14:36 CEST 2022


Hi!

On 10/7/22 11:17, Petr Vorel wrote:
> Hi Andrea,
>
> below are just minor comments about options and doc/help.
>
>> diff --git a/runtest/ltp-aio-stress.part1 b/runtest/ltp-aio-stress.part1
> ...
>> -# aio-stress [-s size] [-r size] [-a size] [-d num] [-b num]
>> -#                 [-i num] [-t num] [-c num] [-C size] [-nxhlvOS ]
>> -#                 file1 [file2 ...]
>> -#       -a size in KB at which to align buffers
>> -#       -b max number of iocbs to give io_submit at once
>> -#       -c number of io contexts per file
>> -#       -C offset between contexts, default 2MB
>> -#       -s size in MB of the test file(s), default 1024MB
>> -#       -r record size in KB used for each io, default 64KB
>> -#       -d number of pending aio requests for each file, default 64
>> -#       -i number of ios per file sent before switching
>> -#          to the next file, default 8
>> -#       -O Use O_DIRECT (not available in 2.4 kernels),
>> -#       -S Use O_SYNC for writes
>> -#       -o add an operation to the list: write=0, read=1,
>> -#          random write=2, random read=3.
>> -#          repeat -o to specify multiple ops: -o 0 -o 1 etc.
>> -#       -m shm use ipc shared memory for io buffers instead of malloc
>> -#       -m shmfs mmap a file in /dev/shm for io buffers
>> -#       -n no fsyncs between write stage and read stage
>> -#       -l print io_submit latencies after each stage
>> -#       -t number of threads to run
>> -#       -v verification of bytes written
>> -#       -x turn off thread stonewalling
>> -#       -h this message
>> +# -f       Number of files to generate
>> +# -b       Max number of iocbs to give io_submit at once
>> +# -c       Number of io contexts per file
>> +# -g       Offset between contexts (default 2M)
>> +# -s       Size in MB of the test file(s) (default 1024M)
>> +# -r       Record size in KB used for each io (default 64K)
>> +# -d       Number of pending aio requests for each file (default 64)
>> +# -e       Number of I/O per file sent before switching to the next file (default 8)
>> +# -a       Total number of ayncs I/O the program will run, default is run until Cntl-C
> Could we have -a500 as the default value (and thus remove it from runtest
> file)? IMHO it's better that run indefinitely, because it dies with TBROK after 30 sec on timeout.
>
> also could have aio-stress -h sorted output? (easier to read on so many
> options).
>
>> +# -O       Use O_DIRECT (not available in 2.4 kernels)
>> +# -o       Add an operation to the list: write=0, read=1, random write=2, random read=3
>> +# -m       SHM use ipc shared memory for io buffers instead of malloc
>> +# -n       No fsyncs between write stage and read stage
>> +# -l       Print io_submit latencies after each stage
>> +# -L       Print io completion latencies after each stage
>> +# -t       Number of threads to run
>> +# -u       Unlink files after completion
>> +# -v       Verification of bytes written
>> +# -x       Turn off thread stonewalling
> nit: I'd remove these, IMHO it's not worth to sync this with aio-stress.c.
> One can find getopts string in aio-stress.c.
>
> ...
>> -ADS1050 aio-stress -I500  -o1 -O -r256  -t2   $TMPDIR/junkfile $TMPDIR/file2
>> +ADS1000 aio-stress -a500  -o2 -r4 -f1
>> +ADS1001 aio-stress -a500  -o2 -r8 -f1
>> +ADS1002 aio-stress -a500  -o2 -r16 -f1
> nit: s/[ ]+/ /g
> (remove duplicate space)
>
>> +++ b/runtest/ltp-aio-stress.part2
> Both applies to this runtest level as well.
Apparently we don't need part2 anymore, because we replaced $TMPDIR with 
.needs_tmpdir functionality and now some tests are duplicated. I add the 
remaining part2 tests which are not yet in part1 and rename the file 
from ltp-aio-stress.part1 in ltp-aio-stress.
>
>> --- a/testcases/kernel/io/ltp-aiodio/aio-stress.c
>> +++ b/testcases/kernel/io/ltp-aiodio/aio-stress.c
>> @@ -1,51 +1,30 @@
>> +// SPDX-License-Identifier: GPL-2.0
> I wonder if we can relicense to GPL-2.0-or-later if this is SUSE copyright.
> I suppose we can't.
>>   /*
>>    * Copyright (c) 2004 SuSE, Inc.  All Rights Reserved.
>> + *               Written by: Chris Mason <mason@suse.com>
>> + * Copyright (C) 2021 SUSE LLC Andrea Cervesato <andrea.cervesato@suse.com>
>> + */
>> +
>> +/*\
>> + * [Description]
> ...
>> - * io buffers are aligned in case you want to do raw io
>> + * aio is done in a rotating loop. First file1.bin gets 8 requests, then
> nit: s/io/IO/g s/aio/AIO/g
>
> Kind regards,
> Petr




More information about the ltp mailing list