public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: linux-ia64@vger.kernel.org
Subject: Re: [very very drafty] prezeroing to increase the page fault rate
Date: Thu, 16 Dec 2004 00:25:25 +0000	[thread overview]
Message-ID: <1103156725.5054.10.camel@npiggin-nld.site> (raw)
In-Reply-To: <Pine.LNX.4.58.0412141832350.6975@schroedinger.engr.sgi.com>

On Wed, 2004-12-15 at 13:58 -0800, Christoph Lameter wrote:
> On Wed, 15 Dec 2004, Robin Holt wrote:
> 
> > > I have some spot results here that indicate that a single thread may
> > > do up to 500000 faults a second with this patch alone.
> >
> > This sounds impressive, but from my limited understanding of the patches,
> > I think it is a misleading figure.  This would require the system to
> > sit idle for a period of time between large jobs to ensure that
> > enough pages are free so all allocations could be satisfied from the
> > pre-zeroed section.
> 
> There is enough time for all pages to be zeroed on bootup so there is
> a large repository of zeroed pages. Of course if the system uses up that
> reservoir and the zeroing is not effectively keeping up then this
> will degenerates into the old behavior.
> 

Just curious - how does this go on a real workload as opposed to
raw pagefault performance?

You said the majority of the time in the fault handler is taken
in zeroing pages, but that does have the upshot of warming up the
cache on memory which is likely to be used soon.

I think if there were *no* downsides to this patch, it would
obviously make sense - because in that case it doesn't really matter
whether the cache is heated by the fault handler or by the app
itself... but it does have some downsides (complexity, memory
bandwidth, cache degradation in the case of idle zeroing, less
predictable performance).

I'm not saying the negatives outweigh the positives, but I wonder.
I think this sort of thing has been contentious in the past.


Also just a stupid question - would an madvise(..., MADV_PREFAULT)
be of use to you? Or is that too difficult to get a good NUMA
allocation layout?

