All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Christoph Lameter <clameter@sgi.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Prezeroing V2 [0/3]: Why and When it works
Date: 23 Dec 2004 21:27:38 +0100	[thread overview]
Message-ID: <p73ekhgzrnp.fsf@verdi.suse.de> (raw)
In-Reply-To: <Pine.LNX.4.58.0412231119540.31791@schroedinger.engr.sgi.com.suse.lists.linux.kernel>

Christoph Lameter <clameter@sgi.com> writes:
>   and why other approaches have not worked.
> o Instead of zero_page(p,order) extend clear_page to take second argument
> o Update all architectures to accept second argument for clear_pages

Sorry if there was a miscommunication, but ...
> 1. Aggregating zeroing operations to only apply to pages of higher order,
> which results in many pages that will later become order 0 to be
> zeroed in one go. For that purpose the existing clear_page function is
> extended and made to take an additional argument specifying the order of
> the page to be cleared.

But if you do that you should really use a separate function that 
can use cache bypassing stores. 

Normal clear_page cannot use that because it would be a loss
when the data is soon used.

So the two changes don't really make sense.

Also I must say I'm still suspicious regarding your heuristic
to trigger gang faulting - with bad luck it could lead to a lot 
more memory usage to specific applications that do very sparse
usage of memory. 

There should be at least an madvise flag to turn it off and a sysctl 
and it would be better to trigger only on a longer sequence of 
consecutive faulted pages.


> 2. Hardware support for offloading zeroing from the cpu. This avoids
> the invalidation of the cpu caches by extensive zeroing operations.
> 
> The result is a significant increase of the page fault performance even for
> single threaded applications:
[...]

How about some numbers on i386? 


-Andi

  parent reply	other threads:[~2004-12-23 20:27 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <B8E391BBE9FE384DAA4C5C003888BE6F02900FBD@scsmsx401.amr.corp.intel.com.suse.lists.linux.kernel>
     [not found] ` <41C20E3E.3070209@yahoo.com.au.suse.lists.linux.kernel>
     [not found]   ` <Pine.LNX.4.58.0412211154100.1313@schroedinger.engr.sgi.com.suse.lists.linux.kernel>
     [not found]     ` <Pine.LNX.4.58.0412211155340.1313@schroedinger.engr.sgi.com.suse.lists.linux.kernel>
2004-12-21 22:40       ` Increase page fault rate by prezeroing V1 [1/3]: Introduce __GFP_ZERO Andi Kleen
2004-12-21 22:54         ` Christoph Lameter
2004-12-22 10:53           ` Andi Kleen
2004-12-22 19:54             ` Christoph Lameter
     [not found]     ` <Pine.LNX.4.58.0412231119540.31791@schroedinger.engr.sgi.com.suse.lists.linux.kernel>
2004-12-23 20:27       ` Andi Kleen [this message]
2004-12-23 21:02         ` Prezeroing V2 [0/3]: Why and When it works Christoph Lameter
2004-12-16 18:38 [very very drafty] prezeroing to increase the page fault rate 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-23 19:29     ` Prezeroing V2 [0/3]: Why and When it works Christoph Lameter
2004-12-23 19:29       ` Christoph Lameter
2004-12-23 19:29       ` Christoph Lameter
2004-12-23 19:49       ` Arjan van de Ven
2004-12-23 19:49         ` Arjan van de Ven
2004-12-23 19:49         ` Arjan van de Ven
2004-12-23 20:57       ` Matt Mackall
2004-12-23 20:57         ` Matt Mackall
2004-12-23 20:57         ` Matt Mackall
2004-12-23 21:01       ` Paul Mackerras
2004-12-23 21:01         ` Paul Mackerras
2004-12-23 21:01         ` Paul Mackerras
2004-12-23 21:11       ` Paul Mackerras
2004-12-23 21:11         ` Paul Mackerras
2004-12-23 21:11         ` Paul Mackerras
2004-12-23 21:37         ` Andrew Morton
2004-12-23 21:37           ` Andrew Morton
2004-12-23 21:37           ` Andrew Morton
2004-12-23 23:00           ` Paul Mackerras
2004-12-23 23:00             ` Paul Mackerras
2004-12-23 23:00             ` Paul Mackerras
2004-12-23 21:48         ` Linus Torvalds
2004-12-23 21:48           ` Linus Torvalds
2004-12-23 21:48           ` Linus Torvalds
2004-12-23 22:34           ` Zwane Mwaikambo
2004-12-23 22:34             ` Zwane Mwaikambo
2004-12-23 22:34             ` Zwane Mwaikambo
2004-12-24  9:14           ` Arjan van de Ven
2004-12-24  9:14             ` Arjan van de Ven
2004-12-24  9:14             ` Arjan van de Ven
2004-12-24 18:21             ` Linus Torvalds
2004-12-24 18:21               ` Linus Torvalds
2004-12-24 18:21               ` Linus Torvalds
2004-12-24 18:57               ` Arjan van de Ven
2004-12-24 18:57                 ` Arjan van de Ven
2004-12-24 18:57                 ` Arjan van de Ven
2004-12-27 22:50               ` David S. Miller
2004-12-27 22:50                 ` David S. Miller
2004-12-27 22:50                 ` David S. Miller
2004-12-28 11:53                 ` Marcelo Tosatti
2004-12-28 11:53                   ` Marcelo Tosatti
2004-12-28 11:53                   ` Marcelo Tosatti
2004-12-24 16:17           ` Christoph Lameter
2004-12-24 16:17             ` Christoph Lameter
2004-12-24 16:17             ` 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=p73ekhgzrnp.fsf@verdi.suse.de \
    --to=ak@suse.de \
    --cc=clameter@sgi.com \
    --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.