Repository navigation
Missing open flag (O_DIRECT) #48
Description
Activity
O_DIRECT is specific to Linux and additionally appears to be deprecated in favor of using raw(8).
If you're in desperate need you can bind to open(2) and pass the flag in yourself using the FFI.
Err... Exactly the other way around: https://lkml.org/lkml/2007/2/16/431.
Keep searching. They changed their minds after that.
On Wed, Oct 7, 2015, 1:10 AM mr-hands [email protected] wrote:
Err... Exactly the other way around: https://lkml.org/lkml/2007/2/16/431.
—
Reply to this email directly or view it on GitHub
#48 (comment).Well:
config RAW_DRIVER
tristate "RAW driver (/dev/raw/rawN)"
depends on BLOCK
help
The raw driver permits block devices to be bound to /dev/raw/rawN.
Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
See the raw(8) manpage for more details.Applications should preferably open the device (eg /dev/hda1) with the O_DIRECT flag.This is from the latest master. Could you provide some links that O_DIRECT is deprecated?
I misread the entry in the man page. In any case this is both Linux
specific and is it's something you need urgently today you will get the
best results with the ffi. (I'm not the maintainer, so I'm not claiming to
be ruling on the outcome of this ticket.)On Wed, Oct 7, 2015, 7:38 AM mr-hands [email protected] wrote:
Well:
config RAW_DRIVER
tristate "RAW driver (/dev/raw/rawN)"
depends on BLOCK
help
The raw driver permits block devices to be bound to /dev/raw/rawN.
Once bound, I/O against /dev/raw/rawN uses efficient zero-copy I/O.
See the raw(8) manpage for more details.Applications should preferably open the device (eg /dev/hda1) with the O_DIRECT flag.This is from the latest master. Could you provide some links that O_DIRECT
is deprecated?—
Reply to this email directly or view it on GitHub
#48 (comment).My FreeBSD 10.1 system has
O_DIRECTin the man page. I've never personally used it on FreeBSD, but I'll assume the man page is accurate.This said, this is an ongoing issue (see #6). I echo Gregory Collins' sentiments from that issue: "The old design is dirty, but we're stuck with it for the moment. I'll be happy to accept a pull request adding the new flags. It will require a major version bump."
I will add that this is yet another flag (see the handling of
RTLD_NEXTfor another) which requires_GNU_SOURCEon certain Linux platforms (e.g., SuSe). We will not enable the_GNU_SOURCEflag, so any provided fix must be able to work around this issue without changing the general structure of theOpenFileFlags(thereby breaking backward compatibility) or breaking pattern matching in a cross-platform setting (by e.g., changing the data structure with an#ifdef).Alternatives include using the FFI (thanks for fielding this one, @glguy), modifying a copy of unix for local use, or using the
rawcommand line utility to work around the issue.For the record, I will not get to this in the near future. This, of course, should not rule out pull requests. If and when I do make a change here, it will probably be as a set of major changes which will break backward compatibility and require multiple active versions (similar to the
baseupdate of a few years back).I'll leave this issue open for the rest of the day for general conversation (if desired). Please direct any further technical discussion pertinent to adding
O_DIRECTto #6.not part of posix, so should not be added, see http://www.unix.com/man-page/posix/3p/open/
I guess no one is pushing for this anymore, so let's close as wontfix. If anyone wants to revive the discussion, open a new ticket.
Hi guys, I'm in a desperate need for O_DIRECT flag. Could you add it?