lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 1 May 2012 13:39:50 -0400
From:	KOSAKI Motohiro <kosaki.motohiro@...il.com>
To:	Konstantin Khlebnikov <khlebnikov@...nvz.org>
Cc:	linux-mm@...ck.org, linux-kernel@...r.kernel.org,
	Andrew Morton <akpm@...ux-foundation.org>
Subject: Re: [PATCH RFC 2/3] proc/smaps: show amount of nonlinear ptes in vma

On Mon, Apr 30, 2012 at 7:29 AM, Konstantin Khlebnikov
<khlebnikov@...nvz.org> wrote:
> Currently, nonlinear mappings can not be distinguished from ordinary mappings.
> This patch adds into /proc/pid/smaps line "Nonlinear: <size> kB", where size is
> amount of nonlinear ptes in vma, this line appears only if VM_NONLINEAR is set.
> This information may be useful not only for checkpoint/restore project.
>
> Signed-off-by: Konstantin Khlebnikov <khlebnikov@...nvz.org>
> Requested-by: Pavel Emelyanov <xemul@...allels.com>
> ---
>  fs/proc/task_mmu.c |   12 ++++++++++++
>  1 file changed, 12 insertions(+)
>
> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
> index acee5fd..b1d9729 100644
> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -393,6 +393,7 @@ struct mem_size_stats {
>        unsigned long anonymous;
>        unsigned long anonymous_thp;
>        unsigned long swap;
> +       unsigned long nonlinear;
>        u64 pss;
>  };
>
> @@ -402,6 +403,7 @@ static void smaps_pte_entry(pte_t ptent, unsigned long addr,
>  {
>        struct mem_size_stats *mss = walk->private;
>        struct vm_area_struct *vma = mss->vma;
> +       pgoff_t pgoff = linear_page_index(vma, addr);
>        struct page *page = NULL;
>        int mapcount;
>
> @@ -414,6 +416,9 @@ static void smaps_pte_entry(pte_t ptent, unsigned long addr,
>                        mss->swap += ptent_size;
>                else if (is_migration_entry(swpent))
>                        page = migration_entry_to_page(swpent);
> +       } else if (pte_file(ptent)) {
> +               if (pte_to_pgoff(ptent) != pgoff)
> +                       mss->nonlinear += ptent_size;

I think this is not equal to our non linear mapping definition. Even if
pgoff is equal to linear mapping case, it is non linear. I.e. nonlinear is
vma attribute. Why do you want to introduce different definition?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