All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konstantin Khlebnikov <khlebnikov@openvz.org>
To: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH RFC 2/3] proc/smaps: show amount of nonlinear ptes in vma
Date: Tue, 01 May 2012 21:56:52 +0400	[thread overview]
Message-ID: <4FA023E4.7000602@openvz.org> (raw)
In-Reply-To: <CAHGf_=pfiFJ4N3bN_c29UpffqkzDY_priBYBuEOCyPJ13JVecw@mail.gmail.com>

KOSAKI Motohiro wrote:
> On Mon, Apr 30, 2012 at 7:29 AM, Konstantin Khlebnikov
> <khlebnikov@openvz.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@openvz.org>
>> Requested-by: Pavel Emelyanov<xemul@parallels.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?

VMA attribute can be determined via presence of this field,
without VM_NONLINEAR it does not appears.

--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: Konstantin Khlebnikov <khlebnikov@openvz.org>
To: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH RFC 2/3] proc/smaps: show amount of nonlinear ptes in vma
Date: Tue, 01 May 2012 21:56:52 +0400	[thread overview]
Message-ID: <4FA023E4.7000602@openvz.org> (raw)
In-Reply-To: <CAHGf_=pfiFJ4N3bN_c29UpffqkzDY_priBYBuEOCyPJ13JVecw@mail.gmail.com>

KOSAKI Motohiro wrote:
> On Mon, Apr 30, 2012 at 7:29 AM, Konstantin Khlebnikov
> <khlebnikov@openvz.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@openvz.org>
>> Requested-by: Pavel Emelyanov<xemul@parallels.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?

VMA attribute can be determined via presence of this field,
without VM_NONLINEAR it does not appears.

  reply	other threads:[~2012-05-01 17:56 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-30 11:29 [PATCH RFC 1/3] proc/smaps: carefully handle migration entries Konstantin Khlebnikov
2012-04-30 11:29 ` Konstantin Khlebnikov
2012-04-30 11:29 ` [PATCH RFC 2/3] proc/smaps: show amount of nonlinear ptes in vma Konstantin Khlebnikov
2012-04-30 11:29   ` Konstantin Khlebnikov
2012-05-01 17:39   ` KOSAKI Motohiro
2012-05-01 17:39     ` KOSAKI Motohiro
2012-05-01 17:56     ` Konstantin Khlebnikov [this message]
2012-05-01 17:56       ` Konstantin Khlebnikov
2012-05-01 18:08       ` KOSAKI Motohiro
2012-05-01 18:08         ` KOSAKI Motohiro
2012-04-30 11:29 ` [PATCH RFC 3/3] proc/smaps: show amount of hwpoison pages Konstantin Khlebnikov
2012-04-30 11:29   ` Konstantin Khlebnikov
2012-05-01 17:35   ` KOSAKI Motohiro
2012-05-01 17:35     ` KOSAKI Motohiro
2012-05-01 18:05     ` Konstantin Khlebnikov
2012-05-01 18:05       ` Konstantin Khlebnikov
2012-05-01 18:14       ` KOSAKI Motohiro
2012-05-01 18:14         ` KOSAKI Motohiro
2012-05-31 20:12         ` Andrew Morton
2012-05-31 20:12           ` Andrew Morton
2012-05-01 18:29   ` Andi Kleen
2012-05-01 18:29     ` Andi Kleen

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=4FA023E4.7000602@openvz.org \
    --to=khlebnikov@openvz.org \
    --cc=akpm@linux-foundation.org \
    --cc=kosaki.motohiro@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.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.