0

Hello Linux FUSE (Filesystem in Userspace) support O_DIRECT? because I use fio benchmark to test fuse but it always shows errors when I use directIO

Mine machine is Ubuntu 4.4.0-38 x86_64 fio_version = 2.14 Below is my config file

[global]
ioengine=libaio
**direct=1**
time_based
runtime=60
ramp_time=30
size=64g
group_reporting

[S_100RW_1M_R]
rw=read
numjobs=1
iodepth=32
bs=1m
stonewall

[S_100RW_1M_W]
rw=write
numjobs=1
iodepth=32
bs=1m
stonewall

when I execute :sudo fio fio.cfg and it done it shows the result of seq. read without seq. write. it shows below:

fio: io_u error on file xxxxx : Invalid argument: write offset=0, buflen=1048576

I tried every times and the results are the same even I changed the tested device.

how come it happened?

thanks a lot

2

Yes, since version 2.4:

What is new in 2.4

...

  • Allow 'direct_io' and 'keep_cache' options to be set on a case-by-case basis on open.

I'd venture one of several things is likely happening:

  1. Your version of fuse isn't new enough.
  2. The actual underlying file system doesn't support direct IO, and fuse is simply returning a pass-through error. (This does assume fuse passes the direct IO request through to the underlying file system that actually holds the data on disk somewhere.)
  3. A bug somewhere in fuse code. Direct IO on Linux can be very particular/quirky.
| improve this answer | |
  • Is possible that speed of Read/Write a large diffrence? – yayaya Oct 18 '16 at 11:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.