From: Jens Axboe <axboe@kernel.dk>
To: "Elliott, Robert (Server Storage)" <Elliott@hp.com>,
"fio@vger.kernel.org" <fio@vger.kernel.org>
Cc: Sitsofe Wheeler <sitsofe@gmail.com>, Jon Tango <cheerios123@outlook.com>
Subject: Re: linux /dev and normal files
Date: Tue, 30 Sep 2014 19:02:43 -0600 [thread overview]
Message-ID: <542B52B3.5060908@kernel.dk> (raw)
In-Reply-To: <94D0CD8314A33A4D9D801C0FE68B402958CC5D81@G4W3202.americas.hpqcorp.net>
On 2014-09-30 17:49, Elliott, Robert (Server Storage) wrote:
>
>> -----Original Message-----
>> From: fio-owner@vger.kernel.org [mailto:fio-owner@vger.kernel.org] On Behalf
>> Of Sitsofe Wheeler
> ...
>> filename=\\.\physicaldrive1
>> ioengine=windowsaio
>> direct=1
> ...
>> size=86%
>> bs=4k
> ...
>
> I noticed that, in linux, if you select
> filename=/dev/sd<not there>
> size=<something>
>
> (e.g., if you run fio after a device has failed), it creates a
> normal file of the specified size (which could be quite large
> if using a script such as above).
>
> If you use direct=1, the file is created, followed by this error:
> fio: pid=8914, err=22/file:filesetup.c:611, func=open(/dev/sdad), error=Invalid argument
> fio: looks like your file system does not support direct=1/buffered=0
> fio: looks like your file system does not support direct=1/buffered=0
> fio: destination does not support O_DIRECT
This is because /dev is usually devtmpfs these days, and that fs does
not support O_DIRECT.
> If you don't use size=, no file is created and this error
> occurs:
> fio: pid=0, err=22/file:filesetup.c:820, func=total_file_size, error=Invalid argument
> drive_ag: you need to specify size=
>
> If you recreate the device, udevd blows away any such file with
> the block device node file, so it's not a good place to put
> normal files, even if that is intentional.
>
> In Windows, all "\\.\" paths are assumed to mean block devices,
> so fio doesn't inadvertently try to create a normal file in
> such a location.
>
> Should fio treat "/dev" paths in linux the same way?
No, I don't think so. It's a directory like anything else. Who knows
what will happen in the future, with all the core OS changes in Linux.
/dev could be a symlink, or special files could be in a different
location completely. What about FreeBSD, should we do the same there?
Or Solaris?
I'd much rather keep fio ignorant of any "special" directories, even if
it means that sometimes you do potentially run into issues like the
above, where you specify a block device that does not exist.
--
Jens Axboe
next prev parent reply other threads:[~2014-10-01 1:02 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-30 23:49 linux /dev and normal files Elliott, Robert (Server Storage)
2014-10-01 1:02 ` Jens Axboe [this message]
2014-10-01 1:12 ` Elliott, Robert (Server Storage)
2014-10-01 1:17 ` Jens Axboe
2014-10-01 3:43 ` Jens Axboe
2014-10-01 7:36 ` Sitsofe Wheeler
2014-10-01 14:20 ` Jens Axboe
2014-10-01 14:31 ` Elliott, Robert (Server Storage)
2014-10-01 23:52 ` Elliott, Robert (Server Storage)
2014-10-02 0:58 ` Jens Axboe
2014-10-02 1:03 ` Jens Axboe
2014-10-02 18:21 ` Elliott, Robert (Server Storage)
2014-10-02 18:32 ` Jens Axboe
2014-10-02 18:41 ` Jens Axboe
2015-04-03 18:13 ` Elliott, Robert (Server Storage)
2015-04-03 18:24 ` Jens Axboe
2015-05-12 15:32 ` Jens Axboe
2015-05-12 16:34 ` Elliott, Robert (Server Storage)
2015-05-12 17:56 ` Jens Axboe
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=542B52B3.5060908@kernel.dk \
--to=axboe@kernel.dk \
--cc=Elliott@hp.com \
--cc=cheerios123@outlook.com \
--cc=fio@vger.kernel.org \
--cc=sitsofe@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