Flexible I/O Tester development
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: Roman Peniaev <r.peniaev@gmail.com>
Cc: "fio@vger.kernel.org" <fio@vger.kernel.org>
Subject: Re: [PATCH 1/1] verify: move meta header to generic verify_header
Date: Mon, 10 Aug 2015 10:01:56 -0600	[thread overview]
Message-ID: <55C8CAF4.8020900@kernel.dk> (raw)
In-Reply-To: <CACZ9PQX_8snVRoteGjhW00WhLrmKxwE4+BDkAboFOCnk0-UomQ@mail.gmail.com>

On 08/10/2015 05:29 AM, Roman Peniaev wrote:
> On Mon, Jul 27, 2015 at 11:13 PM, Jens Axboe <axboe@kernel.dk> wrote:
>> On 07/24/2015 01:49 PM, Roman Pen wrote:
>>>
>>> fio does not provide any possibility to verify checksum of a block with
>>> meta
>>> information inside. You can create configuration for verifincation
>>> checksum
>>> of random data either you can verify meta information with some pattern or
>>> random data, but not both.
>>>
>>> Why checksumming and meta together can be useful? Meta helps to figure out
>>> internally
>>> on filesystem or storage what block was written in case of corruption,
>>> i.e. offset
>>> of the block and block number explicitly tell us the virtual address of
>>> the block.
>>> On the other hand checksum of random data helps to detect corruption.
>>> Using meta
>>> and pattern together do not help a lot, since 'verify_interval' can be big
>>> enough
>>> and same sequence of pattern bytes will be undistinguishable internally on
>>> filesystem
>>> or storage.
>>>
>>> Also, it seems to me that keeping meta header separately from generic
>>> verify header
>>> does not make a lot of sense, since generic verify header can include all
>>> members
>>> of meta header without any performance or other impact.
>>>
>>> In this patch I move all members from vhdr_meta structure to generic
>>> verify_header,
>>> always verifying meta with the possiblity to checksum the following data:
>>> random
>>> or pattern.
>>>
>>> You are allowed to specify verify_pattern=str with any of the possible
>>> verification
>>> methods and have also meta verification, i.e.
>>>
>>>      verify=md5
>>>      verify_pattern=0xfe
>>>
>>>    or
>>>
>>>      verify=sha1
>>>      verify_pattern=0xff
>>>
>>>    etc.
>>>
>>> To keep everything compatible with old configurations it is still possible
>>> to specify
>>>
>>>      verify=meta
>>>
>>> but this option marked and depricated and kept only for compatibility
>>> reasons.
>>>
>>> Before that patch the verification layout according to the specified
>>> options looks
>>> as the following, e.g.:
>>>
>>>    #1
>>>       --
>>>       verify=meta
>>>       verify_pattern=0xff
>>>       --
>>>
>>>       result layout of each block: [hdr|meta|pattern]
>>>
>>>    #2
>>>       --
>>>       verify_pattern=0xff
>>>       --
>>>
>>>       result layout of each block: [hdr|pattern]
>>>
>>>    #3
>>>       --
>>>       verify=pattern
>>>       verify_pattern=0xff
>>>       --
>>>
>>>       result layout of each block: [pattern]
>>>
>>> After applying of the patch 'vhdr_meta' is always embedded into
>>> 'verify_header' and layout
>>> looks as the following, e.g.:
>>>
>>>    #1
>>>       --
>>>       verify=meta
>>>       verify_pattern=0xff
>>>       --
>>>
>>>       result layout of each block: [hdr+meta|pattern]
>>>    #2
>>>       --
>>>       verify=md5|sha1|etc
>>>       verify_pattern=0xff
>>>       --
>>>
>>>       result layout of each block: [hdr+meta|cksum|pattern]
>>>
>>>    #3
>>>       --
>>>       verify_pattern=0xff
>>>       --
>>>
>>>       result layout of each block: [hdr+meta|pattern]
>>>
>>>    #4
>>>       --
>>>       verify=pattern
>>>       verify_pattern=0xff
>>>       --
>>>
>>>       result layout of each block: [pattern]
>>
>>
>> Good work! I'll make some time this week to fully review this, so we can get
>> it committed.
>
> Hi, Jens.
>
> Do you still have plans to review this patch?

I do, vacation came in the way, however. Back now, will get to it this week.

-- 
Jens Axboe



      reply	other threads:[~2015-08-10 16:01 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-24 19:49 [PATCH 1/1] verify: move meta header to generic verify_header Roman Pen
2015-07-27 21:13 ` Jens Axboe
2015-07-28  5:09   ` Sitsofe Wheeler
2015-07-28 13:20   ` Roman Peniaev
2015-08-10 11:29   ` Roman Peniaev
2015-08-10 16:01     ` Jens Axboe [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55C8CAF4.8020900@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=fio@vger.kernel.org \
    --cc=r.peniaev@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox