All of lore.kernel.org
 help / color / mirror / Atom feed
* LBA selection in FIO
@ 2017-12-28 23:17 Gnana Sekhar
  2017-12-29 11:12 ` Sitsofe Wheeler
  0 siblings, 1 reply; 12+ messages in thread
From: Gnana Sekhar @ 2017-12-28 23:17 UTC (permalink / raw)
  To: fio

Hi,

I am looking to see if FIO has options to pass LBA count and data
pattern as CLI arguments.
Data pattern means same pattern to the specified LBA range i.e.,
either all 1's or 0's etc.,
Also will FIO be able to write to specified number of LBAs
irrespective of the LBA size

Thanks in advance

Regards,
Gnana

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2017-12-28 23:17 LBA selection in FIO Gnana Sekhar
@ 2017-12-29 11:12 ` Sitsofe Wheeler
  2018-01-03 17:47   ` Gnana Sekhar
  0 siblings, 1 reply; 12+ messages in thread
From: Sitsofe Wheeler @ 2017-12-29 11:12 UTC (permalink / raw)
  To: Gnana Sekhar; +Cc: fio

Hi,

On 28 December 2017 at 23:17, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>
> I am looking to see if FIO has options to pass LBA count and data
> pattern as CLI arguments.

The rw parameter can take a :<nr> parameter (see
http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-readwrite
). The various zone options (e.g.
http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-random-distribution
, http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-zonesize
) can enable some types of repetition. It's hard to say if this is
enough for your purposes though...

If you have to precisely craft exact offsets and exact counts you
could use an iolog replay file via the read_iolog option
(http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-read-iolog
). If your shell supports it you might be even able to craft the
replay "file" on the fly (e.g. bash can use <() to do Process
Substitution).

> Data pattern means same pattern to the specified LBA range i.e.,
> either all 1's or 0's etc.,

If the data is identical in every block being written then perhaps
buffer_pattern -
http://fio.readthedocs.io/en/latest/fio_man.html#cmdoption-arg-buffer-pattern
?

> Also will FIO be able to write to specified number of LBAs
> irrespective of the LBA size

I am struggling to understand this question. If you mean "can fio be
told to write a specific number of blocks" then isn't this normally
the blocksize (http://fio.readthedocs.io/en/latest/fio_man.html#block-size
)?

-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2017-12-29 11:12 ` Sitsofe Wheeler
@ 2018-01-03 17:47   ` Gnana Sekhar
  2018-01-03 19:17     ` Sitsofe Wheeler
  0 siblings, 1 reply; 12+ messages in thread
From: Gnana Sekhar @ 2018-01-03 17:47 UTC (permalink / raw)
  To: Sitsofe Wheeler; +Cc: fio

Thanks for the response sitsofe

Basically I am looking to see if FIO has the below option
1. Pass the LBA count as an argument. From your explanation my
understanding is currently FIO doesn't have that option
2. On the buffer pattern I wasn't able to specify the buffer pattern
to be all 0(zero) but --buffer_pattern=1 works fine. Do I have to use
zero_buffers to fill buffers with zero and not buffer_pattern

For option1, if I cant pass LBA count, my plan is to
get LBA size of the drive,
multiply the LBA size with lba count which will give me the size in bytes
pass the size with --size=x b  where x is the size obtained in above step

Please let me know if there are some other efficient ways to achieve this

Regards,
Gnana

On Fri, Dec 29, 2017 at 4:12 AM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
> Hi,
>
> On 28 December 2017 at 23:17, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>>
>> I am looking to see if FIO has options to pass LBA count and data
>> pattern as CLI arguments.
>
> The rw parameter can take a :<nr> parameter (see
> http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-readwrite
> ). The various zone options (e.g.
> http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-random-distribution
> , http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-zonesize
> ) can enable some types of repetition. It's hard to say if this is
> enough for your purposes though...
>
> If you have to precisely craft exact offsets and exact counts you
> could use an iolog replay file via the read_iolog option
> (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-read-iolog
> ). If your shell supports it you might be even able to craft the
> replay "file" on the fly (e.g. bash can use <() to do Process
> Substitution).
>
>> Data pattern means same pattern to the specified LBA range i.e.,
>> either all 1's or 0's etc.,
>
> If the data is identical in every block being written then perhaps
> buffer_pattern -
> http://fio.readthedocs.io/en/latest/fio_man.html#cmdoption-arg-buffer-pattern
> ?
>
>> Also will FIO be able to write to specified number of LBAs
>> irrespective of the LBA size
>
> I am struggling to understand this question. If you mean "can fio be
> told to write a specific number of blocks" then isn't this normally
> the blocksize (http://fio.readthedocs.io/en/latest/fio_man.html#block-size
> )?
>
> --
> Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2018-01-03 17:47   ` Gnana Sekhar
@ 2018-01-03 19:17     ` Sitsofe Wheeler
  2018-01-03 21:12       ` Gnana Sekhar
  0 siblings, 1 reply; 12+ messages in thread
From: Sitsofe Wheeler @ 2018-01-03 19:17 UTC (permalink / raw)
  To: Gnana Sekhar; +Cc: fio

Hi Gnana,

On 3 January 2018 at 17:47, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>
> Basically I am looking to see if FIO has the below option
> 1. Pass the LBA count as an argument. From your explanation my
> understanding is currently FIO doesn't have that option

Well I'm still unsure what LBA count means in this context. If my
blocks are 512 bytes big and I want a single write to cover LBA 0 - 3
then isn't the blocksize of 4k controlling the LBA count? Sorry to
keep asking I just don't understand the request.

> 2. On the buffer pattern I wasn't able to specify the buffer pattern
> to be all 0(zero) but --buffer_pattern=1 works fine. Do I have to use
> zero_buffers to fill buffers with zero and not buffer_pattern

Hmm! 0 is going to be interpreted as "this option is unset". Does 0x0 work?

> For option1, if I cant pass LBA count, my plan is to
> get LBA size of the drive,
> multiply the LBA size with lba count which will give me the size in bytes
> pass the size with --size=x b  where x is the size obtained in above step

Are you trying to do I/O "on the spot" (e.g. only do I/O to the exact
same region for the whole job)? If so you can

* Use offset (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-offset
) and size (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-size
) to limit the region you do I/O within
* Have blocksize use a value of <x> and the rw=read:<-x>
* Use rw_sequencer=identical and rw=read:<highnumberhere>
(http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-rw-sequencer
)

?

-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2018-01-03 19:17     ` Sitsofe Wheeler
@ 2018-01-03 21:12       ` Gnana Sekhar
  2018-01-03 23:37         ` Jeff Furlong
                           ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Gnana Sekhar @ 2018-01-03 21:12 UTC (permalink / raw)
  To: Sitsofe Wheeler; +Cc: fio

Hi,

The hurdle I have is, how will I arrive at block size of 4k.
If LBA size is 4k, then write of 4 LBA will be 16k.
So if I say LBA count, I don't need to care of LBA size. But to
specify the size in bytes, I need to fetch the LBA size(for example
512, 520, 4096 etc.,) and arrive at the bytes required


I did try the buffer pattern of 0x0 and it doesn't work
fio throws out error of "failed parsing pattern `0x0`"

Regards,
Gnana

On Wed, Jan 3, 2018 at 12:17 PM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
> Hi Gnana,
>
> On 3 January 2018 at 17:47, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>>
>> Basically I am looking to see if FIO has the below option
>> 1. Pass the LBA count as an argument. From your explanation my
>> understanding is currently FIO doesn't have that option
>
> Well I'm still unsure what LBA count means in this context. If my
> blocks are 512 bytes big and I want a single write to cover LBA 0 - 3
> then isn't the blocksize of 4k controlling the LBA count? Sorry to
> keep asking I just don't understand the request.
>
>> 2. On the buffer pattern I wasn't able to specify the buffer pattern
>> to be all 0(zero) but --buffer_pattern=1 works fine. Do I have to use
>> zero_buffers to fill buffers with zero and not buffer_pattern
>
> Hmm! 0 is going to be interpreted as "this option is unset". Does 0x0 work?
>
>> For option1, if I cant pass LBA count, my plan is to
>> get LBA size of the drive,
>> multiply the LBA size with lba count which will give me the size in bytes
>> pass the size with --size=x b  where x is the size obtained in above step
>
> Are you trying to do I/O "on the spot" (e.g. only do I/O to the exact
> same region for the whole job)? If so you can
>
> * Use offset (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-offset
> ) and size (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-size
> ) to limit the region you do I/O within
> * Have blocksize use a value of <x> and the rw=read:<-x>
> * Use rw_sequencer=identical and rw=read:<highnumberhere>
> (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-rw-sequencer
> )
>
> ?
>
> --
> Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: LBA selection in FIO
  2018-01-03 21:12       ` Gnana Sekhar
@ 2018-01-03 23:37         ` Jeff Furlong
  2018-01-04  4:10           ` Gnana Sekhar
  2018-01-04  0:41         ` Fisak, Joel
  2018-01-04  6:47         ` Sitsofe Wheeler
  2 siblings, 1 reply; 12+ messages in thread
From: Jeff Furlong @ 2018-01-03 23:37 UTC (permalink / raw)
  To: Gnana Sekhar, Sitsofe Wheeler; +Cc: fio

> how will I arrive at block size of 4k
On Linux platforms, you may want to look at "blockdev --getss /dev/nvme0n1" to determine the sector size of your device.  Various other blockdev options will report various other device parameters.

Regards,
Jeff


^ permalink raw reply	[flat|nested] 12+ messages in thread

* RE: LBA selection in FIO
  2018-01-03 21:12       ` Gnana Sekhar
  2018-01-03 23:37         ` Jeff Furlong
@ 2018-01-04  0:41         ` Fisak, Joel
  2018-01-04  6:47         ` Sitsofe Wheeler
  2 siblings, 0 replies; 12+ messages in thread
From: Fisak, Joel @ 2018-01-04  0:41 UTC (permalink / raw)
  To: Gnana Sekhar, Sitsofe Wheeler; +Cc: fio

LBA Size isn't 4k its 1 block, isn't it? LBA = logical block address (single address of 1 block not range).

-----Original Message-----
From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On Behalf Of Gnana Sekhar
Sent: Wednesday, January 3, 2018 4:12 PM
To: Sitsofe Wheeler <sitsofe@gmail.com>
Cc: fio@vger.kernel.org
Subject: Re: LBA selection in FIO

Hi,

The hurdle I have is, how will I arrive at block size of 4k.
If LBA size is 4k, then write of 4 LBA will be 16k.
So if I say LBA count, I don't need to care of LBA size. But to specify the size in bytes, I need to fetch the LBA size(for example 512, 520, 4096 etc.,) and arrive at the bytes required


I did try the buffer pattern of 0x0 and it doesn't work fio throws out error of "failed parsing pattern `0x0`"

Regards,
Gnana

On Wed, Jan 3, 2018 at 12:17 PM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
> Hi Gnana,
>
> On 3 January 2018 at 17:47, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>>
>> Basically I am looking to see if FIO has the below option 1. Pass the 
>> LBA count as an argument. From your explanation my understanding is 
>> currently FIO doesn't have that option
>
> Well I'm still unsure what LBA count means in this context. If my 
> blocks are 512 bytes big and I want a single write to cover LBA 0 - 3 
> then isn't the blocksize of 4k controlling the LBA count? Sorry to 
> keep asking I just don't understand the request.
>
>> 2. On the buffer pattern I wasn't able to specify the buffer pattern 
>> to be all 0(zero) but --buffer_pattern=1 works fine. Do I have to use 
>> zero_buffers to fill buffers with zero and not buffer_pattern
>
> Hmm! 0 is going to be interpreted as "this option is unset". Does 0x0 work?
>
>> For option1, if I cant pass LBA count, my plan is to get LBA size of 
>> the drive, multiply the LBA size with lba count which will give me 
>> the size in bytes pass the size with --size=x b  where x is the size 
>> obtained in above step
>
> Are you trying to do I/O "on the spot" (e.g. only do I/O to the exact 
> same region for the whole job)? If so you can
>
> * Use offset 
> (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-offset
> ) and size 
> (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-size
> ) to limit the region you do I/O within
> * Have blocksize use a value of <x> and the rw=read:<-x>
> * Use rw_sequencer=identical and rw=read:<highnumberhere> 
> (http://fio.readthedocs.io/en/latest/fio_doc.html#cmdoption-arg-rw-seq
> uencer
> )
>
> ?
>
> --
> Sitsofe | http://sucs.org/~sits/
--
To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@vger.kernel.org More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2018-01-03 23:37         ` Jeff Furlong
@ 2018-01-04  4:10           ` Gnana Sekhar
  2018-01-04  6:35             ` Sitsofe Wheeler
  0 siblings, 1 reply; 12+ messages in thread
From: Gnana Sekhar @ 2018-01-04  4:10 UTC (permalink / raw)
  To: Jeff Furlong; +Cc: Sitsofe Wheeler, fio

Hi Jeff,

Thanks for the response. That's the exact command I am using in the
script to get sector size and multiply sector size with no. of sectors
to get the size in Bytes.
The size in Bytes is passed to the FIO in --size parameter

I wasn't sure if FIO has an option to pass in the LBA count as
parameter so that the above logic can be skipped

Regards,
Gnana

On Wed, Jan 3, 2018 at 4:37 PM, Jeff Furlong <jeff.furlong@wdc.com> wrote:
>> how will I arrive at block size of 4k
> On Linux platforms, you may want to look at "blockdev --getss /dev/nvme0n1" to determine the sector size of your device.  Various other blockdev options will report various other device parameters.
>
> Regards,
> Jeff
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2018-01-04  4:10           ` Gnana Sekhar
@ 2018-01-04  6:35             ` Sitsofe Wheeler
  0 siblings, 0 replies; 12+ messages in thread
From: Sitsofe Wheeler @ 2018-01-04  6:35 UTC (permalink / raw)
  To: Gnana Sekhar; +Cc: Jeff Furlong, fio

Hi Gnana,

On 4 January 2018 at 04:10, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>
> Thanks for the response. That's the exact command I am using in the
> script to get sector size and multiply sector size with no. of sectors
> to get the size in Bytes.
> The size in Bytes is passed to the FIO in --size parameter
>
> I wasn't sure if FIO has an option to pass in the LBA count as
> parameter so that the above logic can be skipped

Ah I understand now. No fio doesn't have generic code to deduce the
underlying LBA size of a block device (although certain ioengines such
as sg find it out for themselves for other purposes). Personally, I've
found it's not easy to find out the block size a filesystem is using
which would make such a feature less useful since fio works on files
as well as block devices. Further if you actually need to do
arithmetic with the value then it's nicer to do all of that upfront
and no later than parsing time so  doing it outside of fio as you are
doing seems preferable...

-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2018-01-03 21:12       ` Gnana Sekhar
  2018-01-03 23:37         ` Jeff Furlong
  2018-01-04  0:41         ` Fisak, Joel
@ 2018-01-04  6:47         ` Sitsofe Wheeler
  2018-01-04  7:05           ` Gnana Sekhar
  2 siblings, 1 reply; 12+ messages in thread
From: Sitsofe Wheeler @ 2018-01-04  6:47 UTC (permalink / raw)
  To: Gnana Sekhar; +Cc: fio

Hi,

What version of fio are you using? Here's what I got with post fio 3.3
with --buffer_pattern=0:

$ ./fio --gtod_reduce=1 --filename=/tmp/fio.tmp --size=4k
--buffer_pattern=0 --name=zero --rw=write
zero: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T)
4096B-4096B, ioengine=psync, iodepth=1
fio-3.3-17-gdb43a
Starting 1 process

zero: (groupid=0, jobs=1): err= 0: pid=10681: Thu Jan  4 06:40:44 2018
  write: IOPS=1000, BW=4000KiB/s (4096kB/s)(4096B/1msec)
  cpu          : usr=0.00%, sys=0.00%, ctx=0, majf=0, minf=77
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwt: total=0,1,0, short=0,0,0, dropped=0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=4000KiB/s (4096kB/s), 4000KiB/s-4000KiB/s
(4096kB/s-4096kB/s), io=4096B (4096B), run=1-1msec
$ hexdump -C /tmp/fio.tmp
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001000

--buffer_pattern=0x0 also works without issue for me. If you're able
to reproduce the problem with fio 3.3 or above then can you post the
command line + job file you're using?

On 3 January 2018 at 21:12, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>
> I did try the buffer pattern of 0x0 and it doesn't work
> fio throws out error of "failed parsing pattern `0x0`"
>
> Regards,
> Gnana
>
> On Wed, Jan 3, 2018 at 12:17 PM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
>> Hi Gnana,
>>
>> On 3 January 2018 at 17:47, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>>>
>>> Basically I am looking to see if FIO has the below option
>>> 1. Pass the LBA count as an argument. From your explanation my
>>> understanding is currently FIO doesn't have that option
>>
>> Well I'm still unsure what LBA count means in this context. If my
>> blocks are 512 bytes big and I want a single write to cover LBA 0 - 3
>> then isn't the blocksize of 4k controlling the LBA count? Sorry to
>> keep asking I just don't understand the request.
>>
>>> 2. On the buffer pattern I wasn't able to specify the buffer pattern
>>> to be all 0(zero) but --buffer_pattern=1 works fine. Do I have to use
>>> zero_buffers to fill buffers with zero and not buffer_pattern
>>
>> Hmm! 0 is going to be interpreted as "this option is unset". Does 0x0 work?

-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2018-01-04  6:47         ` Sitsofe Wheeler
@ 2018-01-04  7:05           ` Gnana Sekhar
  2018-01-04  7:21             ` Sitsofe Wheeler
  0 siblings, 1 reply; 12+ messages in thread
From: Gnana Sekhar @ 2018-01-04  7:05 UTC (permalink / raw)
  To: Sitsofe Wheeler; +Cc: fio

Hi Sitsofe,

I am using the fio version of 3.3
$ sudo fio --version
fio-3.3-12-ge38f

It would be great if you can share your opinion on the steps I am
doing below. I am running into bad magic header during verify
operation
These steps are performed synchronously i.e., one after another in the
shell prompt

$ sudo fio --thread --direct=1 --minimal --ioengine=libaio --numjobs=1
--iodepth=1 --name=bs128k_rwread_rsmixr0_qd256 --bs=4096
--percentage_random=0 --rw=write --filename=/dev/nvme0n1 -o
/home/temp.log --buffer_pattern=1 --size=76815


$ sudo fio --thread --direct=1 --minimal --ioengine=libaio --numjobs=1
--iodepth=1 --bs=4096 --percentage_random=0 --filename=/dev/nvme0n1 -o
/home/temp.log --name=bs4096_rwverify_qd256 --size=76815 --rw=read
--verify_pattern=0x1 --debug=all

verify: bad magic header 101, wanted acca at file /dev/nvme0n1 offset
0, length 4096
bs4096_rwverify_qd256: No I/O performed by libaio, perhaps try
--debug=io option for details?

Regards,
Gnana

On Wed, Jan 3, 2018 at 11:47 PM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
> Hi,
>
> What version of fio are you using? Here's what I got with post fio 3.3
> with --buffer_pattern=0:
>
> $ ./fio --gtod_reduce=1 --filename=/tmp/fio.tmp --size=4k
> --buffer_pattern=0 --name=zero --rw=write
> zero: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T)
> 4096B-4096B, ioengine=psync, iodepth=1
> fio-3.3-17-gdb43a
> Starting 1 process
>
> zero: (groupid=0, jobs=1): err= 0: pid=10681: Thu Jan  4 06:40:44 2018
>   write: IOPS=1000, BW=4000KiB/s (4096kB/s)(4096B/1msec)
>   cpu          : usr=0.00%, sys=0.00%, ctx=0, majf=0, minf=77
>   IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
>      submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
>      complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
>      issued rwt: total=0,1,0, short=0,0,0, dropped=0,0,0
>      latency   : target=0, window=0, percentile=100.00%, depth=1
>
> Run status group 0 (all jobs):
>   WRITE: bw=4000KiB/s (4096kB/s), 4000KiB/s-4000KiB/s
> (4096kB/s-4096kB/s), io=4096B (4096B), run=1-1msec
> $ hexdump -C /tmp/fio.tmp
> 00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
> *
> 00001000
>
> --buffer_pattern=0x0 also works without issue for me. If you're able
> to reproduce the problem with fio 3.3 or above then can you post the
> command line + job file you're using?
>
> On 3 January 2018 at 21:12, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>>
>> I did try the buffer pattern of 0x0 and it doesn't work
>> fio throws out error of "failed parsing pattern `0x0`"
>>
>> Regards,
>> Gnana
>>
>> On Wed, Jan 3, 2018 at 12:17 PM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
>>> Hi Gnana,
>>>
>>> On 3 January 2018 at 17:47, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>>>>
>>>> Basically I am looking to see if FIO has the below option
>>>> 1. Pass the LBA count as an argument. From your explanation my
>>>> understanding is currently FIO doesn't have that option
>>>
>>> Well I'm still unsure what LBA count means in this context. If my
>>> blocks are 512 bytes big and I want a single write to cover LBA 0 - 3
>>> then isn't the blocksize of 4k controlling the LBA count? Sorry to
>>> keep asking I just don't understand the request.
>>>
>>>> 2. On the buffer pattern I wasn't able to specify the buffer pattern
>>>> to be all 0(zero) but --buffer_pattern=1 works fine. Do I have to use
>>>> zero_buffers to fill buffers with zero and not buffer_pattern
>>>
>>> Hmm! 0 is going to be interpreted as "this option is unset". Does 0x0 work?
>
> --
> Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: LBA selection in FIO
  2018-01-04  7:05           ` Gnana Sekhar
@ 2018-01-04  7:21             ` Sitsofe Wheeler
  0 siblings, 0 replies; 12+ messages in thread
From: Sitsofe Wheeler @ 2018-01-04  7:21 UTC (permalink / raw)
  To: Gnana Sekhar; +Cc: fio

Hi Gnana,

I'm going to guess that if you are reading this message you will be
able to see that I already posted a reply regarding verify_pattern
this in the thread titled "Re: Verify mismatch with buffer_pattern and
verify_pattern" :-)

Re buffer_pattern=0 - does this really not produce zeros for you and
I'm curious as to how you got the "failed parsing pattern `0x0`"
message? Did you do something like --buffer_pattern="'0x0'" rather
than --buffer_pattern="0x0" or --buffer_pattern=0x0?

