From: William Lee Irwin III <wli@holomorphy.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: "David S. Miller" <davem@redhat.com>,
raybry@sgi.com, ak@muc.de, benh@kernel.crashing.org,
manfred@colorfullife.com, linux-ia64@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: page fault fastpath patch v2: fix race conditions, stats for 8,32 and 512 cpu SMP
Date: Tue, 17 Aug 2004 08:51:25 -0700 [thread overview]
Message-ID: <20040817155125.GQ11200@holomorphy.com> (raw)
In-Reply-To: <Pine.LNX.4.58.0408170804430.8365@schroedinger.engr.sgi.com>
On Tue, Aug 17, 2004 at 08:28:44AM -0700, Christoph Lameter wrote:
> This is the second release of the page fault fastpath path. The fast path
> avoids locking during the creation of page table entries for anonymous
> memory in a threaded application running on a SMP system. The performance
> increases significantly for more than 4 threads running concurrently.
> Changes:
> - Insure that it is safe to call the various functions without holding
> the page_table_lock.
> - Fix cases in rmap.c where a pte could be cleared for a very short time
> before being set to another value by introducing a pte_xchg function. This
> created a potential race condition with the fastpath code which checks for
> a cleared pte without holding the page_table_lock.
> - i386 support
> - Various cleanups
> Issue remaining:
> - The fastpath increments mm->rss without acquiring the page_table_lock.
> Introducing the page_table_lock even for a short time makes performance
> drop to the level before the patch.
Hmm. I'm suspicious but I can't immediately poke a hole in it as it
leaves most uses of ->page_table_lock in place. I can't help thinking
there's a more comprehensive attack on the locking in this area, either.
-- wli
next prev parent reply other threads:[~2004-08-17 15:56 UTC|newest]
Thread overview: 115+ 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
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 [this message]
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] <fa.ofiojek.hkeujs@ifi.uio.no>
[not found] ` <fa.o1kt2ua.1bm6n0c@ifi.uio.no>
2004-08-18 20:13 ` page fault fastpath patch v2: fix race conditions, stats for 8,32 and 512 cpu SMP Ray Bryant
2004-08-18 20:48 ` William Lee Irwin III
[not found] <2uexw-1Nn-1@gated-at.bofh.it>
[not found] ` <2uCTq-2wa-55@gated-at.bofh.it>
2004-08-18 23:50 ` Rajesh Venkatasubramanian
2004-08-19 0:01 ` William Lee Irwin III
2004-08-19 0:07 ` Rajesh Venkatasubramanian
2004-08-19 0:20 ` William Lee Irwin III
2004-08-19 3:19 ` Rajesh Venkatasubramanian
2004-08-19 3:31 ` William Lee Irwin III
2004-08-19 3:41 ` William Lee Irwin III
2004-08-23 22:00 ` Christoph Lameter
2004-08-23 23:25 ` Rajesh Venkatasubramanian
2004-08-23 23:35 ` 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=20040817155125.GQ11200@holomorphy.com \
--to=wli@holomorphy.com \
--cc=ak@muc.de \
--cc=benh@kernel.crashing.org \
--cc=clameter@sgi.com \
--cc=davem@redhat.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=manfred@colorfullife.com \
--cc=raybry@sgi.com \
/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