linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: "David S. Miller" <davem@redhat.com>
Cc: linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: page fault fastpath: Increasing SMP scalability by introducing pte locks?
Date: Sun, 15 Aug 2004 17:11:53 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.58.0408151703580.3751@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <20040815165827.0c0c8844.davem@redhat.com>


On Sun, 15 Aug 2004, David S. Miller wrote:
> > On Sun, 15 Aug 2004, David S. Miller wrote:
> > > Is the read lock in the VMA semaphore enough to let you do
> > > the pgd/pmd walking without the page_table_lock?
> > > I think it is, but just checking.
> >
> > That would be great.... May I change the page_table lock to
> > be a read write spinlock instead?
>
> No, I means "is the read long _ON_ the VMA semaphore".
> The VMA semaphore is a read/write semaphore, and we grab
> it for reading in the code path you're modifying.
>
> Please don't change page_table_lock to a rwlock, it's
> only needed for write accesses.

pgd/pmd walking should be possible always even without the vma semaphore
since the CPU can potentially walk the chain at anytime.

The modification of the pte is not without issue since there are other
code paths that may modify pte's and rely on the page_table_lock to
exclude others from modifying ptes. One known problem is the swap
code which sets the page to the pte_not_present condition to insure that
nothing else touches the page while it is figuring out where to put it. A
page fault during that time (skipping the checking of the
page_table_lock) will cause the fastpath to be taken which will then
assign new memory to it.

We need to have some kind of system how finer granularity locks could be
realized.

One possibility is to abuse the rw spinlock to not only allow exclusive
access to the page tables(as done right now with the spinlock) but also
allow shared access with pte locking after a read lock.

Is there any other way to realize this?



  reply	other threads:[~2004-08-16  0:14 UTC|newest]

Thread overview: 106+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-15 13:50 page fault fastpath: Increasing SMP scalability by introducing pte locks? Christoph Lameter
2004-08-15 20:09 ` David S. Miller
2004-08-15 22:58   ` Christoph Lameter
2004-08-15 23:58     ` David S. Miller
2004-08-16  0:11       ` Christoph Lameter [this message]
2004-08-16  1:56         ` David S. Miller
2004-08-16  3:29           ` Christoph Lameter
2004-08-16  7:00             ` Ray Bryant
2004-08-16 15:18               ` Christoph Lameter
2004-08-16 16:18                 ` William Lee Irwin III
2004-08-16 14:39             ` William Lee Irwin III
2004-08-17 15:28               ` page fault fastpath patch v2: fix race conditions, stats for 8,32 and 512 cpu SMP Christoph Lameter
2004-08-17 15:37                 ` Christoph Hellwig
2004-08-17 15:51                 ` William Lee Irwin III
2004-08-18 17:55                 ` Hugh Dickins
2004-08-18 20:20                   ` William Lee Irwin III
2004-08-19  1:19                   ` Christoph Lameter
     [not found]               ` <B6E8046E1E28D34EB815A11AC8CA3129027B679F@mtv-atc-605e--n.corp.sgi.com>
2004-08-24  4:43                 ` page fault scalability patch v3: use cmpxchg, make rss atomic Christoph Lameter
2004-08-24  5:49                   ` Christoph Lameter
2004-08-24 12:34                     ` Matthew Wilcox
2004-08-24 14:47                       ` Christoph Lameter
     [not found]                 ` <B6E8046E1E28D34EB815A11AC8CA3129027B67A9@mtv-atc-605e--n.corp.sgi.com>
2004-08-26 15:20                   ` page fault scalability patch v4: reduce page_table_lock use, atomic pmd,pgd handlin Christoph Lameter
     [not found]                   ` <B6E8046E1E28D34EB815A11AC8CA3129027B67B4@mtv-atc-605e--n.corp.sgi.com>