On 4 January 2018 at 07:05, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
> Hi Sitsofe,
>
> I am using the fio version of 3.3
> $ sudo fio --version
> fio-3.3-12-ge38f
>
> It would be great if you can share your opinion on the steps I am
> doing below. I am running into bad magic header during verify
> operation
> These steps are performed synchronously i.e., one after another in the
> shell prompt
>
> $ sudo fio --thread --direct=1 --minimal --ioengine=libaio --numjobs=1
> --iodepth=1 --name=bs128k_rwread_rsmixr0_qd256 --bs=4096
> --percentage_random=0 --rw=write --filename=/dev/nvme0n1 -o
> /home/temp.log --buffer_pattern=1 --size=76815
>
>
> $ sudo fio --thread --direct=1 --minimal --ioengine=libaio --numjobs=1
> --iodepth=1 --bs=4096 --percentage_random=0 --filename=/dev/nvme0n1 -o
> /home/temp.log --name=bs4096_rwverify_qd256 --size=76815 --rw=read
> --verify_pattern=0x1 --debug=all
>
> verify: bad magic header 101, wanted acca at file /dev/nvme0n1 offset
> 0, length 4096
> bs4096_rwverify_qd256: No I/O performed by libaio, perhaps try
> --debug=io option for details?
>
> Regards,
> Gnana
>
> On Wed, Jan 3, 2018 at 11:47 PM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
>> Hi,
>>
>> What version of fio are you using? Here's what I got with post fio 3.3
>> with --buffer_pattern=0:
>>
>> $ ./fio --gtod_reduce=1 --filename=/tmp/fio.tmp --size=4k
>> --buffer_pattern=0 --name=zero --rw=write
>> zero: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T)
>> 4096B-4096B, ioengine=psync, iodepth=1
>> fio-3.3-17-gdb43a
>> Starting 1 process
>>
>> zero: (groupid=0, jobs=1): err= 0: pid=10681: Thu Jan  4 06:40:44 2018
>>   write: IOPS=1000, BW=4000KiB/s (4096kB/s)(4096B/1msec)
>>   cpu          : usr=0.00%, sys=0.00%, ctx=0, majf=0, minf=77
>>   IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
>>      submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
>>      complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
>>      issued rwt: total=0,1,0, short=0,0,0, dropped=0,0,0
>>      latency   : target=0, window=0, percentile=100.00%, depth=1
>>
>> Run status group 0 (all jobs):
>>   WRITE: bw=4000KiB/s (4096kB/s), 4000KiB/s-4000KiB/s
>> (4096kB/s-4096kB/s), io=4096B (4096B), run=1-1msec
>> $ hexdump -C /tmp/fio.tmp
>> 00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
>> *
>> 00001000
>>
>> --buffer_pattern=0x0 also works without issue for me. If you're able
>> to reproduce the problem with fio 3.3 or above then can you post the
>> command line + job file you're using?
>>
>> On 3 January 2018 at 21:12, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>>>
>>> I did try the buffer pattern of 0x0 and it doesn't work
>>> fio throws out error of "failed parsing pattern `0x0`"
>>>
>>> Regards,
>>> Gnana
>>>
>>> On Wed, Jan 3, 2018 at 12:17 PM, Sitsofe Wheeler <sitsofe@gmail.com> wrote:
>>>> Hi Gnana,
>>>>
>>>> On 3 January 2018 at 17:47, Gnana Sekhar <kgsgnana2020@gmail.com> wrote:
>>>>>
>>>>> Basically I am looking to see if FIO has the below option
>>>>> 1. Pass the LBA count as an argument. From your explanation my
>>>>> understanding is currently FIO doesn't have that option
>>>>
>>>> Well I'm still unsure what LBA count means in this context. If my
>>>> blocks are 512 bytes big and I want a single write to cover LBA 0 - 3
>>>> then isn't the blocksize of 4k controlling the LBA count? Sorry to
>>>> keep asking I just don't understand the request.
>>>>
>>>>> 2. On the buffer pattern I wasn't able to specify the buffer pattern
>>>>> to be all 0(zero) but --buffer_pattern=1 works fine. Do I have to use
>>>>> zero_buffers to fill buffers with zero and not buffer_pattern
>>>>
>>>> Hmm! 0 is going to be interpreted as "this option is unset". Does 0x0 work?


>>
>> --
>> Sitsofe | http://sucs.org/~sits/



-- 
Sitsofe | http://sucs.org/~sits/

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2018-01-04  7:21 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-28 23:17 LBA selection in FIO Gnana Sekhar
2017-12-29 11:12 ` Sitsofe Wheeler
2018-01-03 17:47   ` Gnana Sekhar
2018-01-03 19:17     ` Sitsofe Wheeler
2018-01-03 21:12       ` Gnana Sekhar
2018-01-03 23:37         ` Jeff Furlong
2018-01-04  4:10           ` Gnana Sekhar
2018-01-04  6:35             ` Sitsofe Wheeler
2018-01-04  0:41         ` Fisak, Joel
2018-01-04  6:47         ` Sitsofe Wheeler
2018-01-04  7:05           ` Gnana Sekhar
2018-01-04  7:21             ` Sitsofe Wheeler

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.