From: Daniel Phillips <phillips@arcor.de>
To: Andrew Morton <akpm@zip.com.au>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Rmap speedup
Date: Sat, 3 Aug 2002 20:43:34 +0200 [thread overview]
Message-ID: <E17b3sE-0001T4-00@starship> (raw)
In-Reply-To: <3D4B692B.46817AD0@zip.com.au>
On Saturday 03 August 2002 07:24, Andrew Morton wrote:
> - page_add_rmap has vanished
> - page_remove_rmap has halved (80% of the remaining is the
> list walk)
> - we've moved the cost into the new locking site, zap_pte_range
> and copy_page_range.
> So rmap locking is still a 15% slowdown on my soggy quad, which generally
> seems relatively immune to locking costs.
What is it about your quad? I'm getting the expected results here on my two
way. I just checked that the lock hashing is doing what it's supposed to.
It is: if I drop all the locks into a single bucket, the speedup drops by
half.
It seems odd that you're seeing effectively no change at all. Is it possible
we lost something in translation? What happens if you just run with the
copy_page_range side, and no changes to zap_page_range?
> PPC will like the change
> because spinlocks are better than bitops. ia32 should have liked it
> for the same reason but, as I say, this machine doesn't seem to have
> the bandwidth*latency to be affected much by these things.
>
> On more modern machines and other architectures this remains
> a significant problem for rmap, I expect.
My 2X 1GHz PIII definitely likes it.
> Guess we should instrument it up and make sure that the hashing
> and index thing is getting the right locality. I saw UML-for-2.5.30
> whizz past, if you have time ;)
I've got intrumentation for that all ready to go. I'll break it out and send
it along. The bucket distribution can definitely be improved, by xoring some
higher bits of the lock number with a value specific to each mapping. The
anon page locality is poor with the simple increment-a-counter approach; we
can do much better.
But before we start on the micro-optimization we need to know why your quad
is so unaffected by the big change. Are you sure the slab cache batching of
pte chain allocation performs as well as my simpleminded inline batching?
(I batched the pte chain allocation lock quite nicely.) What about the bit
test/set for the direct rmap pointer, how is performance affected by dropping
the direct lookup optimization? Note that you are holding the rmap lock
considerably longer than I was, by holding it across __page_add_rmap instead
of just across the few instructions where pointers are actually updated. I'm
also wondering if gcc is optimizing your cached_rmap_lock inline as well as
you think it is.
I really need to be running on 2.5 so I can crosscheck your results. I'll
return to the matter of getting the dac960 running now.
Miscellaneous question: we are apparently adding rmaps to reserved pages, why
is that?
--
Daniel
next prev parent reply other threads:[~2002-08-03 18:38 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-08-02 19:42 Daniel Phillips
2002-08-02 20:20 ` Andrew Morton
2002-08-02 21:40 ` William Lee Irwin III
2002-08-03 0:14 ` Rik van Riel
2002-08-03 0:31 ` Andrew Morton
2002-08-03 0:52 ` William Lee Irwin III
2002-08-03 0:56 ` Rik van Riel
2002-08-03 3:47 ` Daniel Phillips
2002-08-03 5:24 ` Andrew Morton
2002-08-03 18:43 ` Daniel Phillips [this message]
2002-08-03 21:40 ` Andrew Morton
2002-08-03 21:54 ` Rik van Riel
2002-08-03 22:49 ` Daniel Phillips
2002-08-03 23:55 ` Gerrit Huizenga
2002-08-04 0:47 ` Andrew Morton
2002-08-04 1:01 ` Daniel Phillips
2002-08-04 14:11 ` Thunder from the hill
2002-08-04 14:47 ` Zwane Mwaikambo
2002-08-04 16:55 ` Tobias Ringstrom
2002-08-03 23:36 ` Daniel Phillips
2002-08-04 0:44 ` Andrew Morton
2002-08-03 21:05 ` Rik van Riel
2002-08-03 21:36 ` Daniel Phillips
2002-08-03 21:43 ` Andrew Morton
2002-08-03 21:41 ` Daniel Phillips
2002-08-03 21:24 ` [PATCH] Rmap speedup... call for testing Daniel Phillips
2002-08-03 22:05 ` [PATCH] Rmap speedup Daniel Phillips
2002-08-03 22:39 ` Andrew Morton
2002-08-03 22:35 ` Daniel Phillips
2002-08-04 23:33 ` Andrew Morton
2002-08-05 0:35 ` Daniel Phillips
2002-08-05 7:05 ` Andrew Morton
2002-08-05 13:48 ` Daniel Phillips
2002-08-05 13:57 ` Rik van Riel
2002-08-05 18:16 ` Andrew Morton
2002-08-07 18:59 ` Daniel Phillips
2002-08-07 19:40 ` Andrew Morton
2002-08-07 20:17 ` Daniel Phillips
2002-08-07 20:34 ` Andrew Morton
2002-08-07 20:51 ` Daniel Phillips
2002-08-07 20:54 ` Rik van Riel
2002-08-07 22:21 ` Daniel Phillips
2002-08-07 22:48 ` Andrew Morton
2002-08-07 20:39 ` Daniel Phillips
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=E17b3sE-0001T4-00@starship \
--to=phillips@arcor.de \
--cc=akpm@zip.com.au \
--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
all inboxes | Powered by JetHome®