2004-08-27 23:20                     ` page fault scalability patch final : i386 tested, x86_64 support added Christoph Lameter
2004-08-27 23:36                       ` Andi Kleen
2004-08-27 23:43                         ` David S. Miller
2004-08-28  0:19                         ` Christoph Lameter
2004-08-28  0:23                           ` David S. Miller
2004-08-28  0:36                             ` Andrew Morton
2004-08-28  0:40                               ` David S. Miller
2004-08-28  1:05                                 ` Andi Kleen
2004-08-28  1:11                                   ` David S. Miller
2004-08-28  1:17                                     ` Andi Kleen
2004-08-28  1:02                               ` Andi Kleen
2004-08-28  1:39                                 ` Andrew Morton
2004-08-28  2:08                                   ` Paul Mackerras
2004-08-28  3:32                                     ` Christoph Lameter
2004-08-28  3:42                                       ` Andrew Morton
2004-08-28  4:24                                         ` Christoph Lameter
2004-08-28  5:39                                           ` Andrew Morton
2004-08-28  5:58                                             ` Christoph Lameter
2004-08-28  6:03                                               ` William Lee Irwin III
2004-08-28  6:06                                               ` Andrew Morton
2004-08-30 17:02                                                 ` Herbert Poetzl
2004-08-30 17:05                                                   ` Andi Kleen
2004-08-28 13:19                                             ` Andi Kleen
2004-08-28 15:48                                             ` Matt Mackall
2004-09-01  4:13                                             ` Benjamin Herrenschmidt
2004-09-02 21:26                                               ` Andi Kleen
2004-09-02 21:55                                                 ` David S. Miller
2004-09-01 18:03                                             ` Matthew Wilcox
2004-09-01 18:19                                               ` Andrew Morton
2004-09-01 19:06                                                 ` William Lee Irwin III
2004-08-28 21:41                                 ` Daniel Phillips
2004-09-01  4:24                       ` Benjamin Herrenschmidt
2004-09-01  5:22                         ` David S. Miller
2004-09-01 16:43                         ` Christoph Lameter
2004-09-01 23:09                           ` Benjamin Herrenschmidt
     [not found]                             ` <Pine.LNX.4.58.0409012140440.23186@schroedinger.engr.sgi.com>
     [not found]                               ` <20040901215741.3538bbf4.davem@davemloft.net>
2004-09-02  5:18                                 ` William Lee Irwin III
2004-09-09 15:38                                   ` page fault scalability patch: V7 (+fallback for atomic page table ops) Christoph Lameter
2004-09-02 16:24                                 ` page fault scalability patch final : i386 tested, x86_64 support added Christoph Lameter
2004-09-02 20:10                                   ` David S. Miller
2004-09-02 21:02                                     ` Christoph Lameter
2004-09-02 21:07                                       ` David S. Miller
2004-09-18 23:23                                         ` page fault scalability patch V8: [0/7] Description Christoph Lameter
     [not found]                                         ` <B6E8046E1E28D34EB815A11AC8CA312902CD3243@mtv-atc-605e--n.corp.sgi.com>
2004-09-18 23:24                                           ` page fault scalability patch V8: [1/7] make mm->rss atomic Christoph Lameter
2004-09-18 23:26                                           ` page fault scalability patch V8: [2/7] avoid page_table_lock in handle_mm_fault Christoph Lameter
2004-09-19  9:04                                             ` Christoph Hellwig
2004-09-18 23:27                                           ` page fault scalability patch V8: [3/7] atomic pte operations for ia64 Christoph Lameter
2004-09-18 23:28                                           ` page fault scalability patch V8: [4/7] universally available cmpxchg on i386 Christoph Lameter
     [not found]                                             ` <200409191430.37444.vda@port.imtp.ilyichevsk.odessa.ua>
2004-09-19 12:11                                               ` Andi Kleen
2004-09-20 15:45                                               ` Christoph Lameter
     [not found]                                                 ` <200409202043.00580.vda@port.imtp.ilyichevsk.odessa.ua>
