From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
To: Jerome Marchand <jmarchan@redhat.com>,
Konstantin Khlebnikov <koct9i@gmail.com>,
Vlastimil Babka <vbabka@suse.cz>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-doc@vger.kernel.org, Hugh Dickins <hughd@google.com>,
Michal Hocko <mhocko@suse.cz>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Cyrill Gorcunov <gorcunov@openvz.org>,
Randy Dunlap <rdunlap@infradead.org>,
linux-s390@vger.kernel.org,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Peter Zijlstra <peterz@infradead.org>,
Paul Mackerras <paulus@samba.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Oleg Nesterov <oleg@redhat.com>
Subject: Re: [PATCH 2/4] mm, procfs: account for shmem swap in /proc/pid/smaps
Date: Wed, 11 Mar 2015 19:31:00 +0300 [thread overview]
Message-ID: <55006DC4.2020002@yandex-team.ru> (raw)
In-Reply-To: <55005EBA.8080201@redhat.com>
On 11.03.2015 18:26, Jerome Marchand wrote:
> On 03/11/2015 04:03 PM, Konstantin Khlebnikov wrote:
>> On 11.03.2015 15:30, Konstantin Khlebnikov wrote:
>>> On Thu, Feb 26, 2015 at 4:51 PM, Vlastimil Babka <vbabka@suse.cz> wrote:
>>>> Currently, /proc/pid/smaps will always show "Swap: 0 kB" for
>>>> shmem-backed
>>>> mappings, even if the mapped portion does contain pages that were
>>>> swapped out.
>>>> This is because unlike private anonymous mappings, shmem does not
>>>> change pte
>>>> to swap entry, but pte_none when swapping the page out. In the smaps
>>>> page
>>>> walk, such page thus looks like it was never faulted in.
>>>
>>> Maybe just add count of swap entries allocated by mapped shmem into
>>> swap usage of this vma? That's isn't exactly correct for partially
>>> mapped shmem but this is something weird anyway.
>>
>> Something like that (see patch in attachment)
>>
>
> -8<---
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index cf2d0ca010bc..492f78f51fc2 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -1363,6 +1363,13 @@ static struct mempolicy *shmem_get_policy(struct
> vm_area_struct *vma,
> }
> #endif
>
> +static unsigned long shmem_get_swap_usage(struct vm_area_struct *vma)
> +{
> + struct inode *inode = file_inode(vma->vm_file);
> +
> + return SHMEM_I(inode)->swapped;
> +}
> +
> int shmem_lock(struct file *file, int lock, struct user_struct *user)
> {
> struct inode *inode = file_inode(file);
>
> -8<---
>
> That will not work for shared anonymous mapping since they all share the
> same vm_file (/dev/zero).
Nope. They have different files and inodes.
They're just called "/dev/zero (deleted)".
>
> Jerome
>
--
Konstantin
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
To: Jerome Marchand <jmarchan@redhat.com>,
Konstantin Khlebnikov <koct9i@gmail.com>,
Vlastimil Babka <vbabka@suse.cz>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
linux-doc@vger.kernel.org, Hugh Dickins <hughd@google.com>,
Michal Hocko <mhocko@suse.cz>,
"Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Cyrill Gorcunov <gorcunov@openvz.org>,
Randy Dunlap <rdunlap@infradead.org>,
linux-s390@vger.kernel.org,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
Peter Zijlstra <peterz@infradead.org>,
Paul Mackerras <paulus@samba.org>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
Oleg Nesterov <oleg@redhat.com>
Subject: Re: [PATCH 2/4] mm, procfs: account for shmem swap in /proc/pid/smaps
Date: Wed, 11 Mar 2015 19:31:00 +0300 [thread overview]
Message-ID: <55006DC4.2020002@yandex-team.ru> (raw)
In-Reply-To: <55005EBA.8080201@redhat.com>
On 11.03.2015 18:26, Jerome Marchand wrote:
> On 03/11/2015 04:03 PM, Konstantin Khlebnikov wrote:
>> On 11.03.2015 15:30, Konstantin Khlebnikov wrote:
>>> On Thu, Feb 26, 2015 at 4:51 PM, Vlastimil Babka <vbabka@suse.cz> wrote:
>>>> Currently, /proc/pid/smaps will always show "Swap: 0 kB" for
>>>> shmem-backed
>>>> mappings, even if the mapped portion does contain pages that were
>>>> swapped out.
>>>> This is because unlike private anonymous mappings, shmem does not
>>>> change pte
>>>> to swap entry, but pte_none when swapping the page out. In the smaps
>>>> page
>>>> walk, such page thus looks like it was never faulted in.
>>>
>>> Maybe just add count of swap entries allocated by mapped shmem into
>>> swap usage of this vma? That's isn't exactly correct for partially
>>> mapped shmem but this is something weird anyway.
>>
>> Something like that (see patch in attachment)
>>
>
> -8<---
>
> diff --git a/mm/shmem.c b/mm/shmem.c
> index cf2d0ca010bc..492f78f51fc2 100644
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -1363,6 +1363,13 @@ static struct mempolicy *shmem_get_policy(struct
> vm_area_struct *vma,
> }
> #endif
>
> +static unsigned long shmem_get_swap_usage(struct vm_area_struct *vma)
> +{
> + struct inode *inode = file_inode(vma->vm_file);
> +
> + return SHMEM_I(inode)->swapped;
> +}
> +
> int shmem_lock(struct file *file, int lock, struct user_struct *user)
> {
> struct inode *inode = file_inode(file);
>
> -8<---
>
> That will not work for shared anonymous mapping since they all share the
> same vm_file (/dev/zero).
Nope. They have different files and inodes.
They're just called "/dev/zero (deleted)".
>
> Jerome
>
--
Konstantin
next prev parent reply other threads:[~2015-03-11 16:31 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-26 13:51 [PATCH 0/4] enhance shmem process and swap accounting Vlastimil Babka
2015-02-26 13:51 ` Vlastimil Babka
2015-02-26 13:51 ` [PATCH 1/4] mm, documentation: clarify /proc/pid/status VmSwap limitations Vlastimil Babka
2015-02-26 13:51 ` Vlastimil Babka
2015-02-27 10:37 ` Michael Kerrisk
2015-02-27 10:37 ` Michael Kerrisk
2015-02-26 13:51 ` [PATCH 2/4] mm, procfs: account for shmem swap in /proc/pid/smaps Vlastimil Babka
2015-02-26 13:51 ` Vlastimil Babka
2015-02-26 14:39 ` Jerome Marchand
2015-02-27 10:38 ` Michael Kerrisk
2015-02-27 10:38 ` Michael Kerrisk
2015-03-11 12:30 ` Konstantin Khlebnikov
2015-03-11 12:30 ` Konstantin Khlebnikov
2015-03-11 15:03 ` Konstantin Khlebnikov
2015-03-11 15:26 ` Jerome Marchand
2015-03-11 16:31 ` Konstantin Khlebnikov [this message]
2015-03-11 16:31 ` Konstantin Khlebnikov
2015-03-11 19:10 ` Vlastimil Babka
2015-03-11 19:10 ` Vlastimil Babka
2015-03-11 20:03 ` Konstantin Khlebnikov
2015-03-11 20:03 ` Konstantin Khlebnikov
2015-02-26 13:51 ` [PATCH 3/4] mm, shmem: Add shmem resident memory accounting Vlastimil Babka
2015-02-26 13:51 ` Vlastimil Babka
2015-02-26 14:59 ` Jerome Marchand
2015-03-27 16:39 ` Vlastimil Babka
2015-03-27 16:39 ` Vlastimil Babka
2015-02-27 10:38 ` Michael Kerrisk
2015-02-27 10:38 ` Michael Kerrisk
2015-02-26 13:51 ` [PATCH 4/4] mm, procfs: Display VmAnon, VmFile and VmShm in /proc/pid/status Vlastimil Babka
2015-02-26 13:51 ` Vlastimil Babka
2015-02-27 10:38 ` Michael Kerrisk
2015-02-27 10:38 ` Michael Kerrisk
2015-02-27 10:36 ` [PATCH 0/4] enhance shmem process and swap accounting Michael Kerrisk
2015-02-27 10:36 ` Michael Kerrisk
[not found] ` <CAHO5Pa0xmquUbzkZvow_PxRGZpA7MVEPFcRL2LPXv7hU41uxDw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-02-27 10:52 ` Vlastimil Babka
2015-02-27 10:52 ` Vlastimil Babka
2015-02-27 10:52 ` Vlastimil Babka
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=55006DC4.2020002@yandex-team.ru \
--to=khlebnikov@yandex-team.ru \
--cc=acme@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=gorcunov@openvz.org \
--cc=heiko.carstens@de.ibm.com \
--cc=hughd@google.com \
--cc=jmarchan@redhat.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=koct9i@gmail.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=mhocko@suse.cz \
--cc=oleg@redhat.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=schwidefsky@de.ibm.com \
--cc=vbabka@suse.cz \
/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.