All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>, Andi Kleen <ak@muc.de>,
	linux-kernel@vger.kernel.org, virtualization@lists.osdl.org,
	xen-devel@lists.xensource.com, Chris Wright <chrisw@sous-sol.org>,
	Zachary Amsden <zach@vmware.com>,
	Ian Pratt <ian.pratt@xensource.com>,
	Christian Limpach <Christian.Limpach@cl.cam.ac.uk>,
	Christoph Lameter <clameter@sgi.com>,
	Linux Memory Management <linux-mm@kvack.org>,
	David Rientjes <rientjes@google.com>
Subject: Re: [patch 11/21] Xen-paravirt: Add apply_to_page_range() which applies a function to a pte range.
Date: Fri, 16 Feb 2007 18:31:14 +1100	[thread overview]
Message-ID: <45D55DC2.3070703@yahoo.com.au> (raw)
In-Reply-To: <20070215223727.6819f962.akpm@linux-foundation.org>

Andrew Morton wrote:
> On Thu, 15 Feb 2007 18:25:00 -0800 Jeremy Fitzhardinge <jeremy@goop.org> wrote:
> 
> 
>>Add a new mm function apply_to_page_range() which applies a given
>>function to every pte in a given virtual address range in a given mm
>>structure. This is a generic alternative to cut-and-pasting the Linux
>>idiomatic pagetable walking code in every place that a sequence of
>>PTEs must be accessed.
>>
>>Although this interface is intended to be useful in a wide range of
>>situations, it is currently used specifically by several Xen
>>subsystems, for example: to ensure that pagetables have been allocated
>>for a virtual address range, and to construct batched special
>>pagetable update requests to map I/O memory (in ioremap()).
> 
> 
> There was some discussion about this sort of thing last week.  The
> consensus was that it's better to run the callback against a whole pmd's
> worth of ptes, mainly to amortise the callback's cost (a lot).
> 
> It was implemented in
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20/2.6.20-mm1/broken-out/smaps-extract-pmd-walker-from-smaps-code.patch


Speaking of that patch, I missed the discussion, but I'd hope it doesn't
go upstream in its current form.

We now have one way of walking range of ptes. The code may be duplicated a
few times, but it is simple, we know how it works, and it is easy to get
right because everyone does the same thing.

We used to have about a dozen slightly different ways of doing this until
Hugh spent the effort to standardise it all. Isn't it nice?

If we want an ever-so-slightly lower performing interface for those paths
that don't care to count every cycle -- which I think is a fine idea BTW
-- it should be implemented in mm/memory.c and it should use our standard
form of pagetable walking.

-- 
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com 

WARNING: multiple messages have this Message-ID (diff)
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>, Andi Kleen <ak@muc.de>,
	linux-kernel@vger.kernel.org, virtualization@lists.osdl.org,
	xen-devel@lists.xensource.com, Chris Wright <chrisw@sous-sol.org>,
	Zachary Amsden <zach@vmware.com>,
	Ian Pratt <ian.pratt@xensource.com>,
	Christian Limpach <Christian.Limpach@cl.cam.ac.uk>,
	Christoph Lameter <clameter@sgi.com>,
	Linux Memory Management <linux-mm@kvack.org>,
	David Rientjes <rientjes@google.com>
Subject: Re: [patch 11/21] Xen-paravirt: Add apply_to_page_range() which applies a function to a pte range.
Date: Fri, 16 Feb 2007 18:31:14 +1100	[thread overview]
Message-ID: <45D55DC2.3070703@yahoo.com.au> (raw)
In-Reply-To: <20070215223727.6819f962.akpm@linux-foundation.org>

Andrew Morton wrote:
> On Thu, 15 Feb 2007 18:25:00 -0800 Jeremy Fitzhardinge <jeremy@goop.org> wrote:
> 
> 
>>Add a new mm function apply_to_page_range() which applies a given
>>function to every pte in a given virtual address range in a given mm
>>structure. This is a generic alternative to cut-and-pasting the Linux
>>idiomatic pagetable walking code in every place that a sequence of
>>PTEs must be accessed.
>>
>>Although this interface is intended to be useful in a wide range of
>>situations, it is currently used specifically by several Xen
>>subsystems, for example: to ensure that pagetables have been allocated
>>for a virtual address range, and to construct batched special
>>pagetable update requests to map I/O memory (in ioremap()).
> 
> 
> There was some discussion about this sort of thing last week.  The
> consensus was that it's better to run the callback against a whole pmd's
> worth of ptes, mainly to amortise the callback's cost (a lot).
> 
> It was implemented in
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20/2.6.20-mm1/broken-out/smaps-extract-pmd-walker-from-smaps-code.patch


