Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1311573 > unrolled thread

[PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

Started byLiang Chen <liangchen.linux@gmail.com>
First post2016-01-18 15:10 +0100
Last post2016-01-21 00:40 +0100
Articles 8 — 4 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind Liang Chen <liangchen.linux@gmail.com> - 2016-01-18 15:10 +0100
    Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for  lazy mbind SeongJae Park <sj38.park@gmail.com> - 2016-01-19 02:20 +0100
      Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for  lazy mbind Gavin Guo <gavin.guo@canonical.com> - 2016-01-19 03:50 +0100
        Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for  lazy mbind SeongJae Park <sj38.park@gmail.com> - 2016-01-19 04:10 +0100
          Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for  lazy mbind Liang Chen <liangchen.linux@gmail.com> - 2016-01-20 14:50 +0100
    Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for  lazy mbind David Rientjes <rientjes@google.com> - 2016-01-19 23:30 +0100
      [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind Liang Chen <liangchen.linux@gmail.com> - 2016-01-20 15:10 +0100
        Re: [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA  for lazy mbind David Rientjes <rientjes@google.com> - 2016-01-21 00:40 +0100

#1311573 — [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

FromLiang Chen <liangchen.linux@gmail.com>
Date2016-01-18 15:10 +0100
Subject[PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
Message-ID<qSiFl-1J1-37@gated-at.bofh.it>
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

[toc] | [next] | [standalone]


#1311876 — Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

FromSeongJae Park <sj38.park@gmail.com>
Date2016-01-19 02:20 +0100
SubjectRe: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
Message-ID<qSt7H-vW-1@gated-at.bofh.it>
In reply to#1311573
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>
>

[toc] | [prev] | [next] | [standalone]


#1311910 — Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

FromGavin Guo <gavin.guo@canonical.com>
Date2016-01-19 03:50 +0100
SubjectRe: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
Message-ID<qSuwO-1jJ-19@gated-at.bofh.it>
In reply to#1311876
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>
>>
>

[toc] | [prev] | [next] | [standalone]


#1311923 — Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

FromSeongJae Park <sj38.park@gmail.com>
Date2016-01-19 04:10 +0100
SubjectRe: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
Message-ID<qSuQ9-1Gz-15@gated-at.bofh.it>
In reply to#1311910
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>
>>>
>>

[toc] | [prev] | [next] | [standalone]


#1313229 — Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

FromLiang Chen <liangchen.linux@gmail.com>
Date2016-01-20 14:50 +0100
SubjectRe: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
Message-ID<qT1j4-7c8-3@gated-at.bofh.it>
In reply to#1311923
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>
>>>>
>>>

[toc] | [prev] | [next] | [standalone]


#1312558 — Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

FromDavid Rientjes <rientjes@google.com>
Date2016-01-19 23:30 +0100
SubjectRe: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
Message-ID<qSMWK-5DX-17@gated-at.bofh.it>
In reply to#1311573
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>

[toc] | [prev] | [next] | [standalone]


#1313237 — [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

FromLiang Chen <liangchen.linux@gmail.com>
Date2016-01-20 15:10 +0100
Subject[PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
Message-ID<qT1Cr-7BQ-19@gated-at.bofh.it>
In reply to#1312558
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

[toc] | [prev] | [next] | [standalone]


#1313704 — Re: [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind

FromDavid Rientjes <rientjes@google.com>
Date2016-01-21 00:40 +0100
SubjectRe: [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
Message-ID<qTaw2-58k-17@gated-at.bofh.it>
In reply to#1313237
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>

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web