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
WARNING: multiple messages have this Message-ID (diff)
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:37 UTC|newest]
Thread overview: 100+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-05-13 20:44 Race between vmtruncate and mapped areas? Dave McCracken
2003-05-13 20:44 ` Dave McCracken
2003-05-13 20:58 ` Mika Penttilä
2003-05-13 20:58 ` Mika Penttilä
2003-05-13 21:04 ` William Lee Irwin III
2003-05-13 21:04 ` William Lee Irwin III
2003-05-13 22:26 ` Dave McCracken
2003-05-13 22:26 ` Dave McCracken
2003-05-13 22:49 ` William Lee Irwin III
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:11 ` William Lee Irwin III
2003-05-13 23:16 ` Dave McCracken
2003-05-13 23:16 ` Dave McCracken
2003-05-13 23:20 ` William Lee Irwin III
2003-05-13 23:20 ` William Lee Irwin III
2003-05-13 23:28 ` Dave McCracken
2003-05-13 23:28 ` Dave McCracken
2003-05-13 23:29 ` William Lee Irwin III
2003-05-13 23:29 ` William Lee Irwin III
2003-05-13 23:16 ` William Lee Irwin III
2003-05-13 23:16 ` William Lee Irwin III
2003-05-14 1:10 ` Andrew Morton
2003-05-14 1:10 ` Andrew Morton
2003-05-14 15:02 ` Dave McCracken
2003-05-14 15:02 ` Dave McCracken
2003-05-14 1:10 ` Andrew Morton
2003-05-14 1:10 ` Andrew Morton
2003-05-14 15:02 ` Dave McCracken
2003-05-14 15:02 ` Dave McCracken
2003-05-14 15:06 ` William Lee Irwin III
2003-05-14 15:06 ` William Lee Irwin III
2003-05-14 15:25 ` Dave McCracken
2003-05-14 15:25 ` Dave McCracken
2003-05-14 16:42 ` Gerrit Huizenga
2003-05-14 16:42 ` Gerrit Huizenga
2003-05-14 17:34 ` Andrew Morton
2003-05-14 17:34 ` Andrew Morton
2003-05-14 17:42 ` Dave McCracken
2003-05-14 17:42 ` Dave McCracken
2003-05-14 17:57 ` Andrew Morton
2003-05-14 17:57 ` Andrew Morton
2003-05-14 18:05 ` Dave McCracken
2003-05-14 18:05 ` Dave McCracken
2003-05-14 18:17 ` Andrew Morton
2003-05-14 18:17 ` Andrew Morton
2003-05-14 18:24 ` Dave McCracken
2003-05-14 18:24 ` Dave McCracken
2003-05-14 18:53 ` Andrew Morton
2003-05-14 18:53 ` Andrew Morton
2003-05-15 8:50 ` Andrea Arcangeli [this message]
2003-05-15 8:50 ` Andrea Arcangeli
2003-05-14 19:02 ` Rik van Riel
2003-05-14 19:02 ` Rik van Riel
2003-05-14 19:04 ` Rik van Riel
2003-05-14 19:04 ` Rik van Riel
2003-05-14 19:07 ` Dave McCracken
2003-05-14 19:07 ` Dave McCracken
2003-05-14 19:11 ` Rik van Riel
2003-05-14 19:11 ` Rik van Riel
2003-05-15 0:49 ` Andrea Arcangeli
2003-05-15 0:49 ` Andrea Arcangeli
2003-05-15 2:36 ` Rik van Riel
2003-05-15 2:36 ` Rik van Riel
2003-05-15 9:46 ` Andrea Arcangeli
2003-05-15 9:46 ` Andrea Arcangeli
2003-05-15 9:55 ` Andrew Morton
2003-05-15 9:55 ` Andrew Morton
2003-05-15 8:32 ` Andrew Morton
2003-05-15 8:32 ` Andrew Morton
2003-05-15 8:42 ` Andrew Morton
2003-05-15 8:42 ` Andrew Morton
2003-05-15 8:55 ` Andrea Arcangeli
2003-05-15 8:55 ` Andrea Arcangeli
2003-05-15 9:20 ` Andrew Morton
2003-05-15 9:20 ` Andrew Morton
2003-05-15 9:40 ` Andrea Arcangeli
2003-05-15 9:40 ` Andrea Arcangeli
2003-05-15 9:58 ` Andrew Morton
2003-05-15 9:58 ` Andrew Morton
2003-05-15 16:38 ` Daniel McNeil
2003-05-15 19:19 ` Andrea Arcangeli
2003-05-15 19:19 ` Andrea Arcangeli
2003-05-15 22:04 ` Daniel McNeil
2003-05-15 22:04 ` Daniel McNeil
2003-05-15 23:17 ` Andrea Arcangeli
2003-05-15 23:17 ` Andrea Arcangeli
2003-05-17 0:27 ` Daniel McNeil
2003-05-17 0:27 ` Daniel McNeil
2003-05-17 17:29 ` Andrea Arcangeli
2003-05-17 17:29 ` Andrea Arcangeli
2003-05-13 21:00 ` William Lee Irwin III
2003-05-13 21:00 ` William Lee Irwin III
-- strict thread matches above, loose matches on Subject: below --
2003-05-17 18:19 Paul McKenney
2003-05-17 18:19 ` Paul McKenney
2003-05-17 18:42 ` Andrea Arcangeli
2003-05-17 18:42 ` Andrea Arcangeli
2003-05-19 18:11 Paul McKenney
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.