Re: [PATCH 01/13] writeback: IO-less balance_dirty_pages()

From: Ted Ts'o
Date: Mon Dec 06 2010 - 07:36:16 EST


On Mon, Dec 06, 2010 at 12:52:21PM +0300, Dmitry wrote:
> May be it is reasonable to introduce new mount option which control
> dynamic delalloc on/off behavior for example like this:
> 0) -odelalloc=off : analog of nodelalloc
> 1) -odelalloc=normal : Default mode (disable delalloc if close to full fs)
> 2) -odelalloc=force : delalloc mode always enabled, so we have to do
> writeback more aggressive in case of ENOSPC.
>
> So one can force delalloc and can safely use this writeback mode in
> multi-user environment. Openvz already has this. I'll prepare the patch
> if you are interesting in that feature?

Yeah, I'd really rather not do that. There are significant downsides
with your proposed odelalloc=force mode. One of which is that we
could run out of space and not notice. If the application doesn't
call fsync() and check the return value, and simply closes()'s the
file and then exits, when the writeback threads do get around to
writing the file, the block allocation could fail, and oops, data gets
lost. There's a _reason_ why we disable delalloc when we're close to
a full fs. The only alternative is to super conservative when doing
your block reservation calculations, and in that case, you end up
returning ENOSPC far too soon.

- Ted
--
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/