Speaking of that patch, I missed the discussion, but I'd hope it doesn't
go upstream in its current form.

We now have one way of walking range of ptes. The code may be duplicated a
few times, but it is simple, we know how it works, and it is easy to get
right because everyone does the same thing.

We used to have about a dozen slightly different ways of doing this until
Hugh spent the effort to standardise it all. Isn't it nice?

If we want an ever-so-slightly lower performing interface for those paths
that don't care to count every cycle -- which I think is a fine idea BTW
-- it should be implemented in mm/memory.c and it should use our standard
form of pagetable walking.

-- 
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2007-02-16  7:31 UTC|newest]

Thread overview: 189+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-16  2:24 [patch 00/21] Xen-paravirt: Xen guest implementation for paravirt_ops interface Jeremy Fitzhardinge
2007-02-16  2:24 ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 01/21] Xen-paravirt: Fix typo in sync_constant_test_bit()s name Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 02/21] Xen-paravirt: ignore vgacon if hardware not present Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 03/21] Xen-paravirt: Add pagetable accessors to pack and unpack pagetable entries Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 04/21] Xen-paravirt: =================================================================== Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  9:12   ` Andi Kleen
2007-02-16  9:12     ` Andi Kleen
2007-02-16 17:32     ` Jeremy Fitzhardinge
2007-02-16 17:32       ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 05/21] Xen-paravirt: paravirt_ops: hooks to set up initial pagetable Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 06/21] Xen-paravirt: paravirt_ops: allocate a fixmap slot Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 07/21] Xen-paravirt: remove ctor for pgd cache Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  6:04   ` Zachary Amsden
2007-02-16  6:04     ` Zachary Amsden
2007-02-16  8:39   ` Pekka Enberg
2007-02-16  9:19     ` Nick Piggin
2007-02-16 17:19       ` Jeremy Fitzhardinge
2007-02-16 17:19         ` Jeremy Fitzhardinge
2007-02-16 20:33   ` Christoph Lameter
2007-02-16 23:33     ` Jeremy Fitzhardinge
2007-02-16 23:33       ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 08/21] Xen-paravirt: Allow paravirt backend to choose kernel PMD sharing Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 09/21] Xen-paravirt: Allow paravirt backend to select PGD allocation alignment Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  2:24 ` [patch 10/21] Xen-paravirt: add hooks to intercept mm creation and destruction Jeremy Fitzhardinge
2007-02-16  2:24   ` Jeremy Fitzhardinge
2007-02-16  6:34   ` Andrew Morton
2007-02-16  6:34     ` Andrew Morton
2007-02-16  6:55     ` Jeremy Fitzhardinge
2007-02-16  6:55       ` Jeremy Fitzhardinge
2007-02-22 20:16   ` Pavel Machek
2007-02-22 20:21     ` Jeremy Fitzhardinge
2007-02-22 20:21       ` Jeremy Fitzhardinge
2007-02-22 20:23     ` Jeremy Fitzhardinge
2007-02-22 20:23       ` Jeremy Fitzhardinge
2007-02-16  2:25 ` [patch 11/21] Xen-paravirt: Add apply_to_page_range() which applies a function to a pte range Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  6:37   ` Andrew Morton
2007-02-16  6:37     ` Andrew Morton
2007-02-16  7:06     ` Jeremy Fitzhardinge
2007-02-16  7:06       ` Jeremy Fitzhardinge
2007-02-16  7:19       ` Andrew Morton
2007-02-16  7:19         ` Andrew Morton
2007-02-16  7:23         ` Jeremy Fitzhardinge
2007-02-16  7:23           ` Jeremy Fitzhardinge
2007-02-16  7:31     ` Nick Piggin [this message]
2007-02-16  7:31       ` Nick Piggin
2007-02-16  2:25 ` [patch 12/21] Xen-paravirt: Allocate and free vmalloc areas Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  6:43   ` Andrew Morton
2007-02-16  6:43     ` Andrew Morton
2007-02-16  7:08     ` Jeremy Fitzhardinge
2007-02-16  7:08       ` Jeremy Fitzhardinge
2007-02-16  7:24       ` Andrew Morton
2007-02-16  7:24         ` Andrew Morton
2007-02-16  7:30         ` Jeremy Fitzhardinge
2007-02-16  7:30           ` Jeremy Fitzhardinge
2007-02-16  7:49           ` Andrew Morton
2007-02-16  7:49             ` Andrew Morton
2007-02-16  9:18           ` Andi Kleen
2007-02-16  9:18             ` Andi Kleen
2007-02-16 11:10             ` [Xen-devel] " Keir Fraser
2007-02-16 11:10             ` Keir Fraser
2007-02-16 11:34               ` Andi Kleen
2007-02-16 11:34                 ` [Xen-devel] " Andi Kleen
2007-02-16 11:10             ` Keir Fraser
2007-02-16 16:46             ` Jeremy Fitzhardinge
2007-02-16 16:46               ` Jeremy Fitzhardinge
2007-02-16 17:10               ` [Xen-devel] " Keir Fraser
2007-02-16 17:10               ` Keir Fraser
2007-02-16 17:10               ` Keir Fraser
2007-02-16 17:12                 ` Keir Fraser
2007-02-16 17:27                   ` Jeremy Fitzhardinge
2007-02-16 17:27                     ` [Xen-devel] " Jeremy Fitzhardinge
2007-02-16 19:06                     ` Keir Fraser
2007-02-16 19:06                     ` Keir Fraser
2007-02-16 19:06                     ` Keir Fraser
2007-02-16 19:19                       ` Keir Fraser
2007-02-16 19:19                         ` [Xen-devel] " Keir Fraser
2007-02-16 19:26                         ` Jeremy Fitzhardinge
2007-02-16 19:26                           ` [Xen-devel] " Jeremy Fitzhardinge
2007-02-16 23:29                           ` Keir Fraser
2007-02-16 23:29                             ` [Xen-devel] " Keir Fraser
2007-02-16 23:41                             ` Jeremy Fitzhardinge
2007-02-16 23:41                               ` [Xen-devel] " Jeremy Fitzhardinge
2007-02-16 17:12                 ` Keir Fraser
2007-02-16 17:12                 ` Keir Fraser
2007-02-16 17:26                 ` Hollis Blanchard
2007-02-16 17:26                   ` [Xen-devel] " Hollis Blanchard
2007-02-16  7:48         ` Nick Piggin
2007-02-16  2:25 ` [patch 13/21] Xen-paravirt: Add nosegneg capability to the vsyscall page notes Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  6:06   ` Zachary Amsden
2007-02-16  6:06     ` Zachary Amsden
2007-02-16  2:25 ` [patch 14/21] Xen-paravirt: Add XEN config options and disable unsupported config options Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  6:14   ` Dan Hecht
2007-02-16  7:04     ` Jeremy Fitzhardinge
2007-02-16  7:04       ` Jeremy Fitzhardinge
2007-02-16  7:52       ` Dan Hecht
2007-02-16  8:05         ` Jeremy Fitzhardinge
2007-02-16  8:05           ` Jeremy Fitzhardinge
2007-02-16  8:37           ` Dan Hecht
2007-02-16 10:49             ` Keir Fraser
2007-02-16 10:49             ` Keir Fraser
2007-02-16 10:49             ` Keir Fraser
2007-02-16  7:06     ` Andrew Morton
2007-02-16  7:06       ` Andrew Morton
2007-02-16  7:25       ` Jeremy Fitzhardinge
2007-02-16  7:25         ` Jeremy Fitzhardinge
2007-02-16 10:09         ` Keir Fraser
2007-02-16 10:09           ` Keir Fraser
2007-02-16 10:19           ` Zachary Amsden
2007-02-16 10:19             ` [Xen-devel] " Zachary Amsden
2007-02-16 10:44             ` Keir Fraser
2007-02-16 10:44               ` Keir Fraser
2007-02-16 10:55               ` Zachary Amsden
2007-02-16 10:55                 ` [Xen-devel] " Zachary Amsden
2007-02-17  4:04             ` Rusty Russell
2007-02-17  4:04               ` [Xen-devel] " Rusty Russell
2007-02-16  6:15   ` Zachary Amsden
2007-02-16  6:15     ` Zachary Amsden
2007-02-16  7:33     ` Eric W. Biederman
2007-02-16  7:33       ` Eric W. Biederman
2007-02-16  8:14       ` Ian Campbell
2007-02-16  8:14         ` Ian Campbell
2007-02-16  8:24         ` Eric W. Biederman
2007-02-16  8:24           ` Eric W. Biederman
2007-02-16  8:31           ` Zachary Amsden
2007-02-16  8:31             ` Zachary Amsden
2007-02-16 13:53       ` Gerd Hoffmann
2007-02-16 13:53         ` [Xen-devel] " Gerd Hoffmann
2007-02-18 11:32     ` Avi Kivity
2007-02-18 11:32       ` Avi Kivity
2007-02-16  2:25 ` [patch 15/21] Xen-paravirt: Add Xen interface header files Jeremy Fitzhardinge
2007-02-16  2:25 ` [patch 16/21] Xen-paravirt: Core Xen implementation Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  2:25 ` [patch 17/21] Xen-paravirt: Add the Xen virtual console driver Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  6:48   ` Andrew Morton
2007-02-16  6:48     ` Andrew Morton
2007-02-16  2:25 ` [patch 18/21] Xen-paravirt: Add Xen grant table support Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  6:52   ` Andrew Morton
2007-02-16  6:52     ` Andrew Morton
2007-02-16  6:58     ` Jeremy Fitzhardinge
2007-02-16  6:58       ` Jeremy Fitzhardinge
2007-02-16  2:25 ` [patch 19/21] Xen-paravirt: Add the Xenbus sysfs and virtual device hotplug driver Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  2:25 ` [patch 20/21] Xen-paravirt: Add Xen virtual block device driver Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  2:25 ` [patch 21/21] Xen-paravirt: Add the Xen virtual network " Jeremy Fitzhardinge
2007-02-16  2:25   ` Jeremy Fitzhardinge
2007-02-16  6:59 ` [patch 00/21] Xen-paravirt: Xen guest implementation for paravirt_ops interface Andrew Morton
2007-02-16  6:59   ` Andrew Morton
2007-02-16  7:20   ` Jeremy Fitzhardinge
2007-02-16  7:20     ` Jeremy Fitzhardinge
2007-02-16 20:49 ` Christoph Lameter
2007-02-16 21:04   ` Zachary Amsden
2007-02-16 21:04     ` Zachary Amsden
2007-02-16 21:13     ` Christoph Lameter
2007-02-16 21:48       ` Zachary Amsden
2007-02-16 21:48         ` Zachary Amsden
2007-02-16 21:59         ` Christoph Lameter
2007-02-16 21:59           ` Christoph Lameter
2007-02-16 22:10           ` Zachary Amsden
2007-02-17 13:51           ` Andi Kleen
2007-02-17 13:51             ` Andi Kleen
2007-02-21 18:37             ` Christoph Lameter
2007-02-21 18:55               ` Zachary Amsden
2007-02-21 18:55                 ` Zachary Amsden
2007-02-21 20:02               ` Jeremy Fitzhardinge
2007-02-21 20:02                 ` Jeremy Fitzhardinge
2007-02-17  5:05         ` Rusty Russell
2007-02-17  5:05           ` Rusty Russell
2007-02-16 23:49   ` Jeremy Fitzhardinge
2007-02-16 23:49     ` Jeremy Fitzhardinge
2007-02-17  4:58   ` Rusty Russell
2007-02-17  4:58     ` Rusty Russell
  -- strict thread matches above, loose matches on Subject: below --
2007-02-13 22:17 Jeremy Fitzhardinge
2007-02-13 22:17 ` [patch 11/21] Xen-paravirt: Add apply_to_page_range() which applies a function to a pte range Jeremy Fitzhardinge

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=45D55DC2.3070703@yahoo.com.au \
    --to=nickpiggin@yahoo.com.au \
    --cc=Christian.Limpach@cl.cam.ac.uk \
    --cc=ak@muc.de \
    --cc=akpm@linux-foundation.org \
    --cc=chrisw@sous-sol.org \
    --cc=clameter@sgi.com \
    --cc=ian.pratt@xensource.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rientjes@google.com \
    --cc=virtualization@lists.osdl.org \
    --cc=xen-devel@lists.xensource.com \
    --cc=zach@vmware.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 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.