From: Nick Piggin <npiggin@suse.de>
To: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Rik van Riel <riel@redhat.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-arch@vger.kernel.org
Subject: Re: [PATCH 7/8] mm: reinstate ZERO_PAGE
Date: Tue, 8 Sep 2009 17:34:41 +0200 [thread overview]
Message-ID: <20090908153441.GB29902@wotan.suse.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0909081258160.25652@sister.anvils>
On Tue, Sep 08, 2009 at 01:17:01PM +0100, Hugh Dickins wrote:
> On Tue, 8 Sep 2009, Nick Piggin wrote:
> > On Mon, Sep 07, 2009 at 10:39:34PM +0100, Hugh Dickins wrote:
> > > KAMEZAWA Hiroyuki has observed customers of earlier kernels taking
> > > advantage of the ZERO_PAGE: which we stopped do_anonymous_page() from
> > > using in 2.6.24. And there were a couple of regression reports on LKML.
> > >
> > > Following suggestions from Linus, reinstate do_anonymous_page() use of
> > > the ZERO_PAGE; but this time avoid dirtying its struct page cacheline
> > > with (map)count updates - let vm_normal_page() regard it as abnormal.
> > >
> > > Use it only on arches which __HAVE_ARCH_PTE_SPECIAL (x86, s390, sh32,
> > > most powerpc): that's not essential, but minimizes additional branches
> > > (keeping them in the unlikely pte_special case); and incidentally
> > > excludes mips (some models of which needed eight colours of ZERO_PAGE
> > > to avoid costly exceptions).
> >
> > Without looking closely, why is it a big problem to have a
> > !HAVE PTE SPECIAL case? Couldn't it just be a check for
> > pfn == zero_pfn that is conditionally compiled away for pte
> > special architectures anyway?
>
> Yes, I'm uncomfortable with that restriction too: it makes for
> neater looking code in a couple of places, but it's not so good
> for the architectures to diverge gratuitously there.
>
> I'll give it a try without that restriction, see how it looks:
> it was Linus who proposed the "special" approach, I'm sure he'll
> speak up if he doesn't like how the alternative comes out.
I guess using special is pretty neat and doesn't require an
additional branch in vm_normal_page paths. But I think it is
important to allow other architectures at least the _option_
to have equivalent behaviour as x86 here. So it would be
great if you would look into it.
> Tucking the test away in an asm-generic macro, we can leave
> the pain of a rangetest to the one mips case.
>
> By the way, in compiling that list of "special" architectures,
> I was surprised not to find ia64 amongst them. Not that it
> matters to me, but I thought the Fujitsu guys were usually
> keen on Itanium - do they realize that the special test is
> excluding it, or do they have their own special patch for it?
I don't understand your question. Are you asking whether they
know your patch will not enable zero pages on ia64?
I guess pte special was primarily driven by gup_fast, which in
turn was driven primarily by DB2 9.5, which I think might be
only available on x86 and ibm's architectures.
But I admit to being a curious as to when I'll see a gup_fast
patch come out of SGI or HP or Fujitsu :)
WARNING: multiple messages have this Message-ID (diff)
From: Nick Piggin <npiggin@suse.de>
To: Hugh Dickins <hugh.dickins@tiscali.co.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>,
KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Rik van Riel <riel@redhat.com>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
linux-arch@vger.kernel.org
Subject: Re: [PATCH 7/8] mm: reinstate ZERO_PAGE
Date: Tue, 8 Sep 2009 17:34:41 +0200 [thread overview]
Message-ID: <20090908153441.GB29902@wotan.suse.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0909081258160.25652@sister.anvils>
On Tue, Sep 08, 2009 at 01:17:01PM +0100, Hugh Dickins wrote:
> On Tue, 8 Sep 2009, Nick Piggin wrote:
> > On Mon, Sep 07, 2009 at 10:39:34PM +0100, Hugh Dickins wrote:
> > > KAMEZAWA Hiroyuki has observed customers of earlier kernels taking
> > > advantage of the ZERO_PAGE: which we stopped do_anonymous_page() from
> > > using in 2.6.24. And there were a couple of regression reports on LKML.
> > >
> > > Following suggestions from Linus, reinstate do_anonymous_page() use of
> > > the ZERO_PAGE; but this time avoid dirtying its struct page cacheline
> > > with (map)count updates - let vm_normal_page() regard it as abnormal.
> > >
> > > Use it only on arches which __HAVE_ARCH_PTE_SPECIAL (x86, s390, sh32,
> > > most powerpc): that's not essential, but minimizes additional branches
> > > (keeping them in the unlikely pte_special case); and incidentally
> > > excludes mips (some models of which needed eight colours of ZERO_PAGE
> > > to avoid costly exceptions).
> >
> > Without looking closely, why is it a big problem to have a
> > !HAVE PTE SPECIAL case? Couldn't it just be a check for
> > pfn == zero_pfn that is conditionally compiled away for pte
> > special architectures anyway?
>
> Yes, I'm uncomfortable with that restriction too: it makes for
> neater looking code in a couple of places, but it's not so good
> for the architectures to diverge gratuitously there.
>
> I'll give it a try without that restriction, see how it looks:
> it was Linus who proposed the "special" approach, I'm sure he'll
> speak up if he doesn't like how the alternative comes out.
I guess using special is pretty neat and doesn't require an
additional branch in vm_normal_page paths. But I think it is
important to allow other architectures at least the _option_
to have equivalent behaviour as x86 here. So it would be
great if you would look into it.
> Tucking the test away in an asm-generic macro, we can leave
> the pain of a rangetest to the one mips case.
>
> By the way, in compiling that list of "special" architectures,
> I was surprised not to find ia64 amongst them. Not that it
> matters to me, but I thought the Fujitsu guys were usually
> keen on Itanium - do they realize that the special test is
> excluding it, or do they have their own special patch for it?
I don't understand your question. Are you asking whether they
know your patch will not enable zero pages on ia64?
I guess pte special was primarily driven by gup_fast, which in
turn was driven primarily by DB2 9.5, which I think might be
only available on x86 and ibm's architectures.
But I admit to being a curious as to when I'll see a gup_fast
patch come out of SGI or HP or Fujitsu :)
--
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>
next prev parent reply other threads:[~2009-09-08 15:34 UTC|newest]
Thread overview: 105+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-07 21:26 [PATCH 0/8] mm: around get_user_pages flags Hugh Dickins
2009-09-07 21:26 ` Hugh Dickins
2009-09-07 21:29 ` [PATCH 1/8] mm: munlock use follow_page Hugh Dickins
2009-09-07 21:29 ` Hugh Dickins
2009-09-08 2:58 ` KAMEZAWA Hiroyuki
2009-09-08 2:58 ` KAMEZAWA Hiroyuki
2009-09-08 11:30 ` Hugh Dickins
2009-09-08 11:30 ` Hugh Dickins
2009-09-08 17:10 ` Rik van Riel
2009-09-08 17:10 ` Rik van Riel
2009-09-09 15:59 ` Minchan Kim
2009-09-09 15:59 ` Minchan Kim
2009-09-11 11:07 ` Hiroaki Wakabayashi
2009-09-11 11:07 ` Hiroaki Wakabayashi
2009-09-07 21:31 ` [PATCH 2/8] mm: remove unused GUP flags Hugh Dickins
2009-09-07 21:31 ` Hugh Dickins
2009-09-08 17:27 ` Rik van Riel
2009-09-08 17:27 ` Rik van Riel
2009-09-07 21:33 ` [PATCH 3/8] mm: add get_dump_page Hugh Dickins
2009-09-07 21:33 ` Hugh Dickins
2009-09-08 18:57 ` Rik van Riel
2009-09-08 18:57 ` Rik van Riel
2009-09-07 21:35 ` [PATCH 4/8] mm: FOLL_DUMP replace FOLL_ANON Hugh Dickins
2009-09-07 21:35 ` Hugh Dickins
2009-09-08 18:59 ` Rik van Riel
2009-09-08 18:59 ` Rik van Riel
2009-09-09 11:14 ` Mel Gorman
2009-09-09 11:14 ` Mel Gorman
2009-09-09 16:16 ` Minchan Kim
2009-09-09 16:16 ` Minchan Kim
2009-09-13 15:46 ` Hugh Dickins
2009-09-13 23:05 ` Minchan Kim
2009-09-13 23:05 ` Minchan Kim
2009-09-07 21:37 ` [PATCH 5/8] mm: follow_hugetlb_page flags Hugh Dickins
2009-09-07 21:37 ` Hugh Dickins
2009-09-08 22:21 ` Rik van Riel
2009-09-08 22:21 ` Rik van Riel
2009-09-09 11:31 ` Mel Gorman
2009-09-09 11:31 ` Mel Gorman
2009-09-13 15:35 ` Hugh Dickins
2009-09-13 15:35 ` Hugh Dickins
2009-09-14 13:27 ` Mel Gorman
2009-09-14 13:27 ` Mel Gorman
2009-09-15 20:26 ` Hugh Dickins
2009-09-15 20:26 ` Hugh Dickins
2009-09-07 21:38 ` [PATCH 6/8] mm: fix anonymous dirtying Hugh Dickins
2009-09-07 21:38 ` Hugh Dickins
2009-09-08 22:23 ` Rik van Riel
2009-09-08 22:23 ` Rik van Riel
2009-09-07 21:39 ` [PATCH 7/8] mm: reinstate ZERO_PAGE Hugh Dickins
2009-09-07 21:39 ` Hugh Dickins
2009-09-08 2:37 ` KAMEZAWA Hiroyuki
2009-09-08 2:37 ` KAMEZAWA Hiroyuki
2009-09-08 11:56 ` Hugh Dickins
2009-09-08 11:56 ` Hugh Dickins
2009-09-09 1:44 ` KAMEZAWA Hiroyuki
2009-09-09 1:44 ` KAMEZAWA Hiroyuki
2009-09-15 20:15 ` Hugh Dickins
2009-09-15 20:15 ` Hugh Dickins
2009-09-08 7:31 ` Nick Piggin
2009-09-08 7:31 ` Nick Piggin
2009-09-08 12:17 ` Hugh Dickins
2009-09-08 12:17 ` Hugh Dickins
2009-09-08 15:34 ` Nick Piggin [this message]
2009-09-08 15:34 ` Nick Piggin
2009-09-08 16:40 ` Hugh Dickins
2009-09-08 16:40 ` Hugh Dickins
2009-09-08 14:13 ` Linus Torvalds
2009-09-08 14:13 ` Linus Torvalds
2009-09-08 23:35 ` Rik van Riel
2009-09-08 23:35 ` Rik van Riel
2009-09-07 21:40 ` [PATCH 8/8] mm: FOLL flags for GUP flags Hugh Dickins
2009-09-07 21:40 ` Hugh Dickins
2009-09-07 23:51 ` [PATCH 0/8] mm: around get_user_pages flags Linus Torvalds
2009-09-07 23:51 ` Linus Torvalds
2009-09-07 23:52 ` KAMEZAWA Hiroyuki
2009-09-07 23:52 ` KAMEZAWA Hiroyuki
2009-09-08 0:00 ` KOSAKI Motohiro
2009-09-08 0:00 ` KOSAKI Motohiro
2009-09-10 0:33 ` KOSAKI Motohiro
2009-09-10 0:33 ` KOSAKI Motohiro
2009-09-15 20:16 ` Hugh Dickins
2009-09-15 20:16 ` Hugh Dickins
2009-09-15 20:30 ` [PATCH 0/4] mm: mlock, hugetlb, zero followups Hugh Dickins
2009-09-15 20:30 ` Hugh Dickins
2009-09-15 20:31 ` [PATCH 1/4] mm: m(un)lock avoid ZERO_PAGE Hugh Dickins
2009-09-15 20:31 ` Hugh Dickins
2009-09-16 0:08 ` KOSAKI Motohiro
2009-09-16 0:08 ` KOSAKI Motohiro
2009-09-16 9:35 ` Mel Gorman
2009-09-16 9:35 ` Mel Gorman
2009-09-16 11:40 ` Hugh Dickins
2009-09-16 11:40 ` Hugh Dickins
2009-09-16 12:47 ` Mel Gorman
2009-09-16 12:47 ` Mel Gorman
2009-09-15 20:33 ` [PATCH 2/4] mm: hugetlbfs_pagecache_present Hugh Dickins
2009-09-15 20:33 ` Hugh Dickins
2009-09-15 20:37 ` [PATCH 3/4] mm: ZERO_PAGE without PTE_SPECIAL Hugh Dickins
2009-09-15 20:37 ` Hugh Dickins
2009-09-16 6:20 ` KAMEZAWA Hiroyuki
2009-09-16 6:20 ` KAMEZAWA Hiroyuki
2009-09-15 20:38 ` [PATCH 4/4] mm: move highest_memmap_pfn Hugh Dickins
2009-09-15 20:38 ` Hugh Dickins
2009-09-17 0:33 ` [PATCH 0/4] mm: mlock, hugetlb, zero followups KOSAKI Motohiro
2009-09-17 0:33 ` KOSAKI Motohiro
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=20090908153441.GB29902@wotan.suse.de \
--to=npiggin@suse.de \
--cc=akpm@linux-foundation.org \
--cc=hugh.dickins@tiscali.co.uk \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=riel@redhat.com \
--cc=torvalds@linux-foundation.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.