[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47D53C68-7A1B-42AC-B526-F05A6CA48FA5@sent.com>
Date: Mon, 06 Feb 2017 06:10:17 -0600
From: "Zi Yan" <zi.yan@...t.com>
To: "Naoya Horiguchi" <n-horiguchi@...jp.nec.com>
Cc: "linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"linux-mm@...ck.org" <linux-mm@...ck.org>,
"kirill.shutemov@...ux.intel.com" <kirill.shutemov@...ux.intel.com>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"minchan@...nel.org" <minchan@...nel.org>,
"vbabka@...e.cz" <vbabka@...e.cz>,
"mgorman@...hsingularity.net" <mgorman@...hsingularity.net>,
"khandual@...ux.vnet.ibm.com" <khandual@...ux.vnet.ibm.com>,
"Zi Yan" <ziy@...dia.com>
Subject: Re: [PATCH v3 01/14] mm: thp: make __split_huge_pmd_locked visible.
On 6 Feb 2017, at 0:12, Naoya Horiguchi wrote:
> On Sun, Feb 05, 2017 at 11:12:39AM -0500, Zi Yan wrote:
>> From: Zi Yan <ziy@...dia.com>
>>
>> It allows splitting huge pmd while you are holding the pmd lock.
>> It is prepared for future zap_pmd_range() use.
>>
>> Signed-off-by: Zi Yan <zi.yan@...rutgers.edu>
>> ---
>> include/linux/huge_mm.h | 2 ++
>> mm/huge_memory.c | 22 ++++++++++++----------
>> 2 files changed, 14 insertions(+), 10 deletions(-)
>>
> ...
>> diff --git a/mm/huge_memory.c b/mm/huge_memory.c
>> index 03e4566fc226..cd66532ef667 100644
> ...
>> @@ -2036,10 +2039,9 @@ void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd,
>> clear_page_mlock(page);
>> } else if (!pmd_devmap(*pmd))
>> goto out;
>> - __split_huge_pmd_locked(vma, pmd, haddr, freeze);
>> + __split_huge_pmd_locked(vma, pmd, address, freeze);
>
> Could you explain what is intended on this change?
> If some caller (f.e. wp_huge_pmd?) could call __split_huge_pmd() with
> address not aligned with pmd border, __split_huge_pmd_locked() results in
> triggering VM_BUG_ON(haddr & ~HPAGE_PMD_MASK).
This change is intended for any caller already hold pmd lock. Now it is for this
call site only.
In Patch 2, I moved unsigned long haddr = address & HPAGE_PMD_MASK;
from __split_huge_pmd() to __split_huge_pmd_locked(), so VM_BUG_ON(haddr & ~HPAGE_PMD_MASK)
will not be triggered.
>
> Thanks,
> Naoya Horiguchi
>
>> out:
>> spin_unlock(ptl);
>> - mmu_notifier_invalidate_range_end(mm, haddr, haddr + HPAGE_PMD_SIZE);
>> }
>>
>> void split_huge_pmd_address(struct vm_area_struct *vma, unsigned long address,
>> --
>> 2.11.0
>>
--
Best Regards
Yan Zi
Download attachment "signature.asc" of type "application/pgp-signature" (497 bytes)
Powered by blists - more mailing lists