Messages in this thread | ![/](/images/icornerl.gif) | | Subject | Re: open(.. O_DIRECT ..) difference in between Linux and FreeBSD .. | Date | Fri, 13 Jun 2003 11:02:27 +0200 | From | Rob van Nieuwkerk <> |
| |
Arjan van de Ven wrote: > On Fri, Jun 13, 2003 at 10:27:52AM +0200, Rob van Nieuwkerk wrote: > > > > Arjan van de Ven wrote: > > > On Fri, Jun 13, 2003 at 01:12:57AM +0200, Rob van Nieuwkerk wrote: > > > > FYI: > > > > It appears that somewhere between RH kernels 2.4.18-27.7.x and 2.4.20-18.9 > > > > something has changed so that my application needs a O_SYNC too besides > > > > the O_DIRECT to make sure that writes will be synchronous. If I leave > > > > the O_SYNC out with 2.4.20-18.9 the write will happen physically 35 > > > > seconds after the write() was done. > > > > > > O_DIRECT is nothing but a hint and the 2.4.20-18.9 kernel decides to not > > > honor it > > > > Hi Arjan, > > > > Do you mean that the 2.4.20-18.9 kernel always ignores the O_DIRECT flag ? > > yes.
Hi Arjan,
OK, that would explain why I see an old problem (*) re-appear in my application that was solved/worked-around by using O_DIRECT when using 2.4.20-18.9.
Just to make sure I understand it correctly, is it like this: ? "Kernel 2.4.20-18.9 completely ignores the O_DIRECT flag. Not only the "synchronous writes part" but also you will get read-ahead despite using O_DIRECT. The 2.4.20-18.9 with O_DIRECT behaviour is similar to the 2.4.18-27.7.x without O_DIRECT (concerning synchronity of write() and the number of physical media reads & writes)."
Just curious: what is the reason for ignoring O_DIRECT in 2.4.20-18.9 ? Interactivity behaviour ?
Greetings, Rob van Nieuwkerk
(*) I have an application that runs from CompactFlash that uses a Philips webcam (pwc driver). It turned out that too much CompactFlash access (in PIO mode) causes the camera(driver?) to stall and never wake up again :-( I only log 2048 byte records to a raw partition. With O_DIRECT and proper data aligning I could reduce the CF-access to exactly 4 512 byte sector writes. This was enough to never trigger the problem. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |