1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
#
# 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 continuously writes to newly allcated blocks
# and verifies 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
|