All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konstantin Khlebnikov <khlebnikov@openvz.org>
To: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>, Hugh Dickins <hughd@google.com>,
	Rik van Riel <riel@redhat.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] hugetlbfs: stop setting VM_DONTDUMP in initializing vma(VM_HUGETLB)
Date: Fri, 29 Mar 2013 16:09:36 +0400	[thread overview]
Message-ID: <51558480.7050900@openvz.org> (raw)
In-Reply-To: <515526EA.3090807@openvz.org>

Konstantin Khlebnikov wrote:
> Naoya Horiguchi wrote:
>> On Thu, Mar 28, 2013 at 09:03:16PM +0400, Konstantin Khlebnikov wrote:
>>> Naoya Horiguchi wrote:
>>>> Currently we fail to include any data on hugepages into coredump,
>>>> because VM_DONTDUMP is set on hugetlbfs's vma. This behavior was recently
>>>> introduced by commit 314e51b98 "mm: kill vma flag VM_RESERVED and
>>>> mm->reserved_vm counter". This looks to me a serious regression,
>>>> so let's fix it.
>>>
>>> That was introduced in my patch? Really?
>>> Here was VM_RESERVED and it had the same effect as VM_DONTDUMP. At least I thought so.
>>
>> vma_dump_size() does like this (the diff is the one in 314e51b98):
>>
>>      static unsigned long vma_dump_size(struct vm_area_struct *vma,
>>      				   unsigned long mm_flags)
>>      {
>>      #define FILTER(type)	(mm_flags&   (1UL<<   MMF_DUMP_##type))
>>
>>      	/* always dump the vdso and vsyscall sections */
>>      	if (always_dump_vma(vma))
>>      		goto whole;
>>
>>     	if (vma->vm_flags&   VM_DONTDUMP)
>>      		return 0;
>>
>>      	/* Hugetlb memory check */
>>      	if (vma->vm_flags&   VM_HUGETLB) {
>>      		if ((vma->vm_flags&   VM_SHARED)&&   FILTER(HUGETLB_SHARED))
>>      			goto whole;
>>      		if (!(vma->vm_flags&   VM_SHARED)&&   FILTER(HUGETLB_PRIVATE))
>>      			goto whole;
>>      	}
>>
>>      	/* Do not dump I/O mapped devices or special mappings */
>>     -	if (vma->vm_flags&   (VM_IO | VM_RESERVED))
>>     +	if (vma->vm_flags&   VM_IO)
>>      		return 0;
>>
>> We have hugetlb memory check after VM_DONTDUMP check, so the following
>> changed the behavior.
> 
> Ok, I missed this in my patch.
> 
>>
>>     --- a/fs/hugetlbfs/inode.c
>>     +++ b/fs/hugetlbfs/inode.c
>>     @@ -110,7 +110,7 @@ static int hugetlbfs_file_mmap(struct file *file, struct vm_area_struct *vma)
>>              * way when do_mmap_pgoff unwinds (may be important on powerpc
>>              * and ia64).
>>              */
>>     -       vma->vm_flags |= VM_HUGETLB | VM_RESERVED;
>>     +       vma->vm_flags |= VM_HUGETLB | VM_DONTEXPAND | VM_DONTDUMP;
>>             vma->vm_ops =&hugetlb_vm_ops;
>>
>>             if (vma->vm_pgoff&   (~huge_page_mask(h)>>   PAGE_SHIFT))
>>
>> I think we don't have to set VM_DONTDUMP on hugetlbfs's vma.
> 
> Acked-by: Konstantin Khlebnikov<khlebnikov@openvz.org>

hugetlb coredump filter also should be fixed in this way:

--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1154,6 +1154,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
                        goto whole;
                if (!(vma->vm_flags & VM_SHARED) && FILTER(HUGETLB_PRIVATE))
                        goto whole;
+               return 0;
        }

        /* Do not dump I/O mapped devices or special mappings */

> 
>>
>> Thanks,
>> Naoya
> 


WARNING: multiple messages have this Message-ID (diff)
From: Konstantin Khlebnikov <khlebnikov@openvz.org>
To: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Mel Gorman <mgorman@suse.de>, Hugh Dickins <hughd@google.com>,
	Rik van Riel <riel@redhat.com>,
	KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] hugetlbfs: stop setting VM_DONTDUMP in initializing vma(VM_HUGETLB)
Date: Fri, 29 Mar 2013 16:09:36 +0400	[thread overview]
Message-ID: <51558480.7050900@openvz.org> (raw)
In-Reply-To: <515526EA.3090807@openvz.org>

