# # Test for race-condition DIO-write vs punch_hole # If race exist dio may rewrite punched block after # it was allocated to another file, we will catch that # by verifying blocks content # [global] ioengine=libaio directory=/scratch # File size is reasonably huge to provoke ENOSPC filesize=128G size=999G iodepth=128 # Expect write failure due to ENOSPC, skip error dump continue_on_error=write ignore_error=,ENOSPC error_dump=0 fallocate=none exitall # Two threads (dio and punch_hole) operate on single file:'raicer', # We do not care about data content here [dio-raicer] bs=128k direct=1 buffered=0 rw=randwrite runtime=100 filename=raicer time_based [punch_hole-raicer] bs=4k rw=randtrim filename=raicer # Verifier thread continiously write to newly allcated blocks # and veryfy written content [aio-dio-verifier] create_on_open=1 verify=crc32c-intel verify_fatal=1 verify_dump=1 verify_backlog=1024 verify_async=4 direct=1 # block size should be equals to fs block size to prevent short writes bs=4k rw=randrw filename=aio-dio-verifier