linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Hugh Dickins <hugh@veritas.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Andrea Arcangeli <andrea@suse.de>,
	Christoph Hellwig <hch@infradead.org>
Subject: Re: 2.6.22 -mm merge plans -- vm bugfixes
Date: Tue, 1 May 2007 20:31:41 +0100 (BST)	[thread overview]
Message-ID: <Pine.LNX.4.64.0705011931520.16502@blonde.wat.veritas.com> (raw)
In-Reply-To: <4636FDD7.9080401@yahoo.com.au>

On Tue, 1 May 2007, Nick Piggin wrote:
> Andrew Morton wrote:
> 
> >  mm-simplify-filemap_nopage.patch
> >  mm-fix-fault-vs-invalidate-race-for-linear-mappings.patch
> >  mm-merge-populate-and-nopage-into-fault-fixes-nonlinear.patch
> >  mm-merge-nopfn-into-fault.patch
> >  convert-hugetlbfs-to-use-vm_ops-fault.patch
> >  mm-remove-legacy-cruft.patch
> >  mm-debug-check-for-the-fault-vs-invalidate-race.patch
> 
> > mm-fix-clear_page_dirty_for_io-vs-fault-race.patch
> 
> > Miscish MM changes.  Will merge, dependent upon what still applies and works
> > if the moveable-zone patches get stalled.
> 
> These fix some bugs in the core vm, at least the former one we have
> seen numerous people hitting in production...
...
> 
> So, do you or anyone else have any problems with these patches going in
> 2.6.22? I haven't had much feedback for a while, but I was under the
> impression that people are more-or-less happy with them?
> 
> mm-fix-fault-vs-invalidate-race-for-linear-mappings.patch
> 
> This patch fixes the core filemap_nopage vs invalidate_inode_pages2
> race by having filemap_nopage return a locked page to do_no_page,
> and removes the fairly complex (and inadequate) truncate_count
> synchronisation logic.
> 
> There were concerns that we could do this more cheaply, but I think it
> is important to start with a base that is simple and more likely to
> be correct and build on that. My testing didn't show any obvious
> problems with performance.

I don't see _problems_ with performance, but I do consistently see the
same kind of ~5% degradation in lmbench fork, exec, sh, mmap latency
and page fault tests on SMP, several machines, just as I did last year.

I'm assuming this patch is the one responsible: at 2.6.20-rc4 time
you posted a set of 10 and a set of 7 patches I tried in versus out;
at 2.6.21-rc3-mm2 time you had a group of patches in -mm I tried in
versus out; with similar results.

I did check the graphs on test.kernel.org, I couldn't see any bad
behaviour there that correlated with this work; though each -mm
has such a variety of new work in it, it's very hard to attribute.
And nobody else has reported any regression from your patches.

I'm inclined to write it off as poorer performance in some micro-
benchmarks, against which we offset the improved understandabilty
of holding the page lock over the file fault.

But I was quite disappointed when 
mm-fix-fault-vs-invalidate-race-for-linear-mappings-fix.patch
appeared, putting double unmap_mapping_range calls in.  Certainly
you were wrong to take the one out, but a pity to end up with two.

Your comment says/said:
The nopage vs invalidate race fix patch did not take care of truncating
private COW pages. Mind you, I'm pretty sure this was previously racy
even for regular truncate, not to mention vmtruncate_range.

vmtruncate_range (holepunch) was deficient I agree, and though we
can now take out your second unmap_mapping_range there, that's only
because I've slipped one into shmem_truncate_range.  In due course it
needs to be properly handled by noting the range in shmem inode info.

(I think you couldn't take that approach, noting invalid range in
->mapping while invalidating, because NFS has/had some cases of
invalidate_whatever without i_mutex?)

But I'm pretty sure (to use your words!) regular truncate was not racy
before: I believe Andrea's sequence count was handling that case fine,
without a second unmap_mapping_range.

Well, I guess I've come to accept that, expensive as unmap_mapping_range
may be, truncating files while they're mmap'ed is perverse behaviour:
perhaps even deserving such punishment.

But it is a shame, and leaves me wondering what you gained with the
page lock there.

