Recent changes (master)
The following changes since commit 61b9861d45dcd6be23c527861b32aa36bcd1b682:
use 'lib/pattern' to parse patterns and paste formats into buffers (2015-09-04 13:33:09 -0600)
are available in the git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to b638d82f882bd8c15cc933ee0b8fa684308e7855:
verify: move meta header to generic verify_header (2015-09-05 16:24:03 -0600)
----------------------------------------------------------------
Roman Pen (2):
fio.1: update description for 'buffer_pattern' and 'verify_pattern'
verify: move meta header to generic verify_header
HOWTO | 19 +++++---- fio.1 | 48 ++++++++++++++++++--- options.c | 10 +++-- verify.c | 140 +++++++++++++++++++++++++++----------------------------------- verify.h | 16 +++---- 5 files changed, 129 insertions(+), 104 deletions(-)
---
Diff of recent changes:
HOWTO +12 -7
@@ -1248,7 +1248,12 @@ do_verify=bool Run the verify phase after a write phase. Only makes sense if verify is set. Defaults to 1. verify=str If writing to a file, fio can verify the file contents - after each iteration of the job. The allowed values are: + after each iteration of the job. Each verification method also implies + verification of special header, which is written to the beginning of + each block. This header also includes meta information, like offset + of the block, block number, timestamp when block was written, etc. + verify=str can be combined with verify_pattern=str option. + The allowed values are: md5 Use an md5 sum of the data area and store it in the header of each block.
@@ -1284,11 +1289,11 @@ verify=str If writing to a file, fio can verify the file contents sha1 Use optimized sha1 as the checksum function. - meta Write extra information about each io - (timestamp, block number etc.). The block - number is verified. The io sequence number is - verified for workloads that write data. - See also verify_pattern. + meta This option is deprecated, since now meta information is + included in generic verification header and meta verification + happens by default. For detailed information see the description + of the verify=str setting. This option is kept because of + compatibility's sake with old configurations. Do not use it. pattern Verify a strict pattern. Normally fio includes a header with some basic information and
@@ -1333,7 +1338,7 @@ verify_pattern=str If set, fio will fill the io buffers with this buffer at the time(it can be either a decimal or a hex number). The verify_pattern if larger than a 32-bit quantity has to be a hex number that starts with either "0x" or "0X". Use - with verify=meta. Also, verify_pattern supports %o format, + with verify=str. Also, verify_pattern supports %o format, which means that for each block offset will be written and then verifyied back, e.g.:
fio.1 +42 -6
72 lines not on this page · raw message
options.c +7 -3
@@ -958,7 +958,7 @@ static int str_verify_pattern_cb(void *data, const char *input)assert (ret !=0 ); td->o.verify_pattern_bytes = ret;/* -* VERIFY_META could already be set +* VERIFY_* could already be set */ if (!fio_option_is_set (&td->o, verify)) td->o.verify =VERIFY_PATTERN ;
@@ -2294,9 +2294,13 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .oval = VERIFY_XXHASH, .help = "Use xxhash checksums for verification", }, +/* Meta information was included into verify_header, +* 'meta' verification is implied by default. */ { .ival = "meta", - .oval = VERIFY_META, - .help = "Use io information", + .oval = VERIFY_HDR_ONLY, + .help = "Use io information for verification. " + "Now is implied by default, thus option is obsolete, " + "don't use it", }, { .ival = "pattern", .oval = VERIFY_PATTERN_NO_HDR,
verify.c +60 -80
239 lines not on this page · raw message
verify.h +8 -8
@@ -7,6 +7,9 @@enum {VERIFY_NONE =0 ,/* no verification */ +VERIFY_HDR_ONLY ,/* verify header only, kept for sake of +* compatibility with old configurations +* which use 'verify=meta' */ VERIFY_MD5 ,/* md5 sum data blocks */ VERIFY_CRC64 ,/* crc64 sum data blocks */ VERIFY_CRC32 ,/* crc32 sum data blocks */
@@ -17,7 +20,6 @@ enum {VERIFY_SHA256 ,/* sha256 sum data blocks */ VERIFY_SHA512 ,/* sha512 sum data blocks */ VERIFY_XXHASH ,/* xxhash sum data blocks */ -VERIFY_META ,/* block_num, timestamp etc. */ VERIFY_SHA1 ,/* sha1 sum data blocks */ VERIFY_PATTERN ,/* verify specific patterns */ VERIFY_PATTERN_NO_HDR, /* verify specific patterns, no hdr */
@@ -34,6 +36,11 @@ struct verify_header {uint16_t verify_type;uint32_t len;uint64_t rand_seed; +uint64_t offset; +uint32_t time_sec; +uint32_t time_usec; +uint16_t thread; +uint16_t numberio;uint32_t crc32; };
@@ -61,13 +68,6 @@ struct vhdr_crc16 {struct vhdr_crc7 {uint8_t crc7; }; -struct vhdr_meta { -uint64_t offset; -unsigned char thread; -unsigned short numberio; -unsigned long time_sec; -unsigned long time_usec; -};struct vhdr_xxhash {uint32_t hash; };