Feature request: iteration counter in `verify_pattern`

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

I am testing block device corruption with fio, and i believe fio lacks a certain helpful feature.

This is the config i am using:

```
[global]
ioengine=libaio
direct=1
group_reporting
exitall

bs=8k
rw=write
iodepth=64
size=671088640
numjobs=1

verify=pattern
loops=1000
verify_dump=1
verify_fatal=1
filename=/dev/sdad

[job0x0]
verify_pattern=0x0102030405060708090a0b0c0d0e0f210908163826%o
offset=0

[job0x1]
verify_pattern=0x1112131415161718191a1b1c1d1e1f210908163826%o
offset=671088640

[job0x2]
verify_pattern=0x2122232425262728292a2b2c2d2e2f210908163826%o
offset=1342177280

[job0x3]
verify_pattern=0x3132333435363738393a3b3c3d3e3f210908163826%o
offset=2013265920

[job0x4]
verify_pattern=0x4142434445464748494a4b4c4d4e4f210908163826%o
offset=2684354560

[job0x5]
verify_pattern=0x5152535455565758595a5b5c5d5e5f210908163826%o
offset=3355443200

[job0x6]
verify_pattern=0x6162636465666768696a6b6c6d6e6f210908163826%o
offset=4026531840

[job0x7]
verify_pattern=0x7172737475767778797a7b7c7d7e7f210908163826%o
offset=4697620480

[job0x8]
verify_pattern=0x8182838485868788898a8b8c8d8e8f210908163826%o
offset=5368709120

[job0x9]
verify_pattern=0x9192939495969798999a9b9c9d9e9f210908163826%o
offset=6039797760

[job0xa]
verify_pattern=0xa1a2a3a4a5a6a7a8a9aaabacadaeaf210908163826%o
offset=6710886400

[job0xb]
verify_pattern=0xb1b2b3b4b5b6b7b8b9babbbcbdbebf210908163826%o
offset=7381975040

[job0xc]
verify_pattern=0xc1c2c3c4c5c6c7c8c9cacbcccdcecf210908163826%o
offset=8053063680

[job0xd]
verify_pattern=0xd1d2d3d4d5d6d7d8d9dadbdcdddedf210908163826%o
offset=8724152320

[job0xe]
verify_pattern=0xe1e2e3e4e5e6e7e8e9eaebecedeeef210908163826%o
offset=9395240960

[job0xf]
verify_pattern=0xf1f2f3f4f5f6f7f8f9fafbfcfdfeff210908163826%o
offset=10066329600
```

By changing the timestamp in verify_pattern i can tell if the .received block i
get is left over from the last run or is a newly written one.

Unfortunately, i have to use the `loops` option to have a better chance of
getting corruption in a single run. This leaves an ambiguity in the results i
get: i am not able to tell if a corruption has arisen from the driver
accidentally duplicating a write request, misplacing it or loosing it
completely.

I would like to be able to add e.g. a `%i` format option that would update with
each iteration, i.e. one of the patterns above would be rewritten as

verify_pattern=0x0102030405060708090a0b0c0d0e0f210908163826%o%i

and would expand to

0x0102030405060708090a0b0c0d0e0f210908163826 0020130000000000 0000000000000000

on the very first (0th) iteration of the loop, and would expand to

0x0102030405060708090a0b0c0d0e0f210908163826 0020130000000000 0f27000000000000

on the very last (9999th, i.e 0x270Fth) iteration of the loop (assuming pattern
for the block #153 of size 8k, i.e. offset of 1253376 bytes), whitespace
inserted for clarity.

This feature would give very valuable insight into the verification fail i am
investigating.

Thank you,
Abrakhin Andrei



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux