Re: [PATCH 5/7] vfs: Add wbcflush sysfs knob to disable storage device writeback cache flushes
- From: Bartlomiej Zolnierkiewicz <bzolnier@xxxxxxxxx>
- Date: Mon, 30 Mar 2009 22:56:12 +0200
On Monday 30 March 2009, Jeff Garzik wrote:
Jens Axboe wrote:
On Mon, Mar 30 2009, Jeff Garzik wrote:
Jens Axboe wrote:
On Mon, Mar 30 2009, Bartlomiej Zolnierkiewicz wrote:How do installers and/or kernels detect a battery-backed cache that does
On Monday 30 March 2009, Fernando Luis Vázquez Cao wrote:The knob is meant to control whether we really need to send a flush to
Add a sysfs knob to disable storage device writeback cache flushes.The horde of casual desktop users (with me included) would probably prefer
having two settings -- one for filesystem barriers and one for fsync().
IOW I prefer higher performance at the cost of risking losing few last
seconds/minutes of work in case of crash / powerfailure but I would still
like to have the filesystem in the consistent state after such accident.
the device or not, so it's an orthogonal issue to what you are talking
about. For battery backed caches, we never need to flush. This knob is
useful IFF we have devices with write back caches that STILL do a cache
flush.
not need flush?
They obviously can't, otherwise it would not be an issue at all. And
whether it's an issue is up for debate, until someone can point at such
a device. You could add a white/blacklist.
Sorry, I guess I misinterpreted your dual "IFF" statement :)
I completely agree that the suggested knob, for disabling cache flush
for these battery-backed devices, is at the present time addressing an
entirely theoretical argument AFAICS.
Guys, please look at the patch in the context of whole patchset posted
not the current Linus' tree context only.
Patch #4 adds mandatory cache flush to fsync() (based on earlier Jeff's
submission I guess) and patch #5 (this patch) adds a knob to disable cache
flushing completely.
If patch #4 is going to be ever applied I want to have an option to disable
mandatory cache flushing on fsync() -- I don't need it and I don't want it
on my desktop (+ I somehow believe I'm not the only one). OTOH I do need it
and I do want it on my server (+ to be on by default).
Actually legacy fsync() syscall is pretty bad interface in itself because:
a) it is synchronous
b) operates only on a single fd
and it encourages some pretty stupid (performance wise) usages like
calling fsync() after every mail fetched. Adding mandatory cache flush
to it only makes things worse (again looking from performance POV).
BTW in Linux world we never made any guarantees for fsync() on devices
using write caching:
$ man fsync
...
If the underlying hard disk has write caching enabled, then the data
may not really be on permanent storage when fsync() / fdatasync()
return.
...
aio_fsync() looks a bit better on a paper but no filesystem implements
it currently...
--
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/
- Follow-Ups:
- References:
- Re: Linux 2.6.29
- From: Linus Torvalds
- Re: [PATCH 5/7] vfs: Add wbcflush sysfs knob to disable storage device writeback cache flushes
- From: Jens Axboe
- Re: [PATCH 5/7] vfs: Add wbcflush sysfs knob to disable storage device writeback cache flushes
- From: Jeff Garzik
- Re: Linux 2.6.29
- Prev by Date: Re: [PATCH 0/8] MAINTAINERS - add script and patterns
- Next by Date: Re: [PATCH] hvc_console: prevent wrapping in hvc_console_print()
- Previous by thread: Re: [PATCH 5/7] vfs: Add wbcflush sysfs knob to disable storage device writeback cache flushes
- Next by thread: Re: [PATCH 5/7] vfs: Add wbcflush sysfs knob to disable storage device writeback cache flushes
- Index(es):
Relevant Pages
|