Nick



  parent reply	other threads:[~2004-12-16  0:25 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-15  2:34 [very very drafty] prezeroing to increase the page fault rate Christoph Lameter
2004-12-15 21:21 ` Robin Holt
2004-12-15 21:58 ` Christoph Lameter
2004-12-15 22:00 ` Christoph Lameter
2004-12-16  0:25 ` Nick Piggin [this message]
2004-12-16  0:41 ` Christoph Lameter
2004-12-16  0:41 ` Linus Torvalds
2004-12-16  0:46 ` Christoph Lameter
2004-12-16  0:50 ` Nick Piggin
2004-12-16  0:54 ` Christoph Lameter
2004-12-16  1:18 ` Linus Torvalds
2004-12-16  1:44 ` Christoph Lameter
2004-12-16  1:55 ` Linus Torvalds
2004-12-16  2:17 ` Nick Piggin
2004-12-16  7:59 ` Nick Piggin
2004-12-16 16:27 ` Christoph Lameter
2004-12-16 18:38 ` Luck, Tony
2004-12-16 22:37 ` Nick Piggin
2004-12-21 19:55   ` Increase page fault rate by prezeroing V1 [0/3]: Overview Christoph Lameter
2004-12-21 19:56     ` Increase page fault rate by prezeroing V1 [1/3]: Introduce __GFP_ZERO Christoph Lameter
2004-12-21 19:57     ` Increase page fault rate by prezeroing V1 [2/3]: zeroing and scrubd Christoph Lameter
2005-01-01  2:22       ` Increase page fault rate by prezeroing V1 [2/3]: zeroing and Nick Piggin
2005-01-01  2:55         ` Increase page fault rate by prezeroing V1 [2/3]: zeroing and scrubd pmarques
2004-12-21 19:57     ` Increase page fault rate by prezeroing V1 [3/3]: Altix SN2 BTE Christoph Lameter
2004-12-22 12:46       ` Increase page fault rate by prezeroing V1 [3/3]: Altix SN2 BTE Zeroing Robin Holt
2004-12-22 19:56         ` Increase page fault rate by prezeroing V1 [3/3]: Altix SN2 BTE Christoph Lameter
2004-12-23 19:29     ` Prezeroing V2 [0/3]: Why and When it works Christoph Lameter
2004-12-23 19:33       ` Prezeroing V2 [1/4]: __GFP_ZERO / clear_page() removal Christoph Lameter
2004-12-23 19:33         ` Prezeroing V2 [2/4]: add second parameter to clear_page() for all Christoph Lameter
2004-12-24  8:33           ` Prezeroing V2 [2/4]: add second parameter to clear_page() for all arches Pavel Machek
2004-12-24 16:18             ` Prezeroing V2 [2/4]: add second parameter to clear_page() for Christoph Lameter
2004-12-24 16:27               ` Prezeroing V2 [2/4]: add second parameter to clear_page() for all arches Pavel Machek
2004-12-24 17:02                 ` Prezeroing V2 [2/4]: add second parameter to clear_page() for David S. Miller
2004-12-24 17:05           ` David S. Miller
2004-12-27 22:48             ` David S. Miller
2005-01-03 17:52             ` Christoph Lameter
2005-01-01 10:24           ` Geert Uytterhoeven
2005-01-04 23:12             ` Prezeroing V3 [0/4]: Discussion and i386 performance tests Christoph Lameter
2005-01-04 23:13               ` Prezeroing V3 [1/4]: Allow request for zeroed memory Christoph Lameter
2005-01-04 23:45                 ` Dave Hansen
2005-01-05  1:16                   ` Christoph Lameter
2005-01-05  1:26                     ` Linus Torvalds
2005-01-05 23:11                       ` Christoph Lameter
2005-01-05  0:34                 ` Linus Torvalds
2005-01-05  0:47                   ` Andrew Morton
2005-01-05  1:15                     ` Christoph Lameter
2005-01-08 21:12                 ` Hugh Dickins
2005-01-08 21:56                   ` David S. Miller
2005-01-21 20:09                     ` alloc_zeroed_user_highpage to fix the clear_user_highpage issue Christoph Lameter
2005-02-09  9:58                       ` [Patch] Fix oops in alloc_zeroed_user_highpage() when page is NULL Michael Ellerman
2005-01-21 20:12                     ` Extend clear_page by an order parameter Christoph Lameter
2005-01-21 22:29                       ` Paul Mackerras
2005-01-21 23:48                         ` Christoph Lameter
2005-01-22  0:35                           ` Paul Mackerras
2005-01-22  0:43                             ` Andrew Morton
2005-01-22  1:08                               ` Paul Mackerras
2005-01-22  1:20                               ` Roman Zippel
2005-01-22  1:25                               ` Paul Mackerras
2005-01-22  1:54                                 ` Christoph Lameter
2005-01-22  2:53                                   ` Paul Mackerras
2005-01-23  7:45                       ` Andrew Morton
2005-01-24 16:37                         ` Christoph Lameter
2005-01-24 20:23                           ` David S. Miller
2005-01-24 20:33                             ` Christoph Lameter
2005-01-10 17:16                   ` Prezeroing V3 [1/4]: Allow request for zeroed memory Christoph Lameter
2005-01-10 18:13                     ` Linus Torvalds
2005-01-10 20:17                       ` Christoph Lameter
2005-01-10 23:53                       ` Prezeroing V4 [0/4]: Overview Christoph Lameter
2005-01-10 23:54                         ` Prezeroing V4 [1/4]: Arch specific page zeroing during page fault Christoph Lameter
2005-01-11  0:41                           ` Chris Wright
2005-01-11  0:46                             ` Prezeroing V4 [1/4]: Arch specific page zeroing during page Christoph Lameter
2005-01-11  0:49                               ` Prezeroing V4 [1/4]: Arch specific page zeroing during page fault Chris Wright
2005-01-10 23:55                         ` Prezeroing V4 [2/4]: Zeroing implementation Christoph Lameter
2005-01-10 23:55                         ` Prezeroing V4 [3/4]: Altix SN2 BTE zero driver Christoph Lameter
2005-01-10 23:56                         ` Prezeroing V4 [4/4]: Extend clear_page to take an order parameter Christoph Lameter
2005-01-04 23:14               ` Prezeroing V3 [2/4]: Extension of clear_page to take an order Christoph Lameter
2005-01-05 23:25                 ` Christoph Lameter
2005-01-04 23:15               ` Prezeroing V3 [3/4]: Page zeroing through kscrubd Christoph Lameter
2005-01-04 23:16               ` Prezeroing V3 [4/4]: Driver for hardware zeroing on Altix Christoph Lameter
2004-12-23 19:34         ` Prezeroing V2 [3/4]: Add support for ZEROED and NOT_ZEROED free maps Christoph Lameter
2004-12-23 19:35         ` Prezeroing V2 [4/4]: Hardware Zeroing through SGI BTE Christoph Lameter
2004-12-23 20:08         ` Prezeroing V2 [1/4]: __GFP_ZERO / clear_page() removal Brian Gerst
2004-12-24 16:24           ` Christoph Lameter
2004-12-23 19:49       ` Prezeroing V2 [0/3]: Why and When it works Arjan van de Ven
2004-12-23 20:57       ` Matt Mackall
2004-12-23 21:01       ` Paul Mackerras
2004-12-23 21:11       ` Paul Mackerras
2004-12-23 21:37         ` Andrew Morton
2004-12-23 23:00           ` Paul Mackerras
2004-12-23 21:48         ` Linus Torvalds
2004-12-23 22:34           ` Zwane Mwaikambo
2004-12-24  9:14           ` Arjan van de Ven
2004-12-24 18:21             ` Linus Torvalds
2004-12-24 18:57               ` Arjan van de Ven
2004-12-27 22:50               ` David S. Miller
2004-12-28 11:53                 ` Marcelo Tosatti
2004-12-24 16:17           ` Christoph Lameter
2004-12-24 18:31     ` Increase page fault rate by prezeroing V1 [0/3]: Overview Andrea Arcangeli
2005-01-03 17:54       ` Christoph Lameter

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=1103156725.5054.10.camel@npiggin-nld.site \
    --to=nickpiggin@yahoo.com.au \
    --cc=linux-ia64@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