From: Andrew Morton <akpm@zip.com.au>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: Hubertus Franke <frankeh@watson.ibm.com>,
"David S. Miller" <davem@redhat.com>,
davidm@hpl.hp.com, davidm@napali.hpl.hp.com, gh@us.ibm.com,
Martin.Bligh@us.ibm.com, wli@holomorpy.com,
linux-kernel@vger.kernel.org
Subject: Re: large page patch (fwd) (fwd)
Date: Sun, 04 Aug 2002 12:23:16 -0700 [thread overview]
Message-ID: <3D4D7F24.10AC4BDB@zip.com.au> (raw)
In-Reply-To: Pine.LNX.4.44.0208041131380.10314-100000@home.transmeta.com
Linus Torvalds wrote:
>
> On Sun, 4 Aug 2002, Hubertus Franke wrote:
> >
> > As of the page coloring !
> > Can we tweak the buddy allocator to give us this additional functionality?
>
> I would really prefer to avoid this, and get "95% coloring" by just doing
> read-ahead with higher-order allocations instead of the current "loop
> allocation of one block".
>
> I bet that you will get _practically_ perfect coloring with just two small
> changes:
>
> - do_anonymous_page() looks to see if the page tables are empty around
> the faulting address (and check vma ranges too, of course), and
> optimistically does a non-blocking order-X allocation.
>
> If the order-X allocation fails, we're likely low on memory (this is
> _especially_ true since the very fact that we do lots of order-X
> allocations will probably actually help keep fragementation down
> normally), and we just allocate one page (with a regular GFP_USER this
> time).
>
> Map in all pages.
This would be a problem for short-lived processes. Because "map in
all pages" also means "zero them out". And I think that performing
a 4k clear_user_highpage() immediately before returning to userspace
is optimal. It's essentialy a cache preload for userspace.
If we instead clear out 4 or 8 pages, we trash a ton of cache and
the chances of userspace _using_ pages 1-7 in the short-term are
lower. We could clear the pages with 7,6,5,4,3,2,1,0 ordering,
but the cache implications of faultahead are still there.
Could we establish the eight pte's but still arrange for pages 1-7
to trap, so the kernel can zero the out at the latest possible time?
> - do the same for page_cache_readahead() (this, btw, is where radix trees
> will kick some serious ass - we'd have had a hard time doing the "is
> this range of order-X pages populated" efficiently with the old hashes.
>
On the nopage path, yes. That memory is cache-cold anyway.
next prev parent reply other threads:[~2002-08-04 19:10 UTC|newest]
Thread overview: 110+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <E17ahdi-0001RC-00@w-gerrit2>
2002-08-02 19:34 ` large page patch (fwd) (fwd) Linus Torvalds
2002-08-03 3:19 ` David Mosberger
2002-08-03 3:32 ` Linus Torvalds
2002-08-03 4:17 ` David Mosberger
2002-08-03 4:26 ` Linus Torvalds
2002-08-03 4:39 ` David Mosberger
2002-08-03 5:20 ` David S. Miller
2002-08-03 17:35 ` Linus Torvalds
2002-08-03 19:30 ` David Mosberger
2002-08-03 19:43 ` Linus Torvalds
2002-08-03 21:18 ` David Mosberger
2002-08-03 21:54 ` Hubertus Franke
2002-08-04 0:35 ` David S. Miller
2002-08-04 2:25 ` David Mosberger
2002-08-04 17:19 ` Hubertus Franke
2002-08-09 15:20 ` Daniel Phillips
2002-08-09 15:56 ` Linus Torvalds
2002-08-09 16:15 ` Daniel Phillips
2002-08-09 16:31 ` Rik van Riel
2002-08-09 18:08 ` Daniel Phillips
2002-08-09 16:51 ` Linus Torvalds
2002-08-09 17:11 ` Daniel Phillips
2002-08-09 16:27 ` Rik van Riel
2002-08-09 16:52 ` Linus Torvalds
2002-08-09 17:40 ` yodaiken
2002-08-09 19:15 ` Rik van Riel
2002-08-09 21:20 ` Linus Torvalds
2002-08-09 21:19 ` Marcin Dalecki
2002-08-09 17:46 ` Bill Rugolsky Jr.
2002-08-12 9:23 ` Helge Hafting
2002-08-13 3:15 ` Bill Davidsen
2002-08-13 3:31 ` Rik van Riel
2002-08-13 7:28 ` Helge Hafting
2002-08-09 21:38 ` Andrew Morton
2002-08-10 18:20 ` Eric W. Biederman
2002-08-10 18:59 ` Daniel Phillips
2002-08-10 19:55 ` Rik van Riel
2002-08-10 19:54 ` Eric W. Biederman
2002-08-09 18:32 ` Hubertus Franke
2002-08-09 18:43 ` Daniel Phillips
2002-08-09 19:17 ` Hubertus Franke
2002-08-11 20:30 ` Alan Cox
2002-08-11 22:33 ` Daniel Phillips
2002-08-11 22:55 ` Linus Torvalds
2002-08-11 22:56 ` Linus Torvalds
2002-08-11 23:36 ` William Lee Irwin III
2002-08-12 0:46 ` Alan Cox
2002-08-11 23:42 ` Rik van Riel
2002-08-11 23:50 ` Larry McVoy
2002-08-12 8:22 ` Daniel Phillips
2002-08-13 8:40 ` Rob Landley
2002-08-13 15:06 ` Alan Cox
2002-08-13 11:36 ` Rob Landley
2002-08-13 16:51 ` Linus Torvalds
2002-08-13 12:53 ` Rob Landley
2002-08-13 17:14 ` Ruth Ivimey-Cook
2002-08-13 17:29 ` Rik van Riel
2002-08-13 13:18 ` Rob Landley
2002-08-13 18:32 ` Linus Torvalds
2002-08-13 13:50 ` Rob Landley
2002-08-13 17:45 ` Alexander Viro
2002-08-13 17:55 ` Linus Torvalds
2002-08-13 17:59 ` Rik van Riel
2002-08-13 13:35 ` Rob Landley
2002-08-13 19:12 ` Daniel Phillips
2002-08-22 12:03 ` bill davidsen
[not found] ` <Pine.LNX.4.44.0208130942130.7411-100000@home.transmeta.com >
2002-08-13 18:46 ` large page patch (fwd) Mike Galbraith
2002-08-11 23:44 ` large page patch (fwd) (fwd) Daniel Phillips
2002-08-13 8:51 ` Rob Landley
2002-08-13 16:47 ` Daniel Phillips
2002-08-13 13:09 ` Rob Landley
2002-08-11 23:15 ` Larry McVoy
2002-08-12 1:26 ` Linus Torvalds
2002-08-12 5:05 ` Larry McVoy
2002-08-12 10:31 ` Alan Cox
2002-08-04 0:28 ` David S. Miller
2002-08-04 17:31 ` Hubertus Franke
2002-08-04 18:38 ` Linus Torvalds
2002-08-04 19:23 ` Andrew Morton [this message]
2002-08-04 19:28 ` Linus Torvalds
2002-08-05 5:42 ` David S. Miller
2002-08-04 19:30 ` Hubertus Franke
2002-08-04 20:23 ` William Lee Irwin III
2002-08-05 16:59 ` David Mosberger
2002-08-05 17:21 ` Hubertus Franke
2002-08-05 21:10 ` Jamie Lokier
2002-08-04 19:41 ` Rik van Riel
2002-08-05 5:40 ` David S. Miller
2002-08-03 18:41 ` Hubertus Franke
2002-08-03 19:39 ` Linus Torvalds
2002-08-04 0:32 ` David S. Miller
2002-08-03 19:41 ` David Mosberger
2002-08-03 20:53 ` Hubertus Franke
2002-08-03 21:26 ` David Mosberger
2002-08-03 21:50 ` Hubertus Franke
2002-08-04 0:34 ` David S. Miller
2002-08-04 0:31 ` David S. Miller
2002-08-04 17:25 ` Hubertus Franke
[not found] <200208041331.24895.frankeh@watson.ibm.com.suse.lists.linux.kernel>
[not found] ` <Pine.LNX.4.44.0208041131380.10314-100000@home.transmeta.com.suse.lists.linux.kernel>
[not found] ` <3D4D7F24.10AC4BDB@zip.com.au.suse.lists.linux.kernel>
2002-08-04 20:20 ` Andi Kleen
2002-08-04 23:51 ` Eric W. Biederman
2002-08-05 23:30 Seth, Rohit
2002-08-06 5:01 ` David Mosberger
2002-08-06 4:58 ` David S. Miller
2002-08-06 5:19 ` David Mosberger
2002-08-06 5:08 ` David S. Miller
2002-08-06 5:32 ` David Mosberger
2002-08-06 19:11 ` Hubertus Franke
-- strict thread matches above, loose matches on Subject: below --
2002-08-06 20:38 Luck, Tony
2002-08-06 21:03 ` Hubertus Franke
2002-08-09 17:51 Seth, Rohit
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=3D4D7F24.10AC4BDB@zip.com.au \
--to=akpm@zip.com.au \
--cc=Martin.Bligh@us.ibm.com \
--cc=davem@redhat.com \
--cc=davidm@hpl.hp.com \
--cc=davidm@napali.hpl.hp.com \
--cc=frankeh@watson.ibm.com \
--cc=gh@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
--cc=wli@holomorpy.com \
/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