All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <npiggin@suse.de>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Linux Memory Management <linux-mm@kvack.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [patch 3/6] mm: fix fault vs invalidate race for linear mappings
Date: Wed, 7 Mar 2007 08:25:46 +0100	[thread overview]
Message-ID: <20070307072545.GC15877@wotan.suse.de> (raw)
In-Reply-To: <20070306230841.69409ffc.akpm@linux-foundation.org>

On Tue, Mar 06, 2007 at 11:08:41PM -0800, Andrew Morton wrote:
> On Wed, 7 Mar 2007 07:57:27 +0100 Nick Piggin <npiggin@suse.de> wrote:
> 
> > > 
> > > Why was truncate_inode_pages_range() altered to unmap the page if it got
> > > mapped again?
> > > 
> > > Oh.  Because the unmap_mapping_range() call got removed from vmtruncate(). 
> > > Why?  (Please send suitable updates to the changelog).
> > 
> > We have to ensure it is unmapped, and be prepared to unmap it while under
> > the page lock.
> 
> But vmtruncate() dropped i_size, so nobody will map this page into
> pagetables from then on.

But there could be a fault in progress... the only way to know is
locking the page.

> > > I guess truncate of a mmapped area isn't sufficiently common to worry about
> > > the inefficiency of this change.
> > 
> > Yeah, and it should be more efficient for files that aren't mmapped,
> > because we don't have to take i_mmap_lock for them.
> > 
> > > Lots of memory barriers got removed in memory.c, unchangeloggedly.
> > 
> > Yeah they were all for the lockless truncate_count checks. Now that
> > we use the page lock, we don't need barriers.
> > 
> > > Gratuitous renaming of locals in do_no_page() makes the change hard to
> > > review.  Should have been a separate patch.
> > > 
> > > In fact, the patch would have been heaps clearer if that renaming had been
> > > a separate patch.
> > 
> > Shall I?
> 
> If you don't have anything better to do, yes please ;)

OK.

WARNING: multiple messages have this Message-ID (diff)
From: Nick Piggin <npiggin@suse.de>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Linux Memory Management <linux-mm@kvack.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>
Subject: Re: [patch 3/6] mm: fix fault vs invalidate race for linear mappings
Date: Wed, 7 Mar 2007 08:25:46 +0100	[thread overview]
Message-ID: <20070307072545.GC15877@wotan.suse.de> (raw)
In-Reply-To: <20070306230841.69409ffc.akpm@linux-foundation.org>

On Tue, Mar 06, 2007 at 11:08:41PM -0800, Andrew Morton wrote:
> On Wed, 7 Mar 2007 07:57:27 +0100 Nick Piggin <npiggin@suse.de> wrote:
> 
> > > 
> > > Why was truncate_inode_pages_range() altered to unmap the page if it got
> > > mapped again?
> > > 
> > > Oh.  Because the unmap_mapping_range() call got removed from vmtruncate(). 
> > > Why?  (Please send suitable updates to the changelog).
> > 
> > We have to ensure it is unmapped, and be prepared to unmap it while under
> > the page lock.
> 
> But vmtruncate() dropped i_size, so nobody will map this page into
> pagetables from then on.

But there could be a fault in progress... the only way to know is
locking the page.

> > > I guess truncate of a mmapped area isn't sufficiently common to worry about
> > > the inefficiency of this change.
> > 
> > Yeah, and it should be more efficient for files that aren't mmapped,
> > because we don't have to take i_mmap_lock for them.
> > 
> > > Lots of memory barriers got removed in memory.c, unchangeloggedly.
> > 
> > Yeah they were all for the lockless truncate_count checks. Now that
> > we use the page lock, we don't need barriers.
> > 
> > > Gratuitous renaming of locals in do_no_page() makes the change hard to
> > > review.  Should have been a separate patch.
> > > 
> > > In fact, the patch would have been heaps clearer if that renaming had been
> > > a separate patch.
> > 
> > Shall I?
> 
> If you don't have anything better to do, yes please ;)

OK.

