From: Ni zhan Chen <nizhan.chen@gmail.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, Andrea Arcangeli <aarcange@redhat.com>,
Andi Kleen <ak@linux.intel.com>,
"H. Peter Anvin" <hpa@linux.intel.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 07/10] thp: implement splitting pmd for huge zero page
Date: Fri, 12 Oct 2012 13:00:39 +0800 [thread overview]
Message-ID: <5077A3F7.6010407@gmail.com> (raw)
In-Reply-To: <20121012041305.GA16854@shutemov.name>
On 10/12/2012 12:13 PM, Kirill A. Shutemov wrote:
> On Fri, Oct 12, 2012 at 11:23:37AM +0800, Ni zhan Chen wrote:
>> On 10/02/2012 11:19 PM, Kirill A. Shutemov wrote:
>>> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
>>>
>>> We can't split huge zero page itself, but we can split the pmd which
>>> points to it.
>>>
>>> On splitting the pmd we create a table with all ptes set to normal zero
>>> page.
>>>
>>> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
>>> Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
>>> ---
>>> mm/huge_memory.c | 32 ++++++++++++++++++++++++++++++++
>>> 1 files changed, 32 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
>>> index 95032d3..3f1c59c 100644
>>> --- a/mm/huge_memory.c
>>> +++ b/mm/huge_memory.c
>>> @@ -1600,6 +1600,7 @@ int split_huge_page(struct page *page)
>>> struct anon_vma *anon_vma;
>>> int ret = 1;
>>> + BUG_ON(is_huge_zero_pfn(page_to_pfn(page)));
>>> BUG_ON(!PageAnon(page));
>>> anon_vma = page_lock_anon_vma(page);
>>> if (!anon_vma)
>>> @@ -2503,6 +2504,32 @@ static int khugepaged(void *none)
>>> return 0;
>>> }
>>> +static void __split_huge_zero_page_pmd(struct vm_area_struct *vma,
>>> + unsigned long haddr, pmd_t *pmd)
>>> +{
>>> + pgtable_t pgtable;
>>> + pmd_t _pmd;
>>> + int i;
>>> +
>>> + pmdp_clear_flush_notify(vma, haddr, pmd);
>> why I can't find function pmdp_clear_flush_notify in kernel source
>> code? Do you mean pmdp_clear_flush_young_notify or something like
>> that?
> It was changed recently. See commit
> 2ec74c3 mm: move all mmu notifier invocations to be done outside the PT lock
Oh, thanks!
--
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: Ni zhan Chen <nizhan.chen@gmail.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, Andrea Arcangeli <aarcange@redhat.com>,
Andi Kleen <ak@linux.intel.com>,
"H. Peter Anvin" <hpa@linux.intel.com>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 07/10] thp: implement splitting pmd for huge zero page
Date: Fri, 12 Oct 2012 13:00:39 +0800 [thread overview]
Message-ID: <5077A3F7.6010407@gmail.com> (raw)
In-Reply-To: <20121012041305.GA16854@shutemov.name>
On 10/12/2012 12:13 PM, Kirill A. Shutemov wrote:
> On Fri, Oct 12, 2012 at 11:23:37AM +0800, Ni zhan Chen wrote:
>> On 10/02/2012 11:19 PM, Kirill A. Shutemov wrote:
>>> From: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
>>>
>>> We can't split huge zero page itself, but we can split the pmd which
>>> points to it.
>>>
>>> On splitting the pmd we create a table with all ptes set to normal zero
>>> page.
>>>
>>> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
>>> Reviewed-by: Andrea Arcangeli <aarcange@redhat.com>
>>> ---
>>> mm/huge_memory.c | 32 ++++++++++++++++++++++++++++++++
>>> 1 files changed, 32 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
>>> index 95032d3..3f1c59c 100644
>>> --- a/mm/huge_memory.c
>>> +++ b/mm/huge_memory.c
>>> @@ -1600,6 +1600,7 @@ int split_huge_page(struct page *page)
>>> struct anon_vma *anon_vma;
>>> int ret = 1;
>>> + BUG_ON(is_huge_zero_pfn(page_to_pfn(page)));
>>> BUG_ON(!PageAnon(page));
>>> anon_vma = page_lock_anon_vma(page);
>>> if (!anon_vma)
>>> @@ -2503,6 +2504,32 @@ static int khugepaged(void *none)
>>> return 0;
>>> }
>>> +static void __split_huge_zero_page_pmd(struct vm_area_struct *vma,
>>> + unsigned long haddr, pmd_t *pmd)
>>> +{
>>> + pgtable_t pgtable;
>>> + pmd_t _pmd;
>>> + int i;
>>> +
>>> + pmdp_clear_flush_notify(vma, haddr, pmd);
>> why I can't find function pmdp_clear_flush_notify in kernel source
>> code? Do you mean pmdp_clear_flush_young_notify or something like
>> that?
> It was changed recently. See commit
> 2ec74c3 mm: move all mmu notifier invocations to be done outside the PT lock
Oh, thanks!
next prev parent reply other threads:[~2012-10-12 5:00 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-02 15:19 [PATCH v3 00/10] Introduce huge zero page Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 01/10] thp: huge zero page: basic preparation Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 02/10] thp: zap_huge_pmd(): zap huge zero pmd Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 03/10] thp: copy_huge_pmd(): copy huge zero page Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 04/10] thp: do_huge_pmd_wp_page(): handle " Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:35 ` Brice Goglin
2012-10-02 15:35 ` Brice Goglin
2012-10-02 15:38 ` Kirill A. Shutemov
2012-10-02 15:38 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 05/10] thp: change_huge_pmd(): keep huge zero page write-protected Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 06/10] thp: change split_huge_page_pmd() interface Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 07/10] thp: implement splitting pmd for huge zero page Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-12 3:23 ` Ni zhan Chen
2012-10-12 3:23 ` Ni zhan Chen
2012-10-12 4:13 ` Kirill A. Shutemov
2012-10-12 4:13 ` Kirill A. Shutemov
2012-10-12 5:00 ` Ni zhan Chen [this message]
2012-10-12 5:00 ` Ni zhan Chen
2012-10-02 15:19 ` [PATCH v3 08/10] thp: setup huge zero page on non-write page fault Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 09/10] thp: lazy huge zero page allocation Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 15:19 ` [PATCH v3 10/10] thp: implement refcounting for huge zero page Kirill A. Shutemov
2012-10-02 15:19 ` Kirill A. Shutemov
2012-10-02 16:13 ` [PATCH v3 00/10] Introduce " Andrea Arcangeli
2012-10-02 16:13 ` Andrea Arcangeli
2012-10-02 22:31 ` Andrew Morton
2012-10-02 22:31 ` Andrew Morton
2012-10-02 22:55 ` Andrea Arcangeli
2012-10-02 22:55 ` Andrea Arcangeli
2012-10-03 0:04 ` Kirill A. Shutemov
2012-10-03 0:04 ` Kirill A. Shutemov
2012-10-03 0:11 ` Andrew Morton
2012-10-03 0:11 ` Andrew Morton
2012-10-17 2:32 ` Ni zhan Chen
2012-10-17 2:32 ` Ni zhan Chen
2012-10-18 14:50 ` Kirill A. Shutemov
2012-10-18 14:50 ` Kirill A. Shutemov
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=5077A3F7.6010407@gmail.com \
--to=nizhan.chen@gmail.com \
--cc=aarcange@redhat.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=hpa@linux.intel.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=kirill@shutemov.name \
--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.