public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: clameter@sgi.com
Cc: linux-kernel@vger.kernel.org, ak@suse.com, holt@sgi.com,
	linux-ia64@vger.kernel.org, mpm@selenic.com
Subject: Re: [QUICKLIST 0/6] Arch independent quicklists V1
Date: Sun, 11 Mar 2007 20:59:46 +0000	[thread overview]
Message-ID: <20070311.135946.28788670.davem@davemloft.net> (raw)
In-Reply-To: <20070311020923.19905.49260.sendpatchset@schroedinger.engr.sgi.com>

From: Christoph Lameter <clameter@sgi.com>
Date: Sat, 10 Mar 2007 18:09:23 -0800 (PST)

> Page table pages have the characteristics that they are typically zero
> or in a known state when they are freed. This is usually the exactly
> same state as needed after allocation. So it makes sense to build a list
> of freed page table pages and then consume the pages already in use
> first. Those pages have already been initialized correctly (thus no
> need to zero them) and are likely already cached in such a way that
> the MMU can use them most effectively.

I'm going to make the radical declaration that it be perhaps often
better to always initialize page table chunks to all zeros on
allocation.

The reason is that every time I've monitored the allocation patterns
of these things on SMP, the page table chunks always get released on a
different cpu than where they were initialized.

It's precisely suboptimal for a workload that forks off a lot of
very short lived jobs, watch what happens during runs of lmbench's
lat_proc for example.

The allocator side just does nothing but emit L2 cache line ownership
transactions as the pte page is touched.  Especially on chips like
PowerPC where zero initialization is absurdly cheap, we can avoid all
of the cache line transfers if we just initialize it at allocation
time.

Look, I like this trick too, sparc and sparc64 were the first Linux
platforms to implement page table caching about 8 years ago, but
I'm wondering whether it really makes sense any more.


  parent reply	other threads:[~2007-03-11 20:59 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-11  2:09 [QUICKLIST 0/6] Arch independent quicklists V1 Christoph Lameter
2007-03-11  2:09 ` [QUICKLIST 1/6] Extract quicklist implementation from IA64 Christoph Lameter
2007-03-11  2:09 ` [QUICKLIST 2/6] i386: quicklist support Christoph Lameter
2007-03-11  3:22   ` William Lee Irwin III
2007-03-11  2:09 ` [QUICKLIST 3/6] i386: Use standard list manipulators for pgd_list Christoph Lameter
2007-03-11  2:09 ` [QUICKLIST 4/6] x86_64: Single Quicklist Christoph Lameter
2007-03-11  7:54   ` Andi Kleen
2007-03-11 16:44     ` Christoph Lameter
2007-03-14 19:49       ` Mel Gorman
2007-03-11  2:09 ` [QUICKLIST 5/6] x86_64: Separate quicklist for pgds Christoph Lameter
2007-03-11  2:09 ` [QUICKLIST 6/6] slub: remove special casing for PAGE_SIZE slabs Christoph Lameter
2007-03-11 20:59 ` David Miller [this message]
2007-03-12 11:12   ` [QUICKLIST 0/6] Arch independent quicklists V1 Christoph Lameter
2007-03-12 11:23     ` David Miller
2007-03-12 15:52     ` Robin Holt
2007-03-12 22:51 ` David Miller
2007-03-13  0:37   ` Paul Mackerras
2007-03-13  1:38     ` Christoph Lameter
2007-03-13  2:26     ` David Miller
2007-03-13  2:32       ` David Miller
2007-03-15  7:23         ` Andrew Morton
2007-03-15  7:31           ` David Miller
2007-03-15  7:40             ` Andrew Morton
2007-03-14  0:41   ` William Lee Irwin III

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=20070311.135946.28788670.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=ak@suse.com \
    --cc=clameter@sgi.com \
    --cc=holt@sgi.com \
    --cc=linux-ia64@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpm@selenic.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