--
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:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2007-03-07  7:25 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-21  4:49 [patch 0/6] fault vs truncate/invalidate race fix Nick Piggin
2007-02-21  4:49 ` Nick Piggin
2007-02-21  4:49 ` [patch 1/6] mm: debug check for the fault vs invalidate race Nick Piggin
2007-02-21  4:49   ` Nick Piggin
2007-02-21  4:49 ` [patch 2/6] mm: simplify filemap_nopage Nick Piggin
2007-02-21  4:49   ` Nick Piggin
2007-02-21  4:50 ` [patch 3/6] mm: fix fault vs invalidate race for linear mappings Nick Piggin
2007-02-21  4:50   ` Nick Piggin
2007-03-07  6:36   ` Andrew Morton
2007-03-07  6:36     ` Andrew Morton
2007-03-07  6:57     ` Nick Piggin
2007-03-07  6:57       ` Nick Piggin
2007-03-07  7:08       ` Andrew Morton
2007-03-07  7:08         ` Andrew Morton
2007-03-07  7:25         ` Nick Piggin [this message]
2007-03-07  7:25           ` Nick Piggin
2007-02-21  4:50 ` [patch 4/6] mm: merge populate and nopage into fault (fixes nonlinear) Nick Piggin
2007-02-21  4:50   ` Nick Piggin
2007-03-07  6:51   ` Andrew Morton
2007-03-07  6:51     ` Andrew Morton
2007-03-07  7:08     ` Nick Piggin
2007-03-07  7:08       ` Nick Piggin
2007-03-07  8:19       ` Nick Piggin
2007-03-07  8:19         ` Nick Piggin
2007-03-07  8:27         ` Ingo Molnar
2007-03-07  8:27           ` Ingo Molnar
2007-03-07  8:35           ` Andrew Morton
2007-03-07  8:35             ` Andrew Morton
2007-03-07  8:53             ` Ingo Molnar
2007-03-07  8:53               ` Ingo Molnar
2007-03-07  9:28               ` Nick Piggin
2007-03-07  9:28                 ` Nick Piggin
2007-03-07  9:44                 ` Bill Irwin
2007-03-07  9:44                   ` Bill Irwin
2007-03-07  9:49                   ` Nick Piggin
2007-03-07  9:49                     ` Nick Piggin
2007-03-07 10:02                     ` Nick Piggin
2007-03-07 10:02                       ` Nick Piggin
2007-03-12 23:01                       ` Blaisorblade
2007-03-12 23:01                         ` Blaisorblade
2007-03-13  1:19                         ` Nick Piggin
2007-03-13  1:19                           ` Nick Piggin
2007-03-17 12:17                           ` Blaisorblade
2007-03-17 12:17                             ` Blaisorblade
2007-03-18  2:50                             ` Nick Piggin
2007-03-18  2:50                               ` Nick Piggin
2007-03-18 13:09                               ` Jeff Dike
2007-03-18 13:09                                 ` Jeff Dike
2007-03-19 12:04                               ` Bill Irwin
2007-03-19 12:04                                 ` Bill Irwin
2007-03-19 20:44                               ` Blaisorblade
2007-03-19 20:44                                 ` Blaisorblade
2007-03-20  6:00                                 ` Nick Piggin
2007-03-20  6:00                                   ` Nick Piggin
2007-03-21 19:45                                   ` Blaisorblade
2007-03-21 19:45                                     ` Blaisorblade
2007-03-08 12:39                   ` Blaisorblade
2007-03-08 12:39                     ` Blaisorblade
2007-03-07  9:29             ` Bill Irwin
2007-03-07  9:29               ` Bill Irwin
2007-03-07  9:39               ` Andrew Morton
2007-03-07  9:39                 ` Andrew Morton
2007-03-07 10:09                 ` Bill Irwin
2007-03-07 10:09                   ` Bill Irwin
2007-03-07  8:38           ` Miklos Szeredi
2007-03-07  8:38             ` Miklos Szeredi
2007-03-07  8:47             ` Andrew Morton
2007-03-07  8:47               ` Andrew Morton
2007-03-07  8:51               ` Miklos Szeredi
2007-03-07  8:51                 ` Miklos Szeredi
2007-03-07  9:07                 ` Andrew Morton
2007-03-07  9:07                   ` Andrew Morton
2007-03-07  9:18                   ` Nick Piggin
2007-03-07  9:18                     ` Nick Piggin
2007-03-07  9:26                     ` Andrew Morton
2007-03-07  9:26                       ` Andrew Morton
2007-03-07  9:28                       ` Miklos Szeredi
2007-03-07  9:28                         ` Miklos Szeredi
2007-03-07  9:38                       ` Nick Piggin
2007-03-07  9:38                         ` Nick Piggin
2007-03-07  9:25                   ` Miklos Szeredi
2007-03-07  9:25                     ` Miklos Szeredi
2007-03-07  9:32                   ` Peter Zijlstra
2007-03-07  9:32                     ` Peter Zijlstra
2007-03-07  9:45                     ` Nick Piggin
2007-03-07  9:45                       ` Nick Piggin
2007-03-07 10:04                       ` Nick Piggin
2007-03-07 10:04                         ` Nick Piggin
2007-03-07 10:06                         ` Peter Zijlstra
2007-03-07 10:06                           ` Peter Zijlstra
2007-03-07 10:13                           ` Miklos Szeredi
2007-03-07 10:13                             ` Miklos Szeredi
2007-03-07 10:21                             ` Nick Piggin
2007-03-07 10:21                               ` Nick Piggin
2007-03-07 10:24                               ` Peter Zijlstra
2007-03-07 10:24                                 ` Peter Zijlstra
2007-03-07 10:38                                 ` Nick Piggin
2007-03-07 10:38                                   ` Nick Piggin
2007-03-07 10:47                                   ` Peter Zijlstra
2007-03-07 10:47                                     ` Peter Zijlstra
2007-03-07 11:00                                     ` Nick Piggin
2007-03-07 11:00                                       ` Nick Piggin
2007-03-07 11:48                                       ` Peter Zijlstra
2007-03-07 11:48                                         ` Peter Zijlstra
2007-03-07 12:17                                         ` Nick Piggin
2007-03-07 12:17                                           ` Nick Piggin
2007-03-07 12:41                                           ` Peter Zijlstra
2007-03-07 12:41                                             ` Peter Zijlstra
2007-03-07 13:08                                             ` Nick Piggin
2007-03-07 13:08                                               ` Nick Piggin
2007-03-07 13:19                                               ` Peter Zijlstra
2007-03-07 13:19                                                 ` Peter Zijlstra
2007-03-07 13:36                                                 ` Nick Piggin
2007-03-07 13:36                                                   ` Nick Piggin
2007-03-07 13:52                                                   ` Peter Zijlstra
2007-03-07 13:52                                                     ` Peter Zijlstra
2007-03-07 13:56                                                     ` Miklos Szeredi
2007-03-07 13:56                                                       ` Miklos Szeredi
2007-03-07 14:34                                                     ` Peter Zijlstra
2007-03-07 14:34                                                       ` Peter Zijlstra
2007-03-07 15:01                                                       ` Nick Piggin
2007-03-07 15:01                                                         ` Nick Piggin
2007-03-07 16:58                                                         ` [RFC][PATCH] mm: fix page_mkclean() vs non-linear vmas Peter Zijlstra
2007-03-07 16:58                                                           ` Peter Zijlstra
2007-03-07 18:00                                                           ` Linus Torvalds
2007-03-07 18:00                                                             ` Linus Torvalds
2007-03-07 18:12                                                             ` Peter Zijlstra
2007-03-07 18:12                                                               ` Peter Zijlstra
2007-03-07 18:24                                                               ` Peter Zijlstra
2007-03-07 18:24                                                                 ` Peter Zijlstra
2007-03-08 11:21                                                           ` Miklos Szeredi
2007-03-08 11:21                                                             ` Miklos Szeredi
2007-03-08 11:37                                                             ` Peter Zijlstra
2007-03-08 11:37                                                               ` Peter Zijlstra
2007-03-08 11:48                                                               ` Miklos Szeredi
2007-03-08 11:48                                                                 ` Miklos Szeredi
2007-03-08 12:11                                                                 ` Peter Zijlstra
2007-03-08 12:11                                                                   ` Peter Zijlstra
2007-03-08 12:19                                                                   ` Nick Piggin
2007-03-08 12:19                                                                     ` Nick Piggin
2007-03-08 12:25                                                                     ` Miklos Szeredi
2007-03-08 12:25                                                                       ` Miklos Szeredi
2007-03-08 11:58                                                             ` Nick Piggin
2007-03-08 11:58                                                               ` Nick Piggin
2007-03-08 12:09                                                               ` Miklos Szeredi
2007-03-08 12:09                                                                 ` Miklos Szeredi
2007-03-07 15:10                                                     ` [patch 4/6] mm: merge populate and nopage into fault (fixes nonlinear) Jeff Dike
2007-03-07 15:10                                                       ` Jeff Dike
2007-03-07 13:53                                                   ` Miklos Szeredi
2007-03-07 13:53                                                     ` Miklos Szeredi
2007-03-07 14:50                                                     ` Nick Piggin
2007-03-07 14:50                                                       ` Nick Piggin
2007-03-07 12:22                                       ` Bill Irwin
2007-03-07 12:22                                         ` Bill Irwin
2007-03-07 12:36                                         ` Nick Piggin
2007-03-07 12:36                                           ` Nick Piggin
2007-03-07 10:30                             ` [rfc][patch 7/6] mm: merge page_mkwrite Nick Piggin
2007-03-07 10:30                               ` Nick Piggin
2007-03-07  8:59           ` [patch 4/6] mm: merge populate and nopage into fault (fixes nonlinear) Nick Piggin
2007-03-07  8:59             ` Nick Piggin
2007-03-07  9:11             ` Nick Piggin
2007-03-07  9:11               ` Nick Piggin
2007-03-07  9:22             ` Ingo Molnar
2007-03-07  9:22               ` Ingo Molnar
2007-03-07  9:32               ` Bill Irwin
2007-03-07  9:32                 ` Bill Irwin
2007-03-07  9:35                 ` Ingo Molnar
2007-03-07  9:35                   ` Ingo Molnar
2007-03-07  9:50                   ` Bill Irwin
2007-03-07  9:50                     ` Bill Irwin
2007-03-07  9:52               ` Nick Piggin
2007-03-07  9:52                 ` Nick Piggin
2007-03-07  7:19     ` Bill Irwin
2007-03-07  7:19       ` Bill Irwin
2007-03-07 10:05     ` Benjamin Herrenschmidt
2007-03-07 10:05       ` Benjamin Herrenschmidt
2007-03-07 10:17       ` Nick Piggin
2007-03-07 10:17         ` Nick Piggin
2007-03-07 10:46         ` Benjamin Herrenschmidt
2007-03-07 10:46           ` Benjamin Herrenschmidt
2007-02-21  4:50 ` [patch 5/6] mm: merge nopfn into fault Nick Piggin
2007-02-21  4:50   ` Nick Piggin
2007-02-21  5:13   ` Nick Piggin
2007-02-21  5:13     ` Nick Piggin
2007-02-21  4:50 ` [patch 6/6] mm: remove legacy cruft Nick Piggin
2007-02-21  4:50   ` Nick Piggin
2007-02-27  4:36 ` [patch 0/6] fault vs truncate/invalidate race fix Dave Airlie
2007-02-27  4:36   ` Dave Airlie
2007-02-27  5:32   ` Andrew Morton
2007-02-27  5:32     ` Andrew Morton
2007-02-27  6:26     ` Dave Airlie
2007-02-27  6:26       ` Dave Airlie
2007-02-27  6:54       ` Benjamin Herrenschmidt
2007-02-27  6:54         ` Benjamin Herrenschmidt
2007-03-18 23:13         ` Dave Airlie
2007-03-18 23:13           ` Dave Airlie
2007-02-27  8:50     ` Nick Piggin
2007-02-27  8:50       ` Nick Piggin

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=20070307072545.GC15877@wotan.suse.de \
    --to=npiggin@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=benh@kernel.crashing.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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.