On Thu, 11 Jan 2007, Xavier Bestel wrote:
> Le jeudi 11 janvier 2007 à 07:50 -0800, Linus Torvalds a écrit : > > > O_DIRECT is still crazily racy versus pagecache operations. > > > > Yes. O_DIRECT is really fundamentally broken. There's just no way to fix > > it sanely. > > How about aliasing O_DIRECT to POSIX_FADV_NOREUSE (sortof) ? That is what I think some users could do. If the main issue with O_DIRECT is the page cache allocations, if we instead had better (read: "any") support for POSIX_FADV_NOREUSE, one class of reasons O_DIRECT usage would just go away. See also the patch that Roy Huang posted about another approach to the same problem: just limiting page cache usage explicitly. That's not the _only_ issue with O_DIRECT, though. It's one big one, but people like to think that the memory copy makes a difference when you do IO too (I think it's likely pretty debatable in real life, but I'm totally certain you can benchmark it, probably even pretty easily especially if you have fairly studly IO capabilities and a CPU that isn't quite as studly). So POSIX_FADV_NOREUSE kind of support is one _part_ of the O_DIRECT picture, and depending on your problems (in this case, the embedded world) it may even be the *biggest* part. But it's not the whole picture. Linus