From: Andrea Arcangeli <andrea@suse.de>
To: Andrew Morton <akpm@zip.com.au>
Cc: Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [BK PATCH 2.5] Introduce 64-bit versions of PAGE_{CACHE_,}{MASK,ALIGN}
Date: Mon, 29 Jul 2002 22:52:11 +0200 [thread overview]
Message-ID: <20020729205211.GB1201@dualathlon.random> (raw)
In-Reply-To: <3D44A2DF.F751B564@zip.com.au>
On Sun, Jul 28, 2002 at 07:05:19PM -0700, Andrew Morton wrote:
> But yes, all of this is a straight speed/space tradeoff. Probably
> some of it should be ifdeffed.
I would say so. recalculating page_address in cpu core with no cacheline
access is one thing, deriving the index is a different thing.
> The cost of the tree walk doesn't worry me much - generally we
> walk the tree with good locality of reference, so most everything is
> in cache anyway.
well, the rbtree showedup heavily when it started growing more than a
few steps, it has less locality of reference though.
> Good luck setting up a testcase which does this ;)
a gigabit will trigger it in a millisecond. of course nobody tested it
either I guess (I guess not many people tested the 800Gbyte offset
either in the first place).
> Then again, Andi says that sizeof(struct page) is a problem for
> x86-64.
not true.
> No recursion needed, no allocations needed.
the 28 bytes if they're on the stack they're like recursion, just using
an interactive algorithm.
you're done with 28 bytes with a max 7/8 level tree, so 7*4 = 28 (4 size
of pointer/long). On a 32bit arch the max index supported is
2^32, on a 64bit arch the max index supported is
2^(64-PAGE_CACHE_SHFIT), plus each pointer is 8 bytes. You may want to
do the math to verify if you've enough stack to walk the tree in order,
it's not obvious.
> But I don't see any showstoppers here.
on a 32bit arch with 32bit index it seems ok to me too, on 64bit
somebody has to do the math and it's not really obvious to me that's
feasible.
Andrea
next prev parent reply other threads:[~2002-07-29 20:47 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-07-27 13:41 Anton Altaparmakov
2002-07-27 17:23 ` Andrew Morton
2002-07-28 17:53 ` Eric W. Biederman
2002-07-28 18:54 ` Anton Altaparmakov
2002-07-28 20:12 ` Eric W. Biederman
2002-07-28 23:26 ` Linus Torvalds
2002-07-29 0:10 ` Andrew Morton
2002-07-29 0:43 ` William Lee Irwin III
2002-07-29 0:56 ` Andrea Arcangeli
2002-07-29 1:04 ` William Lee Irwin III
2002-07-29 1:09 ` Rik van Riel
2002-07-29 2:14 ` Andrew Morton
2002-07-29 2:11 ` William Lee Irwin III
2002-07-29 2:18 ` Rik van Riel
2002-07-29 0:49 ` Andrea Arcangeli
2002-07-29 2:05 ` Andrew Morton
2002-07-29 2:09 ` William Lee Irwin III
2002-07-29 20:52 ` Andrea Arcangeli [this message]
2002-07-29 21:01 ` Andrew Morton
2002-07-29 21:31 ` Andrea Arcangeli
2002-07-29 21:46 ` Andrew Morton
2002-07-29 22:18 ` Andrea Arcangeli
2002-07-29 0:56 ` William Lee Irwin III
2002-07-29 1:36 ` Andrew Morton
2002-07-29 1:37 ` William Lee Irwin III
2002-07-29 9:27 ` Russell King
2002-07-29 18:32 ` Andrew Morton
[not found] <5.1.0.14.2.20020728193528.04336a80@pop.cus.cam.ac.uk.suse.lists.linux.kernel>
[not found] ` <Pine.LNX.4.44.0207281622350.8208-100000@home.transmeta.com.suse.lists.linux.kernel>
[not found] ` <3D448808.CF8D18BA@zip.com.au.suse.lists.linux.kernel>
[not found] ` <20020729004942.GL1201@dualathlon.random.suse.lists.linux.kernel>
[not found] ` <3D44A2DF.F751B564@zip.com.au.suse.lists.linux.kernel>
[not found] ` <20020729205211.GB1201@dualathlon.random.suse.lists.linux.kernel>
2002-07-30 13:44 ` Andi Kleen
2002-07-30 14:06 ` Rik van Riel
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=20020729205211.GB1201@dualathlon.random \
--to=andrea@suse.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®