From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Linux Memory Management <linux-mm@kvack.org>
Subject: [PATCH 0/7] abstract pagetable locking and pte updates
Date: Fri, 29 Oct 2004 17:20:13 +1000 [thread overview]
Message-ID: <4181EF2D.5000407@yahoo.com.au> (raw)
Hello,
Following are patches that abstract page table operations to
allow lockless implementations by using cmpxchg or per-pte locks.
The work is inspired by and uses parts of Christoph Lameter's
pte cmpxchg work. It is not a clearly superior approach, but
an alternative way to tackle the problem.
It is a lot more intrusive, but it has also gone a bit further
in reducing page_table_lock usage. It is also designed with pte
locking in mind, which may be needed for PPC64, and will allow
100% removal of the page table lock.
The API is a transactional one, which fitted the problem quite
well in my mind. Please read comments for patch 4/7 for a more
detailed overview.
It is stable so far on i386 and x86-64. Page fault performance
on a quad opteron is up maybe 150%. Oh and it also rids
page_referenced_one of the page_table_lock, which could be a
win in some situations.
Known issues: Hugepages, nonlinear pages haven't been looked at
and are quite surely broken. TLB flushing (gather/finish) runs
without the page table lock, which will break at least SPARC64.
Additional atomic ops in copy_page_range slow down lmbench fork
by 7%.
Comments and discussion about this and/or Christoph's patches
welcome. They apply to 2.6.10-rc1-bk7
Thanks,
Nick
--
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:"aart@kvack.org"> aart@kvack.org </a>
next reply other threads:[~2004-10-29 7:20 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-29 7:20 Nick Piggin [this message]
2004-10-29 7:20 ` [PATCH 1/7] abstract pagetable locking and pte updates Nick Piggin
2004-10-29 7:21 ` [PATCH 2/7] " Nick Piggin
2004-10-29 7:21 ` [PATCH 3/7] " Nick Piggin
2004-10-29 7:21 ` [PATCH 4/7] " Nick Piggin
2004-10-29 7:22 ` [PATCH 5/7] " Nick Piggin
2004-10-29 7:23 ` [PATCH 6/7] " Nick Piggin
2004-10-29 7:23 ` [PATCH 7/7] " Nick Piggin
2004-10-29 7:46 ` [PATCH 0/7] " William Lee Irwin III
2004-11-02 0:15 ` Christoph Lameter
2004-11-02 0:54 ` William Lee Irwin III
2004-11-02 1:34 ` Nick Piggin
2004-11-02 1:55 ` William Lee Irwin III
2004-11-02 2:38 ` Nick Piggin
2004-11-02 6:57 ` William Lee Irwin III
2004-11-02 17:55 ` Christoph Lameter
2004-10-29 11:45 ` Nick Piggin
2004-10-29 20:52 ` William Lee Irwin III
2004-10-30 2:46 ` Nick Piggin
2004-11-02 0:19 ` 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=4181EF2D.5000407@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=linux-mm@kvack.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.