All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-18 14:03 ` Liang Chen
  0 siblings, 0 replies; 16+ 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

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-18 14:03 ` Liang Chen
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

* Re: [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
  -1 siblings, 0 replies; 16+ 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>
>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-19  1:12   ` SeongJae Park
  0 siblings, 0 replies; 16+ 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] 16+ 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
  -1 siblings, 0 replies; 16+ 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>
>>
>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-19  2:43     ` Gavin Guo
  0 siblings, 0 replies; 16+ 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] 16+ 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
  -1 siblings, 0 replies; 16+ 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>
>>>
>>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-19  3:00       ` SeongJae Park
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
  2016-01-18 14:03 ` Liang Chen
@ 2016-01-19 22:24   ` David Rientjes
  -1 siblings, 0 replies; 16+ 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>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-19 22:24   ` David Rientjes
  0 siblings, 0 replies; 16+ 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] 16+ 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
  -1 siblings, 0 replies; 16+ 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>
>>>>
>>>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-20 13:44         ` Liang Chen
  0 siblings, 0 replies; 16+ 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] 16+ 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
  -1 siblings, 0 replies; 16+ 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

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-20 14:07     ` Liang Chen
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

* Re: [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
  2016-01-20 14:07     ` Liang Chen
@ 2016-01-20 23:32       ` David Rientjes
  -1 siblings, 0 replies; 16+ 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>

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2] mm:mempolicy: skip VM_HUGETLB and VM_MIXEDMAP VMA for lazy mbind
@ 2016-01-20 23:32       ` David Rientjes
  0 siblings, 0 replies; 16+ 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] 16+ messages in thread

end of thread, other threads:[~2016-01-20 23:32 UTC | newest]

Thread overview: 16+ 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-18 14:03 ` Liang Chen
2016-01-19  1:12 ` SeongJae Park
2016-01-19  1:12   ` SeongJae Park
2016-01-19  2:43   ` Gavin Guo
2016-01-19  2:43     ` Gavin Guo
2016-01-19  3:00     ` SeongJae Park
2016-01-19  3:00       ` SeongJae Park
2016-01-20 13:44       ` Liang Chen
2016-01-20 13:44         ` Liang Chen
2016-01-19 22:24 ` David Rientjes
2016-01-19 22:24   ` David Rientjes
2016-01-20 14:07   ` [PATCH v2] " Liang Chen
2016-01-20 14:07     ` Liang Chen
2016-01-20 23:32     ` David Rientjes
2016-01-20 23:32       ` David Rientjes

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.