set_capacity argument and IO Engines

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

 



Hello,
I've been trying to get a basic understanding of the FIO code base in
hopes of trying to implement some changes to make FIO more useful on
ZBC and FLEX drives. To this end, I decided to try and implement an
argument --set_capacity that lets you manually specify the capacity of
a drive. I thought I had succeeded by editing the bdev_size function
to look for my option and return the value specified by the option.
However, although this result gets around the "you need to specify
valid offset" errors, I am now getting apparently IO engine related
errors. The IO engines I'm most interested in are psync, sync, and
libaio. It is not clear to me how to resolve these errors or even what
their root cause is. These errors occur while trying to write to an
offset that I have verified I can write to using a write16 command
sent through sg_raw. Interestingly, no errors seem to occur when I try
a read workload, but no IO occurs, either. I've pasted what seems to
be the relevant output below for the three IO engines, and if you have
any insight as to what might be going wrong I would appreciate it
immensely.

libaio:
io       21839 drop page cache /dev/sdc
io       21839 fill: io_u 0x7f5d94003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       21839 prep: io_u 0x7f5d94003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       21839 prep: io_u 0x7f5d94003940: ret=0
io       21839 queue: io_u 0x7f5d94003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       21839 calling ->commit(), depth 1
io       21839 io_u_queued_complete: min=1
io       21839 getevents: 1
io       21839 complete: io_u 0x7f5d94003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       21839 io_u_queued_complete: min=0
io       21839 getevents: 0
fio: pid=21839, err=28/file:io_u.c:1860, func=io_u error, error=No
space left on device
io       21839 close ioengine libaio
io       21839 free ioengine libaio


psync:
io       21952 drop page cache /dev/sdc
io       21952 fill: io_u 0x7f2310003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       21952 prep: io_u 0x7f2310003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       21952 queue: io_u 0x7f2310003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       21952 io_u_queued_complete: min=0
io       21952 getevents: 0
fio: pid=21952, err=28/file:io_u.c:1860, func=io_u error, error=No
space left on device
io       21952 close ioengine psync
io       21952 free ioengine psync

sync:
io       22009 drop page cache /dev/sdc
io       22009 fill: io_u 0x7f79d0003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       22009 prep: io_u 0x7f79d0003940:
off=0x63500000000,len=0x1000,ddir=1,file=/dev/sdc
io       22009 prep: io_u 0x7f79d0003940: ret=1
io       22009 get_io_u failed
io       22009 io_u_queued_complete: min=0
io       22009 getevents: 0
fio: pid=22009, err=22/file:engines/sync.c:84, func=lseek,
error=Invalid argument
io       22009 close ioengine sync
io       22009 free ioengine sync

Thank you,
Phillip Chen
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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