[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87h99q5npc.fsf@yhuang-mobile.sh.intel.com>
Date: Thu, 08 Sep 2016 10:02:55 -0700
From: "Huang\, Ying" <ying.huang@...el.com>
To: "Kirill A. Shutemov" <kirill@...temov.name>
Cc: "Huang\, Ying" <ying.huang@...el.com>,
Andrew Morton <akpm@...ux-foundation.org>,
<tim.c.chen@...el.com>, <dave.hansen@...el.com>,
<andi.kleen@...el.com>, <aaron.lu@...el.com>, <linux-mm@...ck.org>,
<linux-kernel@...r.kernel.org>,
Andrea Arcangeli <aarcange@...hat.com>,
"Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>,
Ebru Akagunduz <ebru.akagunduz@...il.com>
Subject: Re: [PATCH -v3 08/10] mm, THP: Add can_split_huge_page()
Hi, Kirill,
Thanks for your comments!
"Kirill A. Shutemov" <kirill@...temov.name> writes:
> On Wed, Sep 07, 2016 at 09:46:07AM -0700, Huang, Ying wrote:
>> From: Huang Ying <ying.huang@...el.com>
>>
>> Separates checking whether we can split the huge page from
>> split_huge_page_to_list() into a function. This will help to check that
>> before splitting the THP (Transparent Huge Page) really.
>>
>> This will be used for delaying splitting THP during swapping out. Where
>> for a THP, we will allocate a swap cluster, add the THP into the swap
>> cache, then split the THP. To avoid the unnecessary operations for the
>> un-splittable THP, we will check that firstly.
>>
>> There is no functionality change in this patch.
>>
>> Cc: Andrea Arcangeli <aarcange@...hat.com>
>> Cc: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
>> Cc: Ebru Akagunduz <ebru.akagunduz@...il.com>
>> Signed-off-by: "Huang, Ying" <ying.huang@...el.com>
>> ---
>> include/linux/huge_mm.h | 6 ++++++
>> mm/huge_memory.c | 13 ++++++++++++-
>> 2 files changed, 18 insertions(+), 1 deletion(-)
>>
>> diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
>> index 9b9f65d..a0073e7 100644
>> --- a/include/linux/huge_mm.h
>> +++ b/include/linux/huge_mm.h
>> @@ -94,6 +94,7 @@ extern unsigned long thp_get_unmapped_area(struct file *filp,
>> extern void prep_transhuge_page(struct page *page);
>> extern void free_transhuge_page(struct page *page);
>>
>> +bool can_split_huge_page(struct page *page);
>> int split_huge_page_to_list(struct page *page, struct list_head *list);
>> static inline int split_huge_page(struct page *page)
>> {
>> @@ -176,6 +177,11 @@ static inline void prep_transhuge_page(struct page *page) {}
>>
>> #define thp_get_unmapped_area NULL
>>
>> +static inline bool
>> +can_split_huge_page(struct page *page)
>> +{
>
> BUILD_BUG() should be appropriate here.
Yes. Will add it.
>> + return false;
>> +}
Best Regards,
Huang, Ying
Powered by blists - more mailing lists