Konstantin Khlebnikov wrote:
> Naoya Horiguchi wrote:
>> On Thu, Mar 28, 2013 at 09:03:16PM +0400, Konstantin Khlebnikov wrote:
>>> Naoya Horiguchi wrote:
>>>> Currently we fail to include any data on hugepages into coredump,
>>>> because VM_DONTDUMP is set on hugetlbfs's vma. This behavior was recently
>>>> introduced by commit 314e51b98 "mm: kill vma flag VM_RESERVED and
>>>> mm->reserved_vm counter". This looks to me a serious regression,
>>>> so let's fix it.
>>>
>>> That was introduced in my patch? Really?
>>> Here was VM_RESERVED and it had the same effect as VM_DONTDUMP. At least I thought so.
>>
>> vma_dump_size() does like this (the diff is the one in 314e51b98):
>>
>>      static unsigned long vma_dump_size(struct vm_area_struct *vma,
>>      				   unsigned long mm_flags)
>>      {
>>      #define FILTER(type)	(mm_flags&   (1UL<<   MMF_DUMP_##type))
>>
>>      	/* always dump the vdso and vsyscall sections */
>>      	if (always_dump_vma(vma))
>>      		goto whole;
>>
>>     	if (vma->vm_flags&   VM_DONTDUMP)
>>      		return 0;
>>
>>      	/* Hugetlb memory check */
>>      	if (vma->vm_flags&   VM_HUGETLB) {
>>      		if ((vma->vm_flags&   VM_SHARED)&&   FILTER(HUGETLB_SHARED))
>>      			goto whole;
>>      		if (!(vma->vm_flags&   VM_SHARED)&&   FILTER(HUGETLB_PRIVATE))
>>      			goto whole;
>>      	}
>>
>>      	/* Do not dump I/O mapped devices or special mappings */
>>     -	if (vma->vm_flags&   (VM_IO | VM_RESERVED))
>>     +	if (vma->vm_flags&   VM_IO)
>>      		return 0;
>>
>> We have hugetlb memory check after VM_DONTDUMP check, so the following
>> changed the behavior.
> 
> Ok, I missed this in my patch.
> 
>>
>>     --- a/fs/hugetlbfs/inode.c
>>     +++ b/fs/hugetlbfs/inode.c
>>     @@ -110,7 +110,7 @@ static int hugetlbfs_file_mmap(struct file *file, struct vm_area_struct *vma)
>>              * way when do_mmap_pgoff unwinds (may be important on powerpc
>>              * and ia64).
>>              */
>>     -       vma->vm_flags |= VM_HUGETLB | VM_RESERVED;
>>     +       vma->vm_flags |= VM_HUGETLB | VM_DONTEXPAND | VM_DONTDUMP;
>>             vma->vm_ops =&hugetlb_vm_ops;
>>
>>             if (vma->vm_pgoff&   (~huge_page_mask(h)>>   PAGE_SHIFT))
>>
>> I think we don't have to set VM_DONTDUMP on hugetlbfs's vma.
> 
> Acked-by: Konstantin Khlebnikov<khlebnikov@openvz.org>

hugetlb coredump filter also should be fixed in this way:

--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1154,6 +1154,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
                        goto whole;
                if (!(vma->vm_flags & VM_SHARED) && FILTER(HUGETLB_PRIVATE))
                        goto whole;
+               return 0;
        }

        /* Do not dump I/O mapped devices or special mappings */

> 
>>
>> Thanks,
>> Naoya
> 

--
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>

  reply	other threads:[~2013-03-29 12:09 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-28 15:42 [PATCH 0/2] fix hugepage coredump Naoya Horiguchi
2013-03-28 15:42 ` [PATCH 1/2] hugetlbfs: stop setting VM_DONTDUMP in initializing vma(VM_HUGETLB) Naoya Horiguchi
2013-03-28 15:42   ` Naoya Horiguchi
2013-03-28 15:51   ` Greg KH
2013-03-28 15:51     ` Greg KH
2013-03-28 16:04     ` Naoya Horiguchi
2013-03-28 16:04       ` Naoya Horiguchi
2013-03-28 19:39       ` Ben Hutchings
2013-03-28 19:39         ` Ben Hutchings
2013-03-28 19:47         ` Naoya Horiguchi
2013-03-28 19:47           ` Naoya Horiguchi
2013-03-28 17:03   ` Konstantin Khlebnikov
2013-03-28 17:03     ` Konstantin Khlebnikov
2013-03-28 18:29     ` Naoya Horiguchi
2013-03-28 18:29       ` Naoya Horiguchi
2013-03-29  5:30       ` Konstantin Khlebnikov
2013-03-29  5:30         ` Konstantin Khlebnikov
2013-03-29 12:09         ` Konstantin Khlebnikov [this message]
2013-03-29 12:09           ` Konstantin Khlebnikov
2013-03-29 16:59           ` Naoya Horiguchi
2013-03-29 16:59             ` Naoya Horiguchi
2013-03-29 13:47   ` Michal Hocko
2013-03-29 13:47     ` Michal Hocko
2013-03-28 15:42 ` [PATCH 2/2] hugetlbfs: add swap entry check in follow_hugetlb_page() Naoya Horiguchi
2013-03-28 15:42   ` Naoya Horiguchi
2013-03-29 13:57   ` Michal Hocko
2013-03-29 13:57     ` Michal Hocko
2013-03-29 17:23     ` Naoya Horiguchi
2013-03-29 17:23       ` Naoya Horiguchi
2013-04-02  9:24       ` Michal Hocko
2013-04-02  9:24         ` Michal Hocko
2013-04-02 14:35         ` Naoya Horiguchi
2013-04-02 14:35           ` Naoya Horiguchi

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=51558480.7050900@openvz.org \
    --to=khlebnikov@openvz.org \
    --cc=akpm@linux-foundation.org \
    --cc=hughd@google.com \
    --cc=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@suse.de \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=riel@redhat.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 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.