axboe / fio

Flexible I/O Tester
GNU General Public License v2.0
5.01k stars 1.23k forks source link

After fio using the norandommap parameter, the verify: bad header error occurs. #1756

Open ly52660685 opened 1 month ago

ly52660685 commented 1 month ago

Please acknowledge the following before creating a ticket

Description of the bug:

It seems that the norandommap parameter of fio affects the consistency check result.

Environment: [root@localhost ~]# uname -a Linux localhost.localdomain 5.10.0-60.18.0.50.r1064_49.hce2.aarch64 #1 SMP Tue Nov 28 08:26:19 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

fio version: fio-3.29,

Reproduction steps

1、without norandommap ,fio task success fio --name=ssd --numjobs=1 --filename=/home/test.io --bs=1m --iodepth=256 --rw=randrw -rwmixread=50 --ioengine=libaio --direct=1 --sync=0 --group_reporting --runtime=100 --time_based --do_verify=1 --verify=md5 --size=10G 2、with norandommap, fio fail image

vincentkfu commented 1 month ago

Please try fio 3.37 and simplify your job to include the minimal options that produce the issue.

ly52660685 commented 1 month ago

Please try fio 3.37 and simplify your job to include the minimal options that produce the issue.

I ‘ve already tried the latest version,and it has the same problem.

When the norandommap parameter is used, some blocks on the SSD may be read and written multiple times. It seems that the problem lies in this problem. If the norandommap parameter is not used, the fio obtains only the new offset, and the blocks will not be written/read for many times.

axboe commented 1 month ago

You can't use norandommap with verify. I think fio allows it for fixed block sizes, but it's not sane if you're tracking generations of writes.

ly52660685 commented 1 month ago

@axboe ok,thank you.Do you consider supporting norandommap with verify in the future?