One thing gained is ease of understanding, and if your later patches
build an edifice upon the knowledge of holding that page lock while
faulting, I've no wish to undermine that foundation.

> 
> mm-merge-populate-and-nopage-into-fault-fixes-nonlinear.patch
> mm-merge-nopfn-into-fault.patch
> etc.
> 
> These move ->nopage, ->populate, ->nopfn (and soon, ->page_mkwrite)
> into a single, unified interface. Although this strictly closes some
> similar holes in nonlinear faults as well, they are very uncommon, so
> I wouldn't be so upset if these aren't merged in 2.6.22 (I don't see
> any reason not to, but at least they don't fix major bugs).

I don't have an opinion on these, but I think BenH and others
were strongly in favour, with various people waiting upon them.

Hugh

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

  parent reply	other threads:[~2007-05-01 19:31 UTC|newest]

Thread overview: 180+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-30 23:20 2.6.22 -mm merge plans Andrew Morton
2007-04-30 23:59 ` Bill Irwin
2007-05-01  0:09 ` nfsd/md patches " Neil Brown
2007-05-01  9:08   ` Christoph Hellwig
2007-05-01  9:15     ` Andrew Morton
2007-05-01  9:21       ` Christoph Hellwig
2007-05-01  9:52     ` Neil Brown
2007-05-01 10:15       ` Christoph Hellwig
2007-05-01 14:34         ` Trond Myklebust
2007-05-01  0:54 ` MADV_FREE functionality Rik van Riel
2007-05-01  1:18   ` Andrew Morton
2007-05-01  1:23     ` Rik van Riel
2007-05-01  7:13     ` Jakub Jelinek
2007-05-01  1:23   ` Ulrich Drepper
2007-05-01  1:39 ` 2.6.22 -mm merge plans Stefan Richter
2007-05-01  2:30 ` 2.6.22 -mm merge plans (RE: input) Dmitry Torokhov
2007-05-01  8:11 ` 2.6.22 -mm merge plans -- pfn_valid_within Andy Whitcroft
2007-05-01  8:19   ` Andrew Morton
2007-05-01  8:44 ` 2.6.22 -mm merge plans -- vm bugfixes Nick Piggin
2007-05-01  8:54   ` Andrew Morton
2007-05-01 19:31   ` Hugh Dickins [this message]
2007-05-02  3:08     ` Nick Piggin
2007-05-02  9:15       ` Nick Piggin
2007-05-02 14:00       ` Hugh Dickins
2007-05-03  1:32         ` Nick Piggin
2007-05-03 10:37           ` Christoph Hellwig
2007-05-03 12:56             ` Nick Piggin
2007-05-04  9:23               ` Nick Piggin
2007-05-04  9:43                 ` Nick Piggin
2007-05-08  3:03                 ` Benjamin Herrenschmidt
2007-05-03 12:24           ` Hugh Dickins
2007-05-03 12:43             ` Nick Piggin
2007-05-03 12:58               ` Hugh Dickins
2007-05-03 13:08                 ` Nick Piggin
2007-05-03 16:52           ` Andrew Morton
2007-05-04  4:16             ` Nick Piggin
2007-05-09 12:34         ` Nick Piggin
2007-05-09 14:28           ` Hugh Dickins
2007-05-09 14:45             ` Nick Piggin
2007-05-09 15:38               ` Hugh Dickins
2007-05-09 22:24                 ` Nick Piggin
2007-05-01  8:46 ` pcmcia ioctl removal Christoph Hellwig
2007-05-01  8:56   ` Russell King
2007-05-01  8:57   ` Willy Tarreau
2007-05-01  9:08     ` Andrew Morton
2007-05-01 14:46       ` Adrian Bunk
2007-05-01  9:16   ` Robert P. J. Day
2007-05-01  9:44     ` Willy Tarreau
2007-05-01 10:16       ` Robert P. J. Day
2007-05-01 10:26       ` Gabriel C
2007-05-01 10:52         ` Willy Tarreau
2007-05-01 10:12     ` Jan Engelhardt
2007-05-01 11:00       ` Willy Tarreau
2007-05-01 12:06         ` Konstantin Münning
2007-05-01 13:56         ` Rogan Dawes
2007-05-01 19:10       ` Russell King
2007-05-01 20:41         ` Jan Engelhardt
2007-05-09 12:54   ` Pavel Machek
2007-05-09 13:00     ` Robert P. J. Day
2007-05-09 13:03     ` Adrian Bunk
2007-05-09 19:11       ` Romano Giannetti
2007-05-10 12:40         ` Adrian Bunk
2007-05-01  8:48 ` pci hotplug patches Christoph Hellwig
2007-05-02  3:57   ` Greg KH
2007-05-13 20:59     ` Christoph Hellwig
2007-05-14 11:48       ` Greg KH
2007-05-01  8:54 ` cache-pipe-buf-page-address-for-non-highmem-arch.patch Christoph Hellwig
2007-05-01  9:04   ` cache-pipe-buf-page-address-for-non-highmem-arch.patch Andrew Morton
2007-05-01 11:31     ` cache-pipe-buf-page-address-for-non-highmem-arch.patch Andi Kleen
2007-05-03  3:48     ` cache-pipe-buf-page-address-for-non-highmem-arch.patch Ken Chen
2007-05-01  8:55 ` consolidate-generic_writepages-and-mpage_writepages.patch Christoph Hellwig
2007-05-01  9:17 ` 2.6.22 -mm merge plans Pekka Enberg
2007-05-01  9:24   ` Christoph Hellwig
2007-05-01  9:37   ` Peter Zijlstra
2007-05-01 12:19   ` Andi Kleen
2007-05-01 17:12     ` Pekka Enberg
2007-05-01 10:16 ` fragmentation avoidance " Mel Gorman
2007-05-01 13:02   ` 2.6.22 -mm merge plans -- lumpy reclaim Andy Whitcroft
2007-05-01 18:03     ` Peter Zijlstra
2007-05-01 19:00     ` Andrew Morton
2007-05-01 14:54   ` fragmentation avoidance Re: 2.6.22 -mm merge plans Christoph Lameter
2007-05-01 19:00     ` Mel Gorman
2007-05-01 18:57   ` Andrew Morton
2007-05-07 13:07   ` Yasunori Goto
2007-05-01 14:31 ` 2.6.22 -mm merge plans: mm-more-rmap-checking Hugh Dickins
2007-05-02  1:42   ` Nick Piggin
2007-05-02 13:17     ` Hugh Dickins
2007-05-03  0:18       ` Nick Piggin
2007-05-01 16:56 ` 2.6.22 -mm merge plans Zan Lynx
2007-05-01 17:06 ` 2.6.22 -mm merge plans: mm-detach_vmas_to_be_unmapped-fix Hugh Dickins
2007-05-01 18:10 ` 2.6.22 -mm merge plans: slub Hugh Dickins
2007-05-01 19:25   ` Christoph Lameter
2007-05-01 19:55   ` Andrew Morton
2007-05-01 20:19     ` Hugh Dickins
2007-05-01 20:36       ` Andrew Morton
2007-05-01 20:46         ` Christoph Lameter
2007-05-01 21:09           ` Andrew Morton
2007-05-02 12:54         ` Hugh Dickins
2007-05-02 17:03           ` Christoph Lameter
2007-05-02 19:11             ` Andrew Morton
2007-05-02 19:42               ` Christoph Lameter
2007-05-02 19:54                 ` Sam Ravnborg
2007-05-02 20:14                   ` Christoph Lameter
2007-05-02 18:52           ` Siddha, Suresh B
2007-05-02 18:58             ` Christoph Lameter
2007-05-01 21:08       ` Christoph Lameter
2007-05-02 12:45         ` Hugh Dickins
2007-05-02 17:01           ` Christoph Lameter
2007-05-02 18:08             ` Hugh Dickins
2007-05-02 18:28               ` Christoph Lameter
2007-05-02 18:42                 ` Andrew Morton
2007-05-02 18:53                   ` Christoph Lameter
2007-05-02 17:25           ` Christoph Lameter
2007-05-02 18:36             ` Hugh Dickins
2007-05-02 18:39               ` Christoph Lameter
2007-05-02 18:57                 ` Andrew Morton
2007-05-02 19:01                   ` Christoph Lameter
2007-05-02 19:18                     ` Pekka Enberg
2007-05-02 19:34                       ` Christoph Lameter
2007-05-02 19:43                       ` Christoph Lameter
2007-05-03  8:15             ` Andrew Morton
2007-05-03  8:27               ` William Lee Irwin III
2007-05-03 16:30                 ` Christoph Lameter
2007-05-03  8:46               ` Hugh Dickins
2007-05-03  8:57                 ` Andrew Morton
2007-05-03  9:15                   ` Hugh Dickins
2007-05-03 21:04                     ` 2.6.22 -mm merge plans: slub on PowerPC Hugh Dickins
2007-05-03 21:15                       ` Christoph Lameter
2007-05-03 22:41                         ` Hugh Dickins
2007-05-04  0:25                       ` Benjamin Herrenschmidt
2007-05-04  0:54                         ` Christoph Lameter
2007-05-03 16:45                   ` 2.6.22 -mm merge plans: slub Christoph Lameter
2007-05-03 15:54 ` swap-prefetch: 2.6.22 -mm merge plans Ingo Molnar
2007-05-03 16:15   ` Michal Piotrowski
2007-05-03 16:23     ` Michal Piotrowski
2007-05-03 22:14   ` Con Kolivas
2007-05-04  7:34   ` Nick Piggin
2007-05-04  8:52     ` Ingo Molnar
2007-05-04  9:09       ` Nick Piggin
2007-05-04 12:10       ` Con Kolivas
2007-05-05  8:42         ` Con Kolivas
2007-05-06 10:13           ` [ck] " Antonino Ingargiola
2007-05-06 18:22           ` Jory A. Pratt
2007-05-09 23:28           ` Con Kolivas
2007-05-10  0:05             ` Nick Piggin
2007-05-10  1:34               ` Con Kolivas
2007-05-10  1:56                 ` Nick Piggin
2007-05-10  3:48                   ` Ray Lee
2007-05-10  3:56                     ` Nick Piggin
2007-05-10  5:52                       ` Ray Lee
2007-05-10  7:04                         ` Nick Piggin
2007-05-10  7:20                           ` William Lee Irwin III
2007-05-10 12:34                           ` Ray Lee
2007-05-12  4:46                           ` [PATCH] mm: swap prefetch improvements Con Kolivas
2007-05-12  5:03                             ` Paul Jackson
2007-05-12  5:15                               ` Con Kolivas
2007-05-12  5:51                                 ` Paul Jackson
2007-05-12  7:28                                   ` Con Kolivas
2007-05-12  8:14                                     ` Paul Jackson
2007-05-12  8:21                                       ` Con Kolivas
2007-05-12  8:37                                         ` Paul Jackson
2007-05-12  8:57                                           ` [PATCH respin] " Con Kolivas
2007-05-21 10:03                             ` [PATCH] " Ingo Molnar
2007-05-21 13:44                               ` Con Kolivas
2007-05-21 16:00                                 ` Ingo Molnar
2007-05-22 10:15                                   ` Antonino Ingargiola
2007-05-22 10:20                                     ` Con Kolivas
2007-05-22 10:25                                       ` Ingo Molnar
2007-05-22 10:37                                         ` Con Kolivas
2007-05-22 10:46                                           ` Ingo Molnar
2007-05-22 10:54                                             ` Con Kolivas
2007-05-22 10:57                                               ` Ingo Molnar
2007-05-22 11:04                                                 ` Con Kolivas
     [not found]                                                   ` <20070522111104.GA14950@elte.hu>
2007-05-22 11:12                                                     ` Ingo Molnar
2007-05-22 20:18                                             ` [ck] " Michael Chang
2007-05-22 20:31                                               ` Ingo Molnar
2007-05-10  3:58                     ` swap-prefetch: 2.6.22 -mm merge plans Con Kolivas
2007-05-07 14:28         ` Bill Davidsen
2007-05-07 14:18       ` Bill Davidsen
2007-05-07 17:47 ` Josef Sipek

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=Pine.LNX.4.64.0705011931520.16502@blonde.wat.veritas.com \
    --to=hugh@veritas.com \
    --cc=akpm@linux-foundation.org \
    --cc=andrea@suse.de \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nickpiggin@yahoo.com.au \
    /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