mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Dave Hansen <hansendc@us.ibm.com>
To: Matt Mackall <mpm@selenic.com>
Cc: Andrew Morton <akpm@linux-foundation.org>, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 12/13] maps#2: Add /proc/pid/pagemap interface
Date: Thu, 19 Apr 2007 12:12:29 -0700	[thread overview]
Message-ID: <1177009949.12599.154.camel@localhost.localdomain> (raw)
In-Reply-To: <13.469046093@selenic.com>

On Fri, 2007-04-06 at 17:03 -0500, Matt Mackall wrote:
> 
> +static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned
> long end,
> +                            void *private)
> +{
> +       struct pagemapread *pm = private;
> +       pte_t *pte;
> +       int err;
> +
> +       pte = pte_offset_map(pmd, addr);
> +       for (; addr != end; pte++, addr += PAGE_SIZE) {
> +               if (addr < pm->next)
> +                       continue;
> +               if (!pte_present(*pte))
> +                       err = add_to_pagemap(addr, -1, pm);
> +               else
> +                       err = add_to_pagemap(addr, pte_pfn(*pte), pm);
> +               if (err)
> +                       return err;
> +       }
> +       pte_unmap(pte - 1);
> +       return 0;
> +} 

Sorry for the horribly late reply. ;)

Would you have any problems with this being extended for the !
pte_present() case to show pages that happen to be in swap?

I'm playing with some process checkpoint/restart code, and using the
existing swap mechanisms to get the current memory contents out of the
process.  I've also created a hackish syscall to make a pretty raw dump
of pte contents.

Perhaps we could steal the high bits of the pfn and have its presence in
swap, plus some handle to which swapfile it is in.  Or, would you rather
I just create a new /proc file that utilizes most of the code you
already put in place, and _just_ deals with swap?

-- Dave


  parent reply	other threads:[~2007-04-19 19:12 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-06 22:03 [PATCH 0/13] maps#2: pagemap, kpagemap, and related cleanups take 2 Matt Mackall
2007-04-06 22:03 ` [PATCH 1/13] maps#2: Uninline some functions in the page walker Matt Mackall
2007-04-06 22:03 ` [PATCH 2/13] maps#2: Eliminate the pmd_walker struct " Matt Mackall
2007-04-06 22:03 ` [PATCH 3/13] maps#2: Remove vma from args " Matt Mackall
2007-04-06 22:03 ` [PATCH 4/13] maps#2: Propagate errors from callback in " Matt Mackall
2007-04-06 22:03 ` [PATCH 5/13] maps#2: Add callbacks for each level to " Matt Mackall
2007-04-06 22:03 ` [PATCH 6/13] maps#2: Move the page walker code to lib/ Matt Mackall
2007-04-11  6:35   ` Nick Piggin
2007-04-11  7:17     ` Andrew Morton
2007-04-11  7:33       ` Nick Piggin
2007-04-11 14:40     ` Matt Mackall
2007-04-12  6:38       ` Nick Piggin
2007-04-17 20:45     ` Matt Mackall
2007-04-17 21:26       ` Permanent Kgdb integration into the kernel - lets get with it Jason Wessel
2007-04-17 22:09         ` Andi Kleen
2007-04-06 22:03 ` [PATCH 7/13] maps#2: Simplify interdependence of /proc/pid/maps and smaps Matt Mackall
2007-04-06 22:03 ` [PATCH 8/13] maps#2: Move clear_refs code to task_mmu.c Matt Mackall
2007-04-06 22:03 ` [PATCH 9/13] maps#2: Regroup task_mmu by interface Matt Mackall
2007-04-06 22:03 ` [PATCH 10/13] maps#2: Make /proc/pid/smaps optional under CONFIG_EMBEDDED Matt Mackall
2007-04-06 22:03 ` [PATCH 11/13] maps#2: Make /proc/pid/clear_refs option " Matt Mackall
2007-04-07  5:41   ` David Rientjes
2007-04-06 22:03 ` [PATCH 12/13] maps#2: Add /proc/pid/pagemap interface Matt Mackall
2007-04-07  6:55   ` Andrew Morton
2007-04-07 16:36     ` Matt Mackall
2007-04-19 19:12   ` Dave Hansen [this message]
2007-04-19 19:58     ` Matt Mackall
2007-04-06 22:03 ` [PATCH 13/13] maps#2: Add /proc/kpagemap interface Matt Mackall
2007-04-19 19:06   ` Dave Hansen
2007-04-19 20:02     ` Matt Mackall
2007-04-19 20:25       ` Dave Hansen

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=1177009949.12599.154.camel@localhost.localdomain \
    --to=hansendc@us.ibm.com \
    --cc=akpm@linux-foundation.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

Powered by JetHome