Re: O_DIRECT question

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Andrea Arcangeli
Date: Monday, January 29, 2007 - 10:00 am

On Sun, Jan 28, 2007 at 06:03:08PM +0100, Denis Vlasenko wrote:

O_DIRECT is about avoiding the copy_user between cache and userland,
when working with devices that runs faster than ram (think >=100M/sec,
quite standard hardware unless you've only a desktop or you cannot
afford raid).

O_SYNC is about working around buggy or underperforming VM growing the
dirty levels beyond optimal levels, or to open logfiles that you want
to save to disk ASAP (most other journaling usages are better done
with fsync instead). Or you can mount the fs in sync mode when you
deal with users not capable of unmounting devices before unplugging
them. Ideally you should never need O_SYNC, when you need O_SYNC it's
usually a very bad sign. If you need O_DIRECT it's not a bad sign
(needing O_DIRECT is mostly a sign you've a very fast storage).

The only case where I ever used O_SYNC myself is during backups (when
run on standard or mainline kernels that dirty half ram during
backup). For the logfiles I don't find it very useful, if something I
log them remotely (when system crashes usually the logs won't hit the
disk anyway, so it's just slower).

I use "tar | dd oflag=sync" and that generates a huge speedup to the
rest of the system (not necessairly to the backup itself). Yes I could
use even oflag=direct, but I'm fine to pass through the cache (the
backup device runs at 10M/sec through USB, so the copy_user is _sure_
worth it, if something it will help, it will never be a measurable
slowdown), what is not fine is to see half of the ram dirty the whole
time... (hence the need of o_sync).

O_SYNC and O_DIRECT are useful for different scenarios.
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
O_DIRECT question, Aubrey, (Wed Jan 10, 7:57 pm)
Re: O_DIRECT question, Linus Torvalds, (Wed Jan 10, 8:05 pm)
Re: O_DIRECT question, Linus Torvalds, (Wed Jan 10, 8:15 pm)
Re: O_DIRECT question, Andrew Morton, (Wed Jan 10, 9:51 pm)
Re: O_DIRECT question , Gerrit Huizenga, (Wed Jan 10, 10:06 pm)
Re: O_DIRECT question, Aubrey, (Wed Jan 10, 10:50 pm)
Re: O_DIRECT question, Andrew Morton, (Wed Jan 10, 11:06 pm)
Re: O_DIRECT question, Nick Piggin, (Wed Jan 10, 11:09 pm)
Re: O_DIRECT question, Alexander Shishkin, (Wed Jan 10, 11:16 pm)
Re: O_DIRECT question, Aubrey, (Wed Jan 10, 11:45 pm)
Re: O_DIRECT question, Andrew Morton, (Wed Jan 10, 11:57 pm)
Re: O_DIRECT question, Aubrey, (Wed Jan 10, 11:57 pm)
Re: O_DIRECT question, Nick Piggin, (Thu Jan 11, 12:05 am)
Re: O_DIRECT question, Aubrey, (Thu Jan 11, 12:54 am)
Re: O_DIRECT question, Roy Huang, (Thu Jan 11, 1:05 am)
Re: O_DIRECT question, Nick Piggin, (Thu Jan 11, 1:12 am)
Re: O_DIRECT question, Roy Huang, (Thu Jan 11, 1:49 am)
Re: O_DIRECT question, Nick Piggin, (Thu Jan 11, 2:09 am)
Re: O_DIRECT question, Viktor, (Thu Jan 11, 5:13 am)
Re: O_DIRECT question, linux-os (Dick Johnson), (Thu Jan 11, 5:34 am)
Re: O_DIRECT question, Erik Mouw, (Thu Jan 11, 5:45 am)
Re: O_DIRECT question, Martin Mares, (Thu Jan 11, 6:06 am)
Re: O_DIRECT question, Jens Axboe, (Thu Jan 11, 7:15 am)
Re: O_DIRECT question, Linus Torvalds, (Thu Jan 11, 8:50 am)
Re: O_DIRECT question, Phillip Susi, (Thu Jan 11, 8:53 am)
Re: O_DIRECT question, Badari Pulavarty, (Thu Jan 11, 9:09 am)
Re: O_DIRECT question, Aubrey, (Thu Jan 11, 9:19 am)
Re: O_DIRECT question, Linus Torvalds, (Thu Jan 11, 9:20 am)
Re: O_DIRECT question, bert hubert, (Thu Jan 11, 9:23 am)
Re: O_DIRECT question, Linus Torvalds, (Thu Jan 11, 9:45 am)
Re: O_DIRECT question, Xavier Bestel, (Thu Jan 11, 9:52 am)
Re: O_DIRECT question, Linus Torvalds, (Thu Jan 11, 10:04 am)
Re: O_DIRECT question, Michael Tokarev, (Thu Jan 11, 10:13 am)
Re: O_DIRECT question, Alan, (Thu Jan 11, 10:42 am)
Re: O_DIRECT question, Linus Torvalds, (Thu Jan 11, 11:00 am)
Re: O_DIRECT question, Trond Myklebust, (Thu Jan 11, 11:41 am)
Re: O_DIRECT question, Linus Torvalds, (Thu Jan 11, 12:00 pm)
Re: O_DIRECT question, Trond Myklebust, (Thu Jan 11, 12:49 pm)
Re: O_DIRECT question, Phillip Susi, (Thu Jan 11, 4:01 pm)
RE: O_DIRECT question, Hua Zhong, (Thu Jan 11, 4:06 pm)
Re: O_DIRECT question, Aubrey, (Thu Jan 11, 7:12 pm)
Re: O_DIRECT question, Bill Davidsen, (Thu Jan 11, 7:13 pm)
Re: O_DIRECT question, Nick Piggin, (Thu Jan 11, 7:47 pm)
Re: O_DIRECT question, Bill Davidsen, (Thu Jan 11, 7:48 pm)
Re: O_DIRECT question, Roy Huang, (Thu Jan 11, 8:59 pm)
Re: O_DIRECT question, Nick Piggin, (Thu Jan 11, 9:30 pm)
Re: O_DIRECT question, Linus Torvalds, (Thu Jan 11, 9:46 pm)
Re: O_DIRECT question, Nick Piggin, (Thu Jan 11, 9:56 pm)
Re: O_DIRECT question, Nick Piggin, (Thu Jan 11, 9:58 pm)
Re: O_DIRECT question, Linus Torvalds, (Thu Jan 11, 10:18 pm)
Re: O_DIRECT question, Aubrey, (Thu Jan 11, 10:22 pm)
Re: O_DIRECT question, dean gaudet, (Fri Jan 12, 12:57 am)
Re: O_DIRECT question, Bill Davidsen, (Fri Jan 12, 7:59 am)
Re: O_DIRECT question, Phillip Susi, (Fri Jan 12, 8:21 am)
Re: O_DIRECT question, Phillip Susi, (Fri Jan 12, 8:27 am)
Re: O_DIRECT question, Viktor, (Fri Jan 12, 9:59 am)
Re: O_DIRECT question, Viktor, (Fri Jan 12, 10:03 am)
Re: O_DIRECT question, Linus Torvalds, (Fri Jan 12, 11:06 am)
Re: O_DIRECT question, Chris Mason, (Fri Jan 12, 1:23 pm)
Re: O_DIRECT question, Michael Tokarev, (Fri Jan 12, 1:46 pm)
Re: O_DIRECT question, Michael Tokarev, (Fri Jan 12, 1:52 pm)
Re: O_DIRECT question, Michael Tokarev, (Fri Jan 12, 2:03 pm)
Re: O_DIRECT question, Linus Torvalds, (Fri Jan 12, 2:17 pm)
Disk Cache, Was: O_DIRECT question, Zan Lynx, (Fri Jan 12, 2:39 pm)
Re: O_DIRECT question, Michael Tokarev, (Fri Jan 12, 2:54 pm)
Re: O_DIRECT question, Linus Torvalds, (Fri Jan 12, 3:09 pm)
Re: Disk Cache, Was: O_DIRECT question, Michael Tokarev, (Fri Jan 12, 3:10 pm)
Re: O_DIRECT question, Michael Tokarev, (Fri Jan 12, 3:26 pm)
Re: O_DIRECT question, Erik Andersen, (Fri Jan 12, 3:35 pm)
Re: O_DIRECT question, Andrew Morton, (Fri Jan 12, 3:47 pm)
Re: O_DIRECT question, Nick Piggin, (Fri Jan 12, 9:51 pm)
Re: O_DIRECT question, Bill Davidsen, (Sat Jan 13, 1:07 pm)
Re: O_DIRECT question, Michael Tokarev, (Sat Jan 13, 1:27 pm)
Re: O_DIRECT question, Nate Diller, (Sun Jan 14, 2:11 am)
Re: O_DIRECT question, Bill Davidsen, (Sun Jan 14, 8:39 am)
Re: O_DIRECT question, Helge Hafting, (Mon Jan 15, 5:11 am)
Re: O_DIRECT question, Jörn, (Mon Jan 15, 8:41 pm)
Re: O_DIRECT question, Aubrey Li, (Tue Jan 16, 9:29 pm)
Re: O_DIRECT question, Denis Vlasenko, (Sat Jan 20, 9:19 am)
Re: O_DIRECT question, Denis Vlasenko, (Sat Jan 20, 9:36 am)
Re: O_DIRECT question, Denis Vlasenko, (Sat Jan 20, 9:45 am)
Re: O_DIRECT question, Michael Tokarev, (Sat Jan 20, 1:55 pm)
Re: O_DIRECT question, Denis Vlasenko, (Sat Jan 20, 4:05 pm)
Re: O_DIRECT question, Michael Tokarev, (Sun Jan 21, 5:09 am)
Re: O_DIRECT question, Denis Vlasenko, (Sun Jan 21, 1:02 pm)
Re: O_DIRECT question, Andrea Arcangeli, (Sun Jan 21, 6:47 pm)
Re: O_DIRECT question, Phillip Susi, (Mon Jan 22, 8:52 am)
Re: O_DIRECT question, Phillip Susi, (Mon Jan 22, 9:17 am)
Re: O_DIRECT question, Denis Vlasenko, (Wed Jan 24, 2:15 pm)
Re: O_DIRECT question, Phillip Susi, (Thu Jan 25, 8:44 am)
Re: O_DIRECT question, Denis Vlasenko, (Thu Jan 25, 10:38 am)
Re: O_DIRECT question, Phillip Susi, (Thu Jan 25, 12:28 pm)
Re: O_DIRECT question, Denis Vlasenko, (Thu Jan 25, 12:52 pm)
Re: O_DIRECT question, Phillip Susi, (Thu Jan 25, 1:03 pm)
Re: O_DIRECT question, Michael Tokarev, (Thu Jan 25, 1:45 pm)
Re: O_DIRECT question, Denis Vlasenko, (Thu Jan 25, 2:11 pm)
Re: O_DIRECT question, Bill Davidsen, (Fri Jan 26, 8:53 am)
Re: O_DIRECT question, Mark Lord, (Fri Jan 26, 9:02 am)
Re: O_DIRECT question, Viktor, (Fri Jan 26, 9:52 am)
Re: O_DIRECT question, Phillip Susi, (Fri Jan 26, 9:58 am)
Re: O_DIRECT question, Phillip Susi, (Fri Jan 26, 10:05 am)
Re: O_DIRECT question, Bill Davidsen, (Fri Jan 26, 11:23 am)
Re: O_DIRECT question, Denis Vlasenko, (Fri Jan 26, 4:16 pm)
Re: O_DIRECT question, Denis Vlasenko, (Fri Jan 26, 4:35 pm)
Re: O_DIRECT question, Bill Davidsen, (Sun Jan 28, 8:18 am)
Re: O_DIRECT question, Denis Vlasenko, (Sun Jan 28, 10:03 am)
Re: O_DIRECT question, Phillip Susi, (Mon Jan 29, 8:43 am)
Re: O_DIRECT question, Andrea Arcangeli, (Mon Jan 29, 10:00 am)
Re: O_DIRECT question, Denis Vlasenko, (Mon Jan 29, 5:05 pm)
Re: O_DIRECT question, Pavel Machek, (Tue Feb 6, 1:39 pm)