All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michal Hocko <mhocko@suse.cz>
To: Mel Gorman <mgorman@suse.de>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Hugh Dickins <hughd@google.com>, Rik van Riel <riel@redhat.com>,
	Larry Woodman <lwoodman@redhat.com>,
	Ken Chen <kenchen@google.com>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Linux-MM <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] mm: hugetlbfs: Close race during teardown of hugetlbfs shared page tables
Date: Fri, 27 Jul 2012 13:24:45 +0200	[thread overview]
Message-ID: <20120727112445.GF26351@tiehlicka.suse.cz> (raw)
In-Reply-To: <1343385965-7738-3-git-send-email-mgorman@suse.de>

Just a nit

On Fri 27-07-12 11:46:05, Mel Gorman wrote:
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index fd1d530..8c6e5a5 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -2429,6 +2429,25 @@ again:
>  	tlb_end_vma(tlb, vma);
>  }
>

I would welcome a comment here. Something like:
/*
 * Called when the VMA is on the way out and page tables will be freed
 * by free_pagetables.
 * i_mmap_mutex has to be held when calling this function
 */

> +void __unmap_hugepage_range_final(struct mmu_gather *tlb,
> +			  struct vm_area_struct *vma, unsigned long start,
> +			  unsigned long end, struct page *ref_page)
> +{
> +	__unmap_hugepage_range(tlb, vma, start, end, ref_page);
> +
> +	/*
> +	 * Clear this flag so that x86's huge_pmd_share page_table_shareable
> +	 * test will fail on a vma being torn down, and not grab a page table
> +	 * on its way out.  We're lucky that the flag has such an appropriate
> +	 * name, and can in fact be safely cleared here. We could clear it
> +	 * before the __unmap_hugepage_range above, but all that's necessary
> +	 * is to clear it before releasing the i_mmap_mutex. This works
> +	 * because in the context this is called, the VMA is about to be
> +	 * destroyed and the i_mmap_mutex is held.
> +	 */
> +	vma->vm_flags &= ~VM_MAYSHARE;
> +}
> +

-- 
Michal Hocko
SUSE Labs

--
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: Michal Hocko <mhocko@suse.cz>
To: Mel Gorman <mgorman@suse.de>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Hugh Dickins <hughd@google.com>, Rik van Riel <riel@redhat.com>,
	Larry Woodman <lwoodman@redhat.com>,
	Ken Chen <kenchen@google.com>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	Linux-MM <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/2] mm: hugetlbfs: Close race during teardown of hugetlbfs shared page tables
Date: Fri, 27 Jul 2012 13:24:45 +0200	[thread overview]
Message-ID: <20120727112445.GF26351@tiehlicka.suse.cz> (raw)
In-Reply-To: <1343385965-7738-3-git-send-email-mgorman@suse.de>

Just a nit

On Fri 27-07-12 11:46:05, Mel Gorman wrote:
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index fd1d530..8c6e5a5 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -2429,6 +2429,25 @@ again:
>  	tlb_end_vma(tlb, vma);
>  }
>

I would welcome a comment here. Something like:
/*
 * Called when the VMA is on the way out and page tables will be freed
 * by free_pagetables.
 * i_mmap_mutex has to be held when calling this function
 */

> +void __unmap_hugepage_range_final(struct mmu_gather *tlb,
> +			  struct vm_area_struct *vma, unsigned long start,
> +			  unsigned long end, struct page *ref_page)
> +{
> +	__unmap_hugepage_range(tlb, vma, start, end, ref_page);
> +
> +	/*
> +	 * Clear this flag so that x86's huge_pmd_share page_table_shareable
> +	 * test will fail on a vma being torn down, and not grab a page table
> +	 * on its way out.  We're lucky that the flag has such an appropriate
> +	 * name, and can in fact be safely cleared here. We could clear it
> +	 * before the __unmap_hugepage_range above, but all that's necessary
> +	 * is to clear it before releasing the i_mmap_mutex. This works
> +	 * because in the context this is called, the VMA is about to be
> +	 * destroyed and the i_mmap_mutex is held.
> +	 */
> +	vma->vm_flags &= ~VM_MAYSHARE;
> +}
> +

-- 
Michal Hocko
SUSE Labs

  reply	other threads:[~2012-07-27 11:24 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-27 10:46 [PATCH 0/2] Close race leading to pagetable corruption using hugetlbfs Mel Gorman
2012-07-27 10:46 ` Mel Gorman
2012-07-27 10:46 ` [PATCH 1/2] Revert "hugetlb: avoid taking i_mmap_mutex in unmap_single_vma() for hugetlb" Mel Gorman
2012-07-27 10:46   ` Mel Gorman
2012-07-27 11:17   ` Michal Hocko
2012-07-27 11:17     ` Michal Hocko
2012-07-27 17:15   ` Aneesh Kumar K.V
2012-07-27 17:15     ` Aneesh Kumar K.V
2012-07-30 22:28     ` Andrew Morton
2012-07-30 22:28       ` Andrew Morton
2012-07-27 10:46 ` [PATCH 2/2] mm: hugetlbfs: Close race during teardown of hugetlbfs shared page tables Mel Gorman
2012-07-27 10:46   ` Mel Gorman
2012-07-27 11:24   ` Michal Hocko [this message]
2012-07-27 11:24     ` Michal Hocko

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=20120727112445.GF26351@tiehlicka.suse.cz \
    --to=mhocko@suse.cz \
    --cc=akpm@linux-foundation.org \
    --cc=aneesh.kumar@linux.vnet.ibm.com \
    --cc=hughd@google.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=kenchen@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lwoodman@redhat.com \
    --cc=mgorman@suse.de \
    --cc=riel@redhat.com \
    --cc=xiyou.wangcong@gmail.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.