From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756890AbcASBNI (ORCPT ); Mon, 18 Jan 2016 20:13:08 -0500 Received: from mail-pa0-f68.google.com ([209.85.220.68]:36215 "EHLO mail-pa0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756599AbcASBNE (ORCPT ); Mon, 18 Jan 2016 20:13:04 -0500 From: SeongJae Park X-Google-Original-From: SeongJae Park Date: Tue, 19 Jan 2016 10:12:57 +0900 (KST) To: Liang Chen cc: n-horiguchi@ah.jp.nec.com, linux-mm@kvack.org, riel@redhat.com, mgorman@suse.de, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, Gavin Guo Subject: Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind In-Reply-To: <1453125834-16546-1-git-send-email-liangchen.linux@gmail.com> Message-ID: References: <1453125834-16546-1-git-send-email-liangchen.linux@gmail.com> User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello Liang, Just trivial comment below. On Mon, 18 Jan 2016, Liang Chen wrote: > VM_HUGETLB and VM_MIXEDMAP vma needs to be excluded to avoid compound > pages being marked for migration and unexpected COWs when handling > hugetlb fault. > > Thanks to Naoya Horiguchi for reminding me on these checks. > > Signed-off-by: Liang Chen > Signed-off-by: Gavin Guo > --- > mm/mempolicy.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/mm/mempolicy.c b/mm/mempolicy.c > index 436ff411..415de70 100644 > --- a/mm/mempolicy.c > +++ b/mm/mempolicy.c > @@ -610,8 +610,9 @@ static int queue_pages_test_walk(unsigned long start, unsigned long end, > > if (flags & MPOL_MF_LAZY) { > /* Similar to task_numa_work, skip inaccessible VMAs */ > - if (vma_migratable(vma) && > - vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE)) > + if (vma_migratable(vma) && !is_vm_hugetlb_page(vma) && > + (vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE)) && > + !(vma->vm_flags & VM_MIXEDMAP)) Isn't there exists few unnecessary parenthesis? IMHO, it makes me hard to read the code. How about below code, instead? + if (vma_migratable(vma) && !is_vm_hugetlb_page(vma) && + vma->vm_flags & (VM_READ | VM_EXEC | VM_WRITE) && + !vma->vm_flags & VM_MIXEDMAP) Thanks, SeongJae Park. > change_prot_numa(vma, start, endvma); > return 1; > } > -- > 1.9.1 > > -- > 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: email@kvack.org >