Re: statfs() / statvfs() syscall ballsup...

From: Jamie Lokier
Date: Fri Oct 10 2003 - 11:07:35 EST


Joel Becker wrote:
> Where I work doesn't change the need for O_DIRECT. If your Big
> App has it's own cache, why copy the cache in the kernel? That just
> wastes RAM.

Why don't you _share_ the App's cache with the kernel's? That's what
mmap() and remap_file_pages() are for.

> If your app is sharing data, whether physical disk, logical
> disk, or via some network filesystem or storage device, you must
> absolutely guarantee that reads and writes hit the storage, not the
> kernel cache which has no idea whether another node wrote an update or
> needs a cache flush.

That's tough to guarantee at the platter level regardless of O_DIRECT,
but otherwise: you have fdatasync() and msync().

> If Linux came up with a better, cleaner method, Oracle might change.

Take a look at remap_file_pages() and write a note here to say if it
fits the bill. I thought remap_file_pages() was added for Oracle, but
perhaps it was for a more modern database ;)

Thanks,
-- Jamie
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/