All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@zip.com.au>
To: Andrea Arcangeli <andrea@suse.de>
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 14:46:07 -0700	[thread overview]
Message-ID: <3D45B79F.D228226@zip.com.au> (raw)
In-Reply-To: 20020729213132.GG1201@dualathlon.random

Andrea Arcangeli wrote:
> 
> On Mon, Jul 29, 2002 at 02:01:15PM -0700, Andrew Morton wrote:
> > Andrea Arcangeli wrote:
> > >
> > > 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).
> >
> > There's still the mempool.
> 
> that's hiding the problem at the moment, it's global, it doesn't provide
> any real guarantee.

Sizing the mempool to max_cpus * max tree depth provides a guarantee,
provided you take care of context switches, which is pretty easy.

> ...
> 
> so it's not too bad in terms of stack because there's not going to be
> more than one walk at time, thanks for doing the math btw. You'd
> basically need a second radix tree for the dirty pages (using the same
> radix tree is not an option because it would increase pdflush complexity
> too much with terabytes of clean pages in the tree).

Not sure.  If each ratnode has a 64-bit bitmap which represents
dirty pages if it's a leaf node, or nodes which have dirty pages
if it's a higher node then the "find the next 16 dirty pages above index
N" is a pretty efficient thing.

Tricky to code though.

  reply	other threads:[~2002-07-29 21:45 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-07-27 13:41 [BK PATCH 2.5] Introduce 64-bit versions of PAGE_{CACHE_,}{MASK,ALIGN} 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
2002-07-29 21:01                 ` Andrew Morton
2002-07-29 21:31                   ` Andrea Arcangeli
2002-07-29 21:46                     ` Andrew Morton [this message]
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=3D45B79F.D228226@zip.com.au \
    --to=akpm@zip.com.au \
    --cc=andrea@suse.de \
    --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 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.