All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org
Subject: Re: Page fault scalability patch V18: Drop first acquisition of ptl
Date: Thu, 03 Mar 2005 02:55:08 +0000	[thread overview]
Message-ID: <20050302185508.4cd2f618.akpm@osdl.org> (raw)
In-Reply-To: <Pine.LNX.4.58.0503021803510.3080@schroedinger.engr.sgi.com>

Christoph Lameter <clameter@sgi.com> wrote:
>
> On Wed, 2 Mar 2005, Andrew Morton wrote:
> 
> > > -	if (!PageReserved(old_page))
> > > -		page_cache_get(old_page);
> >
> > hm, this seems to be an unrelated change.  You're saying that this page is
> > protected from munmap() by munmap()'s down_write(mmap_sem), yes?  What
> > stops memory reclaim from freeing old_page?
> 
> This is a related change discussed during V16 with Nick.

It's worth retaining a paragraph for the changelog.

> The page is protected from munmap because of the down_read(mmap_sem) in
> the arch specific code before calling handle_mm_fault.

We don't take mmap_sem during page reclaim.  What prevents the page from
being freed by, say, kswapd?

> > > -	mark_page_accessed(page);
> > > +	SetPageReferenced(page);
> >
> > Another unrelated change.  IIRC, this is indeed equivalent, but I forget
> > why.  Care to remind me?
> 
> Seems that mark_page_accessed was discouraged in favor SetPageReferenced.
> We agreed that we wanted this change earlier (I believe that was in
> November?).

I forget.  I do recall that we decided that the change was OK, but briefly
looking at it now, it seems that we'll fail to move a
PageReferenced,!PageActive onto the active list?

> > Overall, do we know which architectures are capable of using this feature?
> > Would ppc64 (and sparc64?) still have a problem with page_table_lock no
> > longer protecting their internals?
> 
> That is up to the arch maintainers. Add something to arch/xx/Kconfig to
> allow atomic operations for an arch. Out of the box it only works for
> x86_64, ia64 and ia32.

Feedback from s390, sparc64 and ppc64 people would help in making a merge
decision.

> > I'd really like to see other architecture maintainers stand up and say
> > "yes, we need this".
> 
> You definitely need this for machines with high SMP counts.

Well.  We need some solution to the page_table_lock problem on high SMP
counts.

> > Did you consider doing the locking at the pte page level?  That could be
> > neater than all those games with atomic pte operattions.
> 
> Earlier releases back in September 2004 had some pte locking code (and
> AFAIK Nick also played around with pte locking) but that
> was less efficient than atomic operations.

How much less efficient?

Does anyone else have that code around?

WARNING: multiple messages have this Message-ID (diff)
From: Andrew Morton <akpm@osdl.org>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-kernel@vger.kernel.org, linux-ia64@vger.kernel.org
Subject: Re: Page fault scalability patch V18: Drop first acquisition of ptl
Date: Wed, 2 Mar 2005 18:55:08 -0800	[thread overview]
Message-ID: <20050302185508.4cd2f618.akpm@osdl.org> (raw)
In-Reply-To: <Pine.LNX.4.58.0503021803510.3080@schroedinger.engr.sgi.com>

Christoph Lameter <clameter@sgi.com> wrote:
>
> On Wed, 2 Mar 2005, Andrew Morton wrote:
> 
> > > -	if (!PageReserved(old_page))
> > > -		page_cache_get(old_page);
> >
> > hm, this seems to be an unrelated change.  You're saying that this page is
> > protected from munmap() by munmap()'s down_write(mmap_sem), yes?  What
> > stops memory reclaim from freeing old_page?
> 
> This is a related change discussed during V16 with Nick.

It's worth retaining a paragraph for the changelog.

> The page is protected from munmap because of the down_read(mmap_sem) in
> the arch specific code before calling handle_mm_fault.

We don't take mmap_sem during page reclaim.  What prevents the page from
being freed by, say, kswapd?

> > > -	mark_page_accessed(page);
> > > +	SetPageReferenced(page);
> >
> > Another unrelated change.  IIRC, this is indeed equivalent, but I forget
> > why.  Care to remind me?
> 
> Seems that mark_page_accessed was discouraged in favor SetPageReferenced.
> We agreed that we wanted this change earlier (I believe that was in
> November?).

I forget.  I do recall that we decided that the change was OK, but briefly
looking at it now, it seems that we'll fail to move a
PageReferenced,!PageActive onto the active list?

> > Overall, do we know which architectures are capable of using this feature?
> > Would ppc64 (and sparc64?) still have a problem with page_table_lock no
> > longer protecting their internals?
> 
> That is up to the arch maintainers. Add something to arch/xx/Kconfig to
> allow atomic operations for an arch. Out of the box it only works for
> x86_64, ia64 and ia32.

Feedback from s390, sparc64 and ppc64 people would help in making a merge
decision.

> > I'd really like to see other architecture maintainers stand up and say
> > "yes, we need this".
> 
> You definitely need this for machines with high SMP counts.

Well.  We need some solution to the page_table_lock problem on high SMP
counts.

> > Did you consider doing the locking at the pte page level?  That could be
> > neater than all those games with atomic pte operattions.
> 
> Earlier releases back in September 2004 had some pte locking code (and
> AFAIK Nick also played around with pte locking) but that
> was less efficient than atomic operations.

How much less efficient?

Does anyone else have that code around?

  reply	other threads:[~2005-03-03  2:55 UTC|newest]

Thread overview: 87+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-03-02  3:49 Page fault scalability patch V18: Overview Christoph Lameter
2005-03-02  3:49 ` Christoph Lameter
2005-03-02  3:50 ` Page fault scalability patch V18: atomic pte ops, pte_cmpxchg Christoph Lameter
2005-03-02  3:50   ` Page fault scalability patch V18: atomic pte ops, pte_cmpxchg and pte_xchg Christoph Lameter
2005-03-02  3:51 ` Page fault scalability patch V18: abstract rss counter ops Christoph Lameter
2005-03-02  3:51   ` Christoph Lameter
2005-03-02  3:51 ` Page fault scalability patch V18: Drop first acquisition of ptl Christoph Lameter
2005-03-02  3:51   ` Christoph Lameter
2005-03-03  1:45   ` Andrew Morton
2005-03-03  1:45     ` Andrew Morton
2005-03-03  2:13     ` Christoph Lameter
2005-03-03  2:13       ` Christoph Lameter
2005-03-03  2:55       ` Andrew Morton [this message]
2005-03-03  2:55         ` Andrew Morton
2005-03-03  3:17         ` Christoph Lameter
2005-03-03  3:17           ` Christoph Lameter
2005-03-03  4:14           ` Andrew Morton
2005-03-03  4:14             ` Andrew Morton
2005-03-03  4:27             ` Christoph Lameter
2005-03-03  4:27               ` Christoph Lameter
2005-03-03  4:56               ` Andrew Morton
2005-03-03  4:56                 ` Andrew Morton
2005-03-03  5:17                 ` Christoph Lameter
2005-03-03  5:17                   ` Christoph Lameter
2005-03-03  5:37                   ` Andrew Morton
2005-03-03  5:37                     ` Andrew Morton
2005-03-03  5:48                     ` Christoph Lameter
2005-03-03  5:48                       ` Christoph Lameter
2005-03-03  6:13                 ` Christoph Lameter
2005-03-03  6:13                   ` Christoph Lameter
2005-03-03  6:20                   ` Andrew Morton
2005-03-03  6:20                     ` Andrew Morton
2005-03-03 16:54                     ` Christoph Lameter
2005-03-03 16:54                       ` Christoph Lameter
2005-03-03 21:20                       ` Andrew Morton
2005-03-03 21:20                         ` Andrew Morton
2005-03-03 22:14                         ` Christoph Lameter
2005-03-03 22:14                           ` Christoph Lameter
2005-03-04 16:44                         ` Christoph Lameter
2005-03-04 16:44                           ` Christoph Lameter
2005-03-04 17:09                           ` Hugh Dickins
2005-03-04 17:09                             ` Hugh Dickins
2005-03-04 18:29                             ` Christoph Lameter
2005-03-04 18:29                               ` Christoph Lameter
2005-03-04 19:08                               ` Hugh Dickins
2005-03-04 19:08                                 ` Hugh Dickins
2005-03-31  6:55                             ` Avoid spurious page faults by avoiding pte_clear -> set pte Christoph Lameter
2005-03-31  6:55                               ` Christoph Lameter
2005-03-04 16:46                         ` Page fault scalability patch V18: Drop first acquisition of ptl Christoph Lameter
2005-03-04 16:46                           ` Christoph Lameter
2005-03-03  5:00             ` Paul Mackerras
2005-03-03  5:00               ` Paul Mackerras
2005-03-03  5:19               ` Christoph Lameter
2005-03-03  5:19                 ` Christoph Lameter
2005-03-03  5:38               ` David S. Miller
2005-03-03  5:38                 ` David S. Miller
2005-03-03  5:51                 ` Christoph Lameter
2005-03-03  5:51                   ` Christoph Lameter
2005-03-03  6:11                   ` Benjamin Herrenschmidt
2005-03-03  6:11                     ` Benjamin Herrenschmidt
2005-03-03 16:52                     ` Christoph Lameter
2005-03-03 16:52                       ` Christoph Lameter
2005-03-03  5:54                 ` Benjamin Herrenschmidt
2005-03-03  5:54                   ` Benjamin Herrenschmidt
2005-03-03  6:37                   ` Nick Piggin
2005-03-03 17:19                     ` Nick Piggin
2005-03-03  6:30                     ` Benjamin Herrenschmidt
2005-03-03  6:30                       ` Benjamin Herrenschmidt
2005-03-03  7:44                       ` Nick Piggin
2005-03-03  7:44                         ` Nick Piggin
2005-03-03 17:43                       ` David S. Miller
2005-03-03 17:43                         ` David S. Miller
2005-03-03  5:24             ` Nick Piggin
2005-03-03  5:24               ` Nick Piggin
2005-03-02  3:52 ` Page fault scalability patch V18: No page table lock in do_anonymous_page Christoph Lameter
2005-03-02  3:52   ` Christoph Lameter
2005-03-04  2:18 ` Page fault scalability patch V18: Overview Darren Williams
2005-03-04  2:18   ` Darren Williams
2005-03-04  2:47   ` Darren Williams
2005-03-04  2:47     ` Darren Williams
2005-03-04 16:15     ` Christoph Lameter
2005-03-04 16:15       ` Christoph Lameter
2005-03-06 21:49       ` Darren Williams
2005-03-06 21:49         ` Darren Williams
2005-03-06 23:59         ` Christoph Lameter
2005-03-07  3:32           ` Darren Williams
2005-03-08  4:03             ` Christoph Lameter

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=20050302185508.4cd2f618.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=clameter@sgi.com \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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.