2004-09-20 20:49                                                   ` Christoph Lameter
2004-09-20 20:57                                                     ` Andi Kleen
     [not found]                                                       ` <200409211841.25507.vda@port.imtp.ilyichevsk.odessa.ua>
2004-09-21 15:45                                                         ` Andi Kleen
     [not found]                                                           ` <200409212306.38800.vda@port.imtp.ilyichevsk.odessa.ua>
2004-09-21 20:14                                                             ` Andi Kleen
2004-09-23  7:17                                                           ` Andy Lutomirski
2004-09-23  9:03                                                             ` Andi Kleen
2004-09-27 19:06                                                               ` page fault scalability patch V9: [0/7] overview Christoph Lameter
2004-10-15 19:02                                                                 ` page fault scalability patch V10: " Christoph Lameter
2004-10-15 19:03                                                                   ` page fault scalability patch V10: [1/7] make rss atomic Christoph Lameter
2004-10-15 19:04                                                                   ` page fault scalability patch V10: [2/7] defer/omit taking page_table_lock Christoph Lameter
2004-10-15 20:00                                                                     ` Marcelo Tosatti
2004-10-18 15:59                                                                       ` Christoph Lameter
2004-10-19  5:25                                                                       ` [revised] " Christoph Lameter
2004-10-15 19:05                                                                   ` page fault scalability patch V10: [3/7] IA64 atomic pte operations Christoph Lameter
2004-10-15 19:06                                                                   ` page fault scalability patch V10: [4/7] cmpxchg for 386 and 486 Christoph Lameter
2004-10-15 19:06                                                                   ` page fault scalability patch V10: [5/7] i386 atomic pte operations Christoph Lameter
2004-10-15 19:07                                                                   ` page fault scalability patch V10: [6/7] x86_64 " Christoph Lameter
2004-10-15 19:08                                                                   ` page fault scalability patch V10: [7/7] s/390 " Christoph Lameter
     [not found]                                                               ` <B6E8046E1E28D34EB815A11AC8CA312902CD3282@mtv-atc-605e--n.corp.sgi.com>
2004-09-27 19:07                                                                 ` page fault scalability patch V9: [1/7] make mm->rss atomic Christoph Lameter
2004-09-27 19:08                                                                 ` page fault scalability patch V9: [2/7] defer/remove page_table_lock Christoph Lameter
2004-09-27 19:10                                                                 ` page fault scalability patch V9: [3/7] atomic pte operatios for ia64 Christoph Lameter
2004-09-27 19:10                                                                 ` page fault scalability patch V9: [4/7] generally available cmpxchg on i386 Christoph Lameter
2004-09-27 19:11                                                                 ` page fault scalability patch V9: [5/7] atomic pte operations for i386 Christoph Lameter
2004-09-27 19:12                                                                 ` page fault scalability patch V9: [6/7] atomic pte operations for x86_64 Christoph Lameter
2004-09-27 19:13                                                                 ` page fault scalability patch V9: [7/7] atomic pte operatiosn for s390 Christoph Lameter
2004-09-18 23:29                                           ` page fault scalability patch V8: [5/7] atomic pte operations for i386 Christoph Lameter
2004-09-18 23:30                                           ` page fault scalability patch V8: [6/7] atomic pte operations for x86_64 Christoph Lameter
2004-09-18 23:31                                           ` page fault scalability patch V8: [7/7] atomic pte operations for s390 Christoph Lameter
     [not found]                                             ` <200409191435.09445.vda@port.imtp.ilyichevsk.odessa.ua>
2004-09-20 15:44                                               ` Christoph Lameter
2004-08-15 22:38 ` page fault fastpath: Increasing SMP scalability by introducing pte locks? Benjamin Herrenschmidt
2004-08-16 17:28   ` Christoph Lameter
2004-08-17  8:01     ` Benjamin Herrenschmidt
     [not found] <2ttIr-2e4-17@gated-at.bofh.it>
     [not found] ` <2tzE4-6sw-25@gated-at.bofh.it>
     [not found]   ` <2tCiw-8pK-1@gated-at.bofh.it>
2004-08-15 23:53     ` Andi Kleen
2004-08-15 23:55       ` Christoph Lameter
2004-08-16  0:12         ` Andi Kleen

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.58.0408151703580.3751@schroedinger.engr.sgi.com \
    --to=clameter@sgi.com \
    --cc=davem@redhat.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).