From: Matt Mackall <mpm@selenic.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Chris Wright <chrisw@sous-sol.org>,
virtualization@lists.osdl.org, Matt Mackall <mpm@waste.org>,
Ingo Molnar <mingo@elte.hu>, Ian Pratt <ian.pratt@xensource.com>,
lkml <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Christoph Lameter <clameter@sgi.com>
Subject: Re: [patch 20/20] Add apply_to_page_range() which applies a function to a pte range.
Date: Tue, 17 Apr 2007 15:56:52 -0500 [thread overview]
Message-ID: <20070417205652.GM11115@waste.org> (raw)
In-Reply-To: <46149CC9.2070903@goop.org>
On Wed, Apr 04, 2007 at 11:52:57PM -0700, Jeremy Fitzhardinge wrote:
> Matt Mackall wrote:
> >> +/*
> >> + * Scan a region of virtual memory, filling in page tables as necessary
> >> + * and calling a provided function on each leaf page table.
> >> + */
> >>
> >
> > But I'm not sure what the use case is that wants filling in the page
> > table..? If both modes really make sense, perhaps a flag could unify
> > these differences.
> >
>
> Well, two reasons:
>
> One is the general one that if you're traversing ptes then they need to
> exist to traverse them (for example, if you're creating new mappings).
> Obviously if you want to just visit existing mappings, then
> instantiating new pagetable is not the right thing to do (and I could
> make use of this too).
>
> The other is that there are various places in the Xen hypervisor API
> where you pass in a reference to pte entry for the hypervisor to put
> mappings into, and the rest of the pagetable needs to exist. The Xen
> code uses the side-effect of apply_to_page_range() to create pagetable
> for these calls.
I think adding a flags field and an allocate flag to my callback
struct would be sufficient here.
> > I'd gotten the impression that these sorts of typedefs were out of
> > fashion.
> >
>
> In general yes, but for function pointers the syntax is so clumsy that I
> think typedefs are OK.
The syntax is horrible, but I don't think we end up using the
resultant type enough to justify the namespace pollution.
--
Mathematics is the supreme nostalgia of our time.
WARNING: multiple messages have this Message-ID (diff)
From: Matt Mackall <mpm@selenic.com>
To: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Andi Kleen <ak@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
virtualization@lists.osdl.org,
lkml <linux-kernel@vger.kernel.org>,
Ian Pratt <ian.pratt@xensource.com>,
Christian Limpach <Christian.Limpach@cl.cam.ac.uk>,
Chris Wright <chrisw@sous-sol.org>,
Christoph Lameter <clameter@sgi.com>,
Matt Mackall <mpm@waste.org>, Ingo Molnar <mingo@elte.hu>
Subject: Re: [patch 20/20] Add apply_to_page_range() which applies a function to a pte range.
Date: Tue, 17 Apr 2007 15:56:52 -0500 [thread overview]
Message-ID: <20070417205652.GM11115@waste.org> (raw)
In-Reply-To: <46149CC9.2070903@goop.org>
On Wed, Apr 04, 2007 at 11:52:57PM -0700, Jeremy Fitzhardinge wrote:
> Matt Mackall wrote:
> >> +/*
> >> + * Scan a region of virtual memory, filling in page tables as necessary
> >> + * and calling a provided function on each leaf page table.
> >> + */
> >>
> >
> > But I'm not sure what the use case is that wants filling in the page
> > table..? If both modes really make sense, perhaps a flag could unify
> > these differences.
> >
>
> Well, two reasons:
>
> One is the general one that if you're traversing ptes then they need to
> exist to traverse them (for example, if you're creating new mappings).
> Obviously if you want to just visit existing mappings, then
> instantiating new pagetable is not the right thing to do (and I could
> make use of this too).
>
> The other is that there are various places in the Xen hypervisor API
> where you pass in a reference to pte entry for the hypervisor to put
> mappings into, and the rest of the pagetable needs to exist. The Xen
> code uses the side-effect of apply_to_page_range() to create pagetable
> for these calls.
I think adding a flags field and an allocate flag to my callback
struct would be sufficient here.
> > I'd gotten the impression that these sorts of typedefs were out of
> > fashion.
> >
>
> In general yes, but for function pointers the syntax is so clumsy that I
> think typedefs are OK.
The syntax is horrible, but I don't think we end up using the
resultant type enough to justify the namespace pollution.
--
Mathematics is the supreme nostalgia of our time.
next prev parent reply other threads:[~2007-04-17 20:56 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-04 19:11 [patch 00/20] paravirt_ops updates Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-04 19:11 ` [patch 01/20] update MAINTAINERS Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-04 19:11 ` [patch 02/20] Remove CONFIG_DEBUG_PARAVIRT Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-04 19:11 ` [patch 03/20] use paravirt_nop to consistently mark no-op operations Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-04 19:11 ` [patch 04/20] Add pagetable accessors to pack and unpack pagetable entries Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-04 19:11 ` [patch 05/20] Hooks to set up initial pagetable Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-04 19:11 ` [patch 06/20] Allocate a fixmap slot Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-04 19:11 ` [patch 07/20] Allow paravirt backend to choose kernel PMD sharing Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-05 0:30 ` Christoph Lameter
2007-04-05 0:43 ` Jeremy Fitzhardinge
2007-04-05 1:29 ` Chris Wright
2007-04-06 23:41 ` Andrew Morton
2007-04-06 23:41 ` Andrew Morton
2007-04-07 0:02 ` Jeremy Fitzhardinge
2007-04-07 0:02 ` Jeremy Fitzhardinge
2007-04-07 0:28 ` Andrew Morton
2007-04-07 0:40 ` Jeremy Fitzhardinge
2007-04-07 0:40 ` Jeremy Fitzhardinge
2007-04-07 1:21 ` Andrew Morton
2007-04-07 5:47 ` Jeremy Fitzhardinge
2007-04-09 2:36 ` William Lee Irwin III
2007-04-04 19:11 ` [patch 08/20] add hooks to intercept mm creation and destruction Jeremy Fitzhardinge
2007-04-04 19:11 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 09/20] rename struct paravirt_patch to paravirt_patch_site for clarity Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-06 23:18 ` Andrew Morton
2007-04-06 23:18 ` Andrew Morton
2007-04-06 23:24 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 10/20] Use patch site IDs computed from offset in paravirt_ops structure Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 11/20] Fix patch site clobbers to include return register Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 12/20] Consistently wrap paravirt ops callsites to make them patchable Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 13/20] Document asm-i386/paravirt.h Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 14/20] add common patching machinery Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 15/20] add flush_tlb_others paravirt_op Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 16/20] revert map_pt_hook Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 17/20] add kmap_atomic_pte for mapping highpte pages Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 18/20] clean up tsc-based sched_clock Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-06 23:22 ` Andrew Morton
2007-04-06 23:27 ` Jeremy Fitzhardinge
2007-04-06 23:45 ` Andrew Morton
2007-04-06 23:40 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 19/20] Add a sched_clock paravirt_op Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-04 19:12 ` [patch 20/20] Add apply_to_page_range() which applies a function to a pte range Jeremy Fitzhardinge
2007-04-04 19:12 ` Jeremy Fitzhardinge
2007-04-05 4:41 ` Matt Mackall
2007-04-05 4:41 ` Matt Mackall
2007-04-05 6:52 ` Jeremy Fitzhardinge
2007-04-05 6:52 ` Jeremy Fitzhardinge
2007-04-17 20:56 ` Matt Mackall [this message]
2007-04-17 20:56 ` Matt Mackall
2007-04-19 19:44 ` Jeremy Fitzhardinge
2007-04-19 19:59 ` Matt Mackall
2007-04-19 19:59 ` Matt Mackall
2007-04-19 21:37 ` Jeremy Fitzhardinge
2007-04-19 21:37 ` Jeremy Fitzhardinge
2007-04-19 21:30 ` Matt Mackall
2007-04-19 21:30 ` Matt Mackall
2007-04-19 22:30 ` 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=20070417205652.GM11115@waste.org \
--to=mpm@selenic.com \
--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=mingo@elte.hu \
--cc=mpm@waste.org \
--cc=virtualization@lists.osdl.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.