RPM

Use O_DIRECT on FreeBSD only

Registered by Jeff Johnson

     Change: bdb-use-odirect-on-freebsd-only
     Purpose: Use O_DIRECT on FreeBSD only
     Reason: The O_DIRECT feature is fully broken under at least Linux
                     2.2 and 2.4. It is sometimes accepted by open(2)
                     without error and later causes a write(2) to fail
                     with EINVAL -- all depending on the underlying
                     filesystem (usually works on tmpfs and fails on
                     ext3). Sometimes it also causes open(2) to fail
                     with EINVAL. In general, it does especially no
                     "graceful degradation" and so is useless for use on
                     mostly all platforms except for those where we know
                     it works (currently FreeBSD only). Interestingly,
                     RPM works on RedHat, just because RedHat's "kernel"
                     package contains a patch which masks out O_DIRECT
                     usage... ;-)
     Hint: O_DIRECT is very b0rken on linux. OTOH using vmalloc to
                     get page aligned buffer for I/O is merely obscure, easily
                     doable. Likely should be sent to Oracle.

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Discussion
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.