1 # 2 # Test for race-condition DIO-write vs punch_hole 3 # If race exist dio may rewrite punched block after 4 # it was allocated to another file, we will catch that 5 # by verifying blocks content 6 # 7 [global] 8 ioengine=libaio 9 directory=/scratch 10 # File size is reasonably huge to provoke ENOSPC 11 filesize=128G 12 size=999G 13 iodepth=128 14 15 # Expect write failure due to ENOSPC, skip error dump 16 continue_on_error=write 17 ignore_error=,ENOSPC 18 error_dump=0 19 fallocate=none 20 exitall 21 22 # Two threads (dio and punch_hole) operate on single file:'raicer', 23 # We do not care about data content here 24 [dio-raicer] 25 bs=128k 26 direct=1 27 buffered=0 28 rw=randwrite 29 runtime=100 30 filename=raicer 31 time_based 32 33 [punch_hole-raicer] 34 bs=4k 35 rw=randtrim 36 filename=raicer 37 38 # Verifier thread continiously write to newly allcated blocks 39 # and veryfy written content 40 [aio-dio-verifier] 41 create_on_open=1 42 verify=crc32c-intel 43 verify_fatal=1 44 verify_dump=1 45 verify_backlog=1024 46 verify_async=4 47 direct=1 48 # block size should be equals to fs block size to prevent short writes 49 bs=4k 50 rw=randrw 51 filename=aio-dio-verifier 52