From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andrew Morton <akpm@osdl.org>
Cc: Christoph Lameter <clameter@sgi.com>,
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 16:24:52 +1100 [thread overview]
Message-ID: <42269FA4.5020009@yahoo.com.au> (raw)
In-Reply-To: <20050302201425.2b994195.akpm@osdl.org>
Andrew Morton wrote:
>Christoph Lameter <clameter@sgi.com> wrote:
>
>>On Wed, 2 Mar 2005, Andrew Morton wrote:
>>
>>
>>>>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?
>>>
>>Nick may have some data. It got far too complicated too fast when I tried
>>to introduce locking for individual ptes. It required bit
>>spinlocks for the pte meaning multiple atomic operations.
>>
>
>One could add a spinlock to the pageframe, or use hashed spinlocking.
>
>
I did have a version using bit spin locks in the pte on ia64. That
only works efficiently on architectures who's MMU hardware won't
concurrently update the pte (so you can do non-atomic pte operations
and non-atomic unlocks on a locked pte).
I pretty much solved all the efficiency problems IIRC. Of course
this doesn't work on i386 or x86_64.
Having a spinlock for example per pte page might be another good
option that we haven't looked at.
>>One
>>would have to check for the lock being active leading to significant code
>>changes.
>>
>
>Why?
>
>
When using per-pte locks on ia64 for example, the low level code that
walks page tables and sets dirty, accessed, etc bits needs to be made
aware of the pte lock. But Keith made me up a little patch to do this,
and it is pretty simple.
next prev parent reply other threads:[~2005-03-03 5:27 UTC|newest]
Thread overview: 45+ 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: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 ` Page fault scalability patch V18: Drop first acquisition of ptl Christoph Lameter
2005-03-03 1:45 ` Andrew Morton
2005-03-03 2:13 ` Christoph Lameter
2005-03-03 2:55 ` Andrew Morton
2005-03-03 3:17 ` Christoph Lameter
2005-03-03 4:14 ` Andrew Morton
2005-03-03 4:27 ` Christoph Lameter
2005-03-03 4:56 ` Andrew Morton
2005-03-03 5:17 ` Christoph Lameter
2005-03-03 5:37 ` Andrew Morton
2005-03-03 5:48 ` Christoph Lameter
2005-03-03 6:13 ` Christoph Lameter
2005-03-03 6:20 ` Andrew Morton
2005-03-03 16:54 ` Christoph Lameter
2005-03-03 21:20 ` Andrew Morton
2005-03-03 22:14 ` Christoph Lameter
2005-03-04 16:44 ` Christoph Lameter
2005-03-04 17:09 ` Hugh Dickins
2005-03-04 18:29 ` Christoph Lameter
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-04 16:46 ` Page fault scalability patch V18: Drop first acquisition of ptl Christoph Lameter
2005-03-03 5:00 ` Paul Mackerras
2005-03-03 5:19 ` Christoph Lameter
2005-03-03 5:38 ` David S. Miller
2005-03-03 5:51 ` Christoph Lameter
2005-03-03 6:11 ` Benjamin Herrenschmidt
2005-03-03 16:52 ` Christoph Lameter
2005-03-03 5:54 ` Benjamin Herrenschmidt
2005-03-03 17:19 ` Nick Piggin
2005-03-03 6:30 ` Benjamin Herrenschmidt
2005-03-03 7:44 ` Nick Piggin
2005-03-03 17:43 ` David S. Miller
2005-03-03 5:24 ` Nick Piggin [this message]
2005-03-02 3:52 ` Page fault scalability patch V18: No page table lock in do_anonymous_page Christoph Lameter
2005-03-04 2:18 ` Page fault scalability patch V18: Overview Darren Williams
2005-03-04 2:47 ` Darren Williams
2005-03-04 16:15 ` Christoph Lameter
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=42269FA4.5020009@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox