* [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind @ 2016-01-18 14:03 Liang Chen 2016-01-19 1:12 ` SeongJae Park 2016-01-19 22:24 ` David Rientjes 0 siblings, 2 replies; 8+ messages in thread From: Liang Chen @ 2016-01-18 14:03 UTC (permalink / raw) To: n-horiguchi, linux-mm Cc: riel, mgorman, akpm, linux-kernel, Liang Chen, Gavin Guo 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 <liangchen.linux@gmail.com> Signed-off-by: Gavin Guo <gavin.guo@canonical.com> --- 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)) 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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind 2016-01-18 14:03 [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind Liang Chen @ 2016-01-19 1:12 ` SeongJae Park 2016-01-19 2:43 ` Gavin Guo 2016-01-19 22:24 ` David Rientjes 1 sibling, 1 reply; 8+ messages in thread From: SeongJae Park @ 2016-01-19 1:12 UTC (permalink / raw) To: Liang Chen Cc: n-horiguchi, linux-mm, riel, mgorman, akpm, linux-kernel, Gavin Guo 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 <liangchen.linux@gmail.com> > Signed-off-by: Gavin Guo <gavin.guo@canonical.com> > --- > 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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> > -- 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> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind 2016-01-19 1:12 ` SeongJae Park @ 2016-01-19 2:43 ` Gavin Guo 2016-01-19 3:00 ` SeongJae Park 0 siblings, 1 reply; 8+ messages in thread From: Gavin Guo @ 2016-01-19 2:43 UTC (permalink / raw) To: SeongJae Park Cc: Liang Chen, n-horiguchi, linux-mm, riel, Mel Gorman, Andrew Morton, linux-kernel Hi SeongJae, On Tue, Jan 19, 2016 at 9:12 AM, SeongJae Park <sj38.park@gmail.com> wrote: > 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 <liangchen.linux@gmail.com> >> Signed-off-by: Gavin Guo <gavin.guo@canonical.com> >> --- >> 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) && Thanks for your suggestion, it's good for the above. However, it should be a typo for the following and I think you mean: ~vma->vm_flags & VM_MIXEDMAP Even though the result is correct, I feel it's a bit of ambiguous for people to understand and away from it's original meaning. > + !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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> >> > -- 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> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind 2016-01-19 2:43 ` Gavin Guo @ 2016-01-19 3:00 ` SeongJae Park 2016-01-20 13:44 ` Liang Chen 0 siblings, 1 reply; 8+ messages in thread From: SeongJae Park @ 2016-01-19 3:00 UTC (permalink / raw) To: Gavin Guo Cc: Liang Chen, n-horiguchi, linux-mm, Rik van Riel, Mel Gorman, Andrew Morton, linux-kernel Hi Gavin, On Tue, Jan 19, 2016 at 11:43 AM, Gavin Guo <gavin.guo@canonical.com> wrote: > Hi SeongJae, > > On Tue, Jan 19, 2016 at 9:12 AM, SeongJae Park <sj38.park@gmail.com> wrote: >> 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 <liangchen.linux@gmail.com> >>> Signed-off-by: Gavin Guo <gavin.guo@canonical.com> >>> --- >>> 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) && > > Thanks for your suggestion, it's good for the above. However, it should be > a typo for the following and I think you mean: > > ~vma->vm_flags & VM_MIXEDMAP > > Even though the result is correct, I feel it's a bit of ambiguous for > people to understand and away from it's original meaning. Ah, you're right. That's my fault. Thanks for noting that. BTW, now I think the line could be expressed in this way: vma->vm_flags & ~VM_MIXEDMAP I feel this is sufficiently explicit and follows the meaning well. However, I agree that Liang's first one is good enough, too. Thanks, SeongJae Park. > >> + !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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> >>> >> -- 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> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind 2016-01-19 3:00 ` SeongJae Park @ 2016-01-20 13:44 ` Liang Chen 0 siblings, 0 replies; 8+ messages in thread From: Liang Chen @ 2016-01-20 13:44 UTC (permalink / raw) To: SeongJae Park Cc: Gavin Guo, Naoya Horiguchi, linux-mm, Rik van Riel, Mel Gorman, Andrew Morton, linux-kernel Thanks a lot for the checking and discussion. So I will just leave it as it was:) Thanks, Liang On Tue, Jan 19, 2016 at 11:00 AM, SeongJae Park <sj38.park@gmail.com> wrote: > Hi Gavin, > > > On Tue, Jan 19, 2016 at 11:43 AM, Gavin Guo <gavin.guo@canonical.com> wrote: >> Hi SeongJae, >> >> On Tue, Jan 19, 2016 at 9:12 AM, SeongJae Park <sj38.park@gmail.com> wrote: >>> 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 <liangchen.linux@gmail.com> >>>> Signed-off-by: Gavin Guo <gavin.guo@canonical.com> >>>> --- >>>> 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) && >> >> Thanks for your suggestion, it's good for the above. However, it should be >> a typo for the following and I think you mean: >> >> ~vma->vm_flags & VM_MIXEDMAP >> >> Even though the result is correct, I feel it's a bit of ambiguous for >> people to understand and away from it's original meaning. > > Ah, you're right. That's my fault. Thanks for noting that. > > BTW, now I think the line could be expressed in this way: > vma->vm_flags & ~VM_MIXEDMAP > > I feel this is sufficiently explicit and follows the meaning well. > However, I agree that Liang's first one is good enough, too. > > Thanks, > SeongJae Park. > >> >>> + !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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> >>>> >>> -- 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> ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind 2016-01-18 14:03 [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind Liang Chen 2016-01-19 1:12 ` SeongJae Park @ 2016-01-19 22:24 ` David Rientjes 2016-01-20 14:07 ` [PATCH v2] " Liang Chen 1 sibling, 1 reply; 8+ messages in thread From: David Rientjes @ 2016-01-19 22:24 UTC (permalink / raw) To: Liang Chen Cc: n-horiguchi, linux-mm, riel, mgorman, akpm, linux-kernel, Gavin Guo 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 <liangchen.linux@gmail.com> > Signed-off-by: Gavin Guo <gavin.guo@canonical.com> Acked-by: David Rientjes <rientjes@google.com> I think it should also have Suggested-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> -- 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> ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind 2016-01-19 22:24 ` David Rientjes @ 2016-01-20 14:07 ` Liang Chen 2016-01-20 23:32 ` David Rientjes 0 siblings, 1 reply; 8+ messages in thread From: Liang Chen @ 2016-01-20 14:07 UTC (permalink / raw) To: rientjes, linux-mm Cc: n-horiguchi, riel, mgorman, akpm, linux-kernel, Liang Chen, Gavin Guo 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 <liangchen.linux@gmail.com> Signed-off-by: Gavin Guo <gavin.guo@canonical.com> Suggested-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> --- Changes since v2: - Add Suggested-by tag to give credit to Naoya Horiguchi for the idea --- 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)) 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: <a href=mailto:"dont@kvack.org"> email@kvack.org </a> ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind 2016-01-20 14:07 ` [PATCH v2] " Liang Chen @ 2016-01-20 23:32 ` David Rientjes 0 siblings, 0 replies; 8+ messages in thread From: David Rientjes @ 2016-01-20 23:32 UTC (permalink / raw) To: Liang Chen Cc: linux-mm, n-horiguchi, riel, mgorman, akpm, linux-kernel, Gavin Guo On Wed, 20 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 <liangchen.linux@gmail.com> > Signed-off-by: Gavin Guo <gavin.guo@canonical.com> > Suggested-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Acked-by: David Rientjes <rientjes@google.com> -- 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> ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-01-20 23:32 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-01-18 14:03 [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind Liang Chen 2016-01-19 1:12 ` SeongJae Park 2016-01-19 2:43 ` Gavin Guo 2016-01-19 3:00 ` SeongJae Park 2016-01-20 13:44 ` Liang Chen 2016-01-19 22:24 ` David Rientjes 2016-01-20 14:07 ` [PATCH v2] " Liang Chen 2016-01-20 23:32 ` David Rientjes
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).