From: Andrea Arcangeli <andrea@suse.de>
To: Andrew Morton <akpm@digeo.com>
Cc: Dave McCracken <dmccr@us.ibm.com>,
mika.penttila@kolumbus.fi, linux-mm@kvack.org,
linux-kernel@vger.kernel.org
Subject: Re: Race between vmtruncate and mapped areas?
Date: Thu, 15 May 2003 10:50:23 +0200 [thread overview]
Message-ID: <20030515085023.GU1429@dualathlon.random> (raw)
In-Reply-To: <20030514115319.51a54174.akpm@digeo.com>
On Wed, May 14, 2003 at 11:53:19AM -0700, Andrew Morton wrote:
> converting i_sem to an rwsem and taking it in the pagefault would certainly
> stitch it up. Unpopular, very messy.
and very slow, down_read on every page fault wouldn't scale
> Could "truncate file" return some code to say pages were left behind, so
> truncate re-runs zap_page_range()? Sounds unpleasant.
>
>
> Yes, re-checking the page against i_size from do_no_page() would fix it up.
think if there are two truncates, one zapping the entere file, and
another restoring the previous i_size, in such case the new_page will be
wrong, as it won't be zeroed out. I mean if we do anything about it, we
should close all races and make it 100% correct.
My fix has no scalability cost, no indirect calls, touches mostly just
hot cachelines anyways, and addresses the multiple truncate case too.
> But damn, that's another indirect call, 64-bit math, etc on _every_
> file-backed pagefault.
>
>
> Remind me again what problem this whole thing is currently causing?
the only thing I can imagine is an app trapping SIGBUS to garbage
collect the end of a file. So for example you truncate the file and you
wait the SIGBUS to know you've to re-extend it. it would be a legitimate
use, and this is a bug, it's not read against write that has no way to
synchronize anyways, however I doubt any application is being bitten by
this race.
Andrea
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"aart@kvack.org"> aart@kvack.org </a>
next prev parent reply other threads:[~2003-05-15 8:50 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-13 20:44 Dave McCracken
2003-05-13 20:58 ` Mika Penttilä
2003-05-13 21:04 ` William Lee Irwin III
2003-05-13 22:26 ` Dave McCracken
2003-05-13 22:49 ` William Lee Irwin III
2003-05-13 23:00 ` Dave McCracken
2003-05-13 23:11 ` William Lee Irwin III
2003-05-13 23:16 ` Dave McCracken
2003-05-13 23:20 ` William Lee Irwin III
2003-05-13 23:28 ` Dave McCracken
2003-05-13 23:29 ` William Lee Irwin III
2003-05-13 23:16 ` William Lee Irwin III
2003-05-14 1:10 ` Andrew Morton
2003-05-14 15:02 ` Dave McCracken
2003-05-14 1:10 ` Andrew Morton
2003-05-14 15:02 ` Dave McCracken
2003-05-14 15:06 ` William Lee Irwin III
2003-05-14 15:25 ` Dave McCracken
2003-05-14 16:42 ` Gerrit Huizenga
2003-05-14 17:34 ` Andrew Morton
2003-05-14 17:42 ` Dave McCracken
2003-05-14 17:57 ` Andrew Morton
2003-05-14 18:05 ` Dave McCracken
2003-05-14 18:17 ` Andrew Morton
2003-05-14 18:24 ` Dave McCracken
2003-05-14 18:53 ` Andrew Morton
2003-05-15 8:50 ` Andrea Arcangeli [this message]
2003-05-14 19:02 ` Rik van Riel
2003-05-14 19:04 ` Rik van Riel
2003-05-14 19:07 ` Dave McCracken
2003-05-14 19:11 ` Rik van Riel
2003-05-15 0:49 ` Andrea Arcangeli
2003-05-15 2:36 ` Rik van Riel
2003-05-15 9:46 ` Andrea Arcangeli
2003-05-15 9:55 ` Andrew Morton
2003-05-15 8:32 ` Andrew Morton
2003-05-15 8:42 ` Andrew Morton
2003-05-15 8:55 ` Andrea Arcangeli
2003-05-15 9:20 ` Andrew Morton
2003-05-15 9:40 ` Andrea Arcangeli
2003-05-15 9:58 ` Andrew Morton
2003-05-15 16:38 ` Daniel McNeil
2003-05-15 19:19 ` Andrea Arcangeli
2003-05-15 22:04 ` Daniel McNeil
2003-05-15 23:17 ` Andrea Arcangeli
2003-05-17 0:27 ` Daniel McNeil
2003-05-17 17:29 ` Andrea Arcangeli
2003-05-13 21:00 ` William Lee Irwin III
2003-05-17 18:19 Paul McKenney
2003-05-17 18:42 ` Andrea Arcangeli
2003-05-19 18:11 Paul McKenney
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=20030515085023.GU1429@dualathlon.random \
--to=andrea@suse.de \
--cc=akpm@digeo.com \
--cc=dmccr@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mika.penttila@kolumbus.fi \
/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