From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ua0-f182.google.com ([209.85.217.182]:35355 "EHLO mail-ua0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752426AbcLTN0i (ORCPT ); Tue, 20 Dec 2016 08:26:38 -0500 Received: by mail-ua0-f182.google.com with SMTP id 2so47741128uax.2 for ; Tue, 20 Dec 2016 05:26:38 -0800 (PST) MIME-Version: 1.0 In-Reply-To: References: From: Sitsofe Wheeler Date: Tue, 20 Dec 2016 13:26:36 +0000 Message-ID: Subject: Re: FIO -- A few basic questions on Data Integrity. Content-Type: text/plain; charset=UTF-8 Sender: fio-owner@vger.kernel.org List-Id: fio@vger.kernel.org To: Saju Nair Cc: "fio@vger.kernel.org" Hi, On 20 December 2016 at 12:26, Saju Nair wrote: > > Thanks for your clarifications. > We ran with a --continue_on_error=verify, > to let the FIO complete the full compare.. > > We tried to do a sequential write and compare, using the FIO config > file as below, and to bring in the complexity of "random" as a 2nd > step. > [write-and-verify] > rw=write > bs=4k > direct=1 > ioengine=libaio > iodepth=16 > size=2m > verify=pattern > verify_pattern=0x33333333 > continue_on_error=verify > verify_dump=1 > filename=/dev/XXXX > > FIO reports errors and we see files of the following names created: > ..received > ..expected > > Wanted help in interpreting the result. > > We wrote 2MB worth of data, with blocksize = 4K. > So, ideally is it expected to do 2MB/4KB = 512 IO operations > > 1) The received/expected files: > Are they for each 4K offset that failed the comparison ? I bet you can deduce this from the size and names of the files... > Is the to be interpreted as the (num/bs)-th block that failed ? > For ex: if the num=438272, and bs=4096 => 107th block failed ? > > It would be useful to know this information - so that we can debug further, > FYI, if we try a "dd" command and check the disk, based on the above > calculation - the data is proper (as expected). You never answered my question about what you are doing with stderr. I'll repeat it here: >> Are you doing something like redirecting stdout to a file but not >> doing anything with stderr? It would help if you include the command >> line you are using to run fio in your reply. Can you answer this question and post the full command line you ran fio with? I think it might have relevance to your current question. > 2) What were the locations that were written to.. > Tried fio-verify-state <.state_file>, and get the below: > Version: 0x3 > Size: 408 > CRC: 0x70ca464a > Thread: 0 > Name: write-and-verify > Completions: 16 > Depth: 16 > Number IOs: 512 > Index: 0 > Completions: > (file= 0) 2031616 > (file= 0) 2035712 > (file= 0) 2039808 > (file= 0) 2043904 > (file= 0) 2048000 > (file= 0) 2052096 > (file= 0) 2056192 > (file= 0) 2060288 > (file= 0) 2064384 > (file= 0) 2068480 > (file= 0) 2072576 > (file= 0) 2076672 > (file= 0) 2080768 > (file= 0) 2084864 > (file= 0) 2088960 > (file= 0) 2093056 > > How do we interpret the above content to understand the locations of Writes. Perhaps fio tracks how far through the sequence it got rather than individual locations written (this would be necessary to handle things like loops=)? I personally don't know the answer to this but you can always take a look at the source code. -- Sitsofe | http://sucs.org/~sits/