From: Andrea Arcangeli <andrea@suse.de>
To: Alexander Viro <viro@math.psu.edu>
Cc: Andrew Morton <akpm@zip.com.au>,
Linus Torvalds <torvalds@transmeta.com>,
torrey.hoffman@myrio.com, linux-kernel@vger.kernel.org,
Marcelo Tosatti <marcelo@conectiva.com.br>,
"Stephen C. Tweedie" <sct@redhat.com>
Subject: Re: ramdisk corruption problems - was: RE: pivot_root and initrd kern el panic woes
Date: Mon, 31 Dec 2001 01:05:37 +0100 [thread overview]
Message-ID: <20011231010537.K1356@athlon.random> (raw)
In-Reply-To: <3C2EB208.B2BA7CBF@zip.com.au> <Pine.GSO.4.21.0112300129060.8523-100000@weyl.math.psu.edu>
In-Reply-To: <Pine.GSO.4.21.0112300129060.8523-100000@weyl.math.psu.edu>; from viro@math.psu.edu on Sun, Dec 30, 2001 at 01:33:24AM -0500
On Sun, Dec 30, 2001 at 01:33:24AM -0500, Alexander Viro wrote:
>
>
> On Sat, 29 Dec 2001, Andrew Morton wrote:
>
> > Would it be necessary to preallocate the holes at mmap() time? Mad
> > hand-waving: Could we not perform the instantiation at pagefault time,
> > and give the caller SIGBUS if we cannot allocate the blocks? Or if
> > there's an IO error, or quota exceeded.
>
> Allocation at mmap() Is Not Going To Happen. Consider it vetoed.
> There are applications that use mmap() on large and very sparse
> files.
it's exactly this kind of apps that will be screwed up by silent data
corruption. the point of the holes is to optimize performance and save
space, but they shouldn't introduce the possibilty of data corruption.
Note: I'm fine to introduce another way to notify the app about -ENOSPC,
-ENOSPC on mmap is the most obvious one, but we could still allow the
current "overcommit" behaviour with a kind of sigbus mentioned by
Andrew (possibly not sigbus though, since it has just well defined
semantics for MAP_SHARED, maybe they could be extended, anyways as said
this is only a matter of API). My point is only that some API should be
added because your mmap on sparse files are unreliable at the moment.
> > Question: can someone please define BH_New? Its lifecycle seems
> > very vague. We never actually seem to *clear* it anywhere for
> > ext2, and it appears that the kernel will keep on treating a
> > clearly non-new buffer as "new" all the time. ext3 explicitly
> > clears BH_New in get_block(), if it finds the block was already
> > present in the file. I did this because we need the newness
> > info for internal purposes.
>
> It should be reset when we submit IO. Breakage related to failing
> allocation is indeed not new, but that's a long story. And no,
> "allocate on mmap()" is not a fix.
it is a fix (assuming people will understand/expect this retval :), but
yes, the current overcommit behaviour has some value so I agree some
other async API ala sigbus may be more desiderable.
Andrea
next prev parent reply other threads:[~2001-12-31 0:05 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-12-20 19:06 ramdisk corruption problems - was: RE: pivot_root and initrd kern el panic woes Torrey Hoffman
2001-12-20 19:46 ` Linus Torvalds
2001-12-20 22:56 ` Alexander Viro
2001-12-20 23:42 ` Andrea Arcangeli
2001-12-21 1:49 ` Andrea Arcangeli
[not found] ` <3C22CF16.C78B1F19@zip.com.au>
2001-12-29 15:40 ` Andrea Arcangeli
2001-12-30 6:19 ` Andrew Morton
2001-12-30 6:33 ` Alexander Viro
2001-12-30 6:38 ` Andrew Morton
2001-12-30 7:17 ` Alexander Viro
2001-12-30 10:15 ` ramdisk corruption problems - was: RE: pivot_root and initrd Alan Cox
2001-12-31 0:08 ` ramdisk corruption problems - was: RE: pivot_root and initrd kern el panic woes Andrea Arcangeli
2001-12-30 7:08 ` Andrew Morton
2001-12-30 7:29 ` Alexander Viro
2001-12-30 7:59 ` ramdisk corruption problems - was: RE: pivot_root and initrdkern " Andrew Morton
2001-12-30 17:40 ` Linus Torvalds
2001-12-31 0:28 ` Andrea Arcangeli
2001-12-31 0:35 ` Linus Torvalds
2001-12-31 1:00 ` Andrea Arcangeli
2001-12-31 0:05 ` Andrea Arcangeli [this message]
2002-01-05 11:43 ` ramdisk corruption problems - was: RE: pivot_root and initrd kern " Andrew Morton
2002-01-05 14:04 ` Trond Myklebust
2002-01-07 3:08 ` Andrea Arcangeli
2002-01-07 3:49 ` Andrew Morton
2002-01-07 4:31 ` Andrea Arcangeli
2001-12-30 23:56 ` Andrea Arcangeli
2001-12-31 10:06 ` Daniel Phillips
2002-01-04 16:38 ` Stephen C. Tweedie
2002-01-05 7:53 ` Andrew Morton
2002-01-07 1:08 ` Andrea Arcangeli
2001-12-21 1:38 ` Tachino Nobuhiro
2001-12-21 1:51 ` Everyone else but TWO Andre Hedrick
[not found] <Pine.GSO.4.21.0112210151020.15555-100000@weyl.math.psu.edu>
2001-12-21 23:11 ` ramdisk corruption problems - was: RE: pivot_root and initrd kern el panic woes Linus Torvalds
2001-12-21 23:39 ` Alexander Viro
-- strict thread matches above, loose matches on Subject: below --
2001-12-18 20:14 Torrey Hoffman
2001-12-20 12:19 ` Tachino Nobuhiro
2001-12-18 1:44 Torrey Hoffman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20011231010537.K1356@athlon.random \
--to=andrea@suse.de \
--cc=akpm@zip.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=marcelo@conectiva.com.br \
--cc=sct@redhat.com \
--cc=torrey.hoffman@myrio.com \
--cc=torvalds@transmeta.com \
--cc=viro@math.psu.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox