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


Groups > linux.kernel > #1403689 > unrolled thread

[PATCH] mm: compact: fix zoneindex in compact

Started byChen Feng <puck.chen@hisilicon.com>
First post2016-05-19 14:00 +0200
Last post2016-05-20 03:40 +0200
Articles 7 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] mm: compact: fix zoneindex in compact Chen Feng <puck.chen@hisilicon.com> - 2016-05-19 14:00 +0200
    Re: [PATCH] mm: compact: fix zoneindex in compact Vlastimil Babka <vbabka@suse.cz> - 2016-05-19 14:20 +0200
      Re: [PATCH] mm: compact: fix zoneindex in compact Vlastimil Babka <vbabka@suse.cz> - 2016-05-19 14:20 +0200
        Re: [PATCH] mm: compact: fix zoneindex in compact Hugh Dickins <hughd@google.com> - 2016-05-19 19:30 +0200
          Re: [PATCH] mm: compact: fix zoneindex in compact Vlastimil Babka <vbabka@suse.cz> - 2016-05-19 19:50 +0200
            Re: [PATCH] mm: compact: fix zoneindex in compact Chen Feng <puck.chen@hisilicon.com> - 2016-05-20 03:10 +0200
            Re: [PATCH] mm: compact: fix zoneindex in compact Chen Feng <puck.chen@hisilicon.com> - 2016-05-20 03:40 +0200

#1403689 — [PATCH] mm: compact: fix zoneindex in compact

FromChen Feng <puck.chen@hisilicon.com>
Date2016-05-19 14:00 +0200
Subject[PATCH] mm: compact: fix zoneindex in compact
Message-ID<rAuMv-7EI-23@gated-at.bofh.it>
While testing the kcompactd in my platform 3G MEM only DMA ZONE.
I found the kcompactd never wakeup. It seems the zoneindex
has already minus 1 before. So the traverse here should be <=.

Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
---
 mm/compaction.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/compaction.c b/mm/compaction.c
index 8fa2540..e5122d9 100644
--- a/mm/compaction.c
+++ b/mm/compaction.c
@@ -1742,7 +1742,7 @@ static bool kcompactd_node_suitable(pg_data_t *pgdat)
 	struct zone *zone;
 	enum zone_type classzone_idx = pgdat->kcompactd_classzone_idx;
 
-	for (zoneid = 0; zoneid < classzone_idx; zoneid++) {
+	for (zoneid = 0; zoneid <= classzone_idx; zoneid++) {
 		zone = &pgdat->node_zones[zoneid];
 
 		if (!populated_zone(zone))
-- 
1.9.1

[toc] | [next] | [standalone]


#1403700

FromVlastimil Babka <vbabka@suse.cz>
Date2016-05-19 14:20 +0200
Message-ID<rAv5L-83d-1@gated-at.bofh.it>
In reply to#1403689
On 05/19/2016 01:58 PM, Chen Feng wrote:
> While testing the kcompactd in my platform 3G MEM only DMA ZONE.
> I found the kcompactd never wakeup. It seems the zoneindex
> has already minus 1 before. So the traverse here should be <=.

Ouch, thanks!

> Signed-off-by: Chen Feng <puck.chen@hisilicon.com>

Fixes: 0f87baf4f7fb ("mm: wake kcompactd before kswapd's short sleep")
Cc: stable@vger.kernel.org
Acked-by: Vlastimil Babka <vbabka@suse.cz>

> ---
>  mm/compaction.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mm/compaction.c b/mm/compaction.c
> index 8fa2540..e5122d9 100644
> --- a/mm/compaction.c
> +++ b/mm/compaction.c
> @@ -1742,7 +1742,7 @@ static bool kcompactd_node_suitable(pg_data_t *pgdat)
>  	struct zone *zone;
>  	enum zone_type classzone_idx = pgdat->kcompactd_classzone_idx;
>  
> -	for (zoneid = 0; zoneid < classzone_idx; zoneid++) {
> +	for (zoneid = 0; zoneid <= classzone_idx; zoneid++) {
>  		zone = &pgdat->node_zones[zoneid];
>  
>  		if (!populated_zone(zone))
> 

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


#1403703

FromVlastimil Babka <vbabka@suse.cz>
Date2016-05-19 14:20 +0200
Message-ID<rAv5L-83d-17@gated-at.bofh.it>
In reply to#1403700
On 05/19/2016 02:11 PM, Vlastimil Babka wrote:
> On 05/19/2016 01:58 PM, Chen Feng wrote:
>> While testing the kcompactd in my platform 3G MEM only DMA ZONE.
>> I found the kcompactd never wakeup. It seems the zoneindex
>> has already minus 1 before. So the traverse here should be <=.
> 
> Ouch, thanks!
> 
>> Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
> 
> Fixes: 0f87baf4f7fb ("mm: wake kcompactd before kswapd's short sleep")

Bah, not that one.

Fixes: accf62422b3a ("mm, kswapd: replace kswapd compaction with waking
up kcompactd")

> Cc: stable@vger.kernel.org
> Acked-by: Vlastimil Babka <vbabka@suse.cz>
> 
>> ---
>>  mm/compaction.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/mm/compaction.c b/mm/compaction.c
>> index 8fa2540..e5122d9 100644
>> --- a/mm/compaction.c
>> +++ b/mm/compaction.c
>> @@ -1742,7 +1742,7 @@ static bool kcompactd_node_suitable(pg_data_t *pgdat)
>>  	struct zone *zone;
>>  	enum zone_type classzone_idx = pgdat->kcompactd_classzone_idx;
>>  
>> -	for (zoneid = 0; zoneid < classzone_idx; zoneid++) {
>> +	for (zoneid = 0; zoneid <= classzone_idx; zoneid++) {
>>  		zone = &pgdat->node_zones[zoneid];
>>  
>>  		if (!populated_zone(zone))
>>
> 
> --
> 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]


#1403879

FromHugh Dickins <hughd@google.com>
Date2016-05-19 19:30 +0200
Message-ID<rAzVM-2Jz-33@gated-at.bofh.it>
In reply to#1403703
On Thu, 19 May 2016, Vlastimil Babka wrote:
> On 05/19/2016 02:11 PM, Vlastimil Babka wrote:
> > On 05/19/2016 01:58 PM, Chen Feng wrote:
> >> While testing the kcompactd in my platform 3G MEM only DMA ZONE.
> >> I found the kcompactd never wakeup. It seems the zoneindex
> >> has already minus 1 before. So the traverse here should be <=.
> > 
> > Ouch, thanks!
> > 
> >> Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
> > 
> > Fixes: 0f87baf4f7fb ("mm: wake kcompactd before kswapd's short sleep")
> 
> Bah, not that one.
> 
> Fixes: accf62422b3a ("mm, kswapd: replace kswapd compaction with waking
> up kcompactd")
> 
> > Cc: stable@vger.kernel.org
> > Acked-by: Vlastimil Babka <vbabka@suse.cz>
> > 
> >> ---
> >>  mm/compaction.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/mm/compaction.c b/mm/compaction.c
> >> index 8fa2540..e5122d9 100644
> >> --- a/mm/compaction.c
> >> +++ b/mm/compaction.c
> >> @@ -1742,7 +1742,7 @@ static bool kcompactd_node_suitable(pg_data_t *pgdat)
> >>  	struct zone *zone;
> >>  	enum zone_type classzone_idx = pgdat->kcompactd_classzone_idx;
> >>  
> >> -	for (zoneid = 0; zoneid < classzone_idx; zoneid++) {
> >> +	for (zoneid = 0; zoneid <= classzone_idx; zoneid++) {
> >>  		zone = &pgdat->node_zones[zoneid];
> >>  
> >>  		if (!populated_zone(zone))

Ignorant question: kcompactd_do_work() just below has a similar loop:
should that one be saying "zoneid <= cc.classzone_idx" too?

Hugh

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


#1403884

FromVlastimil Babka <vbabka@suse.cz>
Date2016-05-19 19:50 +0200
Message-ID<rAAf7-2QX-11@gated-at.bofh.it>
In reply to#1403879
On 19.5.2016 19:23, Hugh Dickins wrote:
> On Thu, 19 May 2016, Vlastimil Babka wrote:
>> On 05/19/2016 02:11 PM, Vlastimil Babka wrote:
>>> On 05/19/2016 01:58 PM, Chen Feng wrote:
>>>> While testing the kcompactd in my platform 3G MEM only DMA ZONE.
>>>> I found the kcompactd never wakeup. It seems the zoneindex
>>>> has already minus 1 before. So the traverse here should be <=.
>>>
>>> Ouch, thanks!
>>>
>>>> Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
>>>
>>> Fixes: 0f87baf4f7fb ("mm: wake kcompactd before kswapd's short sleep")
>>
>> Bah, not that one.
>>
>> Fixes: accf62422b3a ("mm, kswapd: replace kswapd compaction with waking
>> up kcompactd")
>>
>>> Cc: stable@vger.kernel.org
>>> Acked-by: Vlastimil Babka <vbabka@suse.cz>
>>>
>>>> ---
>>>>  mm/compaction.c | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/mm/compaction.c b/mm/compaction.c
>>>> index 8fa2540..e5122d9 100644
>>>> --- a/mm/compaction.c
>>>> +++ b/mm/compaction.c
>>>> @@ -1742,7 +1742,7 @@ static bool kcompactd_node_suitable(pg_data_t *pgdat)
>>>>  	struct zone *zone;
>>>>  	enum zone_type classzone_idx = pgdat->kcompactd_classzone_idx;
>>>>  
>>>> -	for (zoneid = 0; zoneid < classzone_idx; zoneid++) {
>>>> +	for (zoneid = 0; zoneid <= classzone_idx; zoneid++) {
>>>>  		zone = &pgdat->node_zones[zoneid];
>>>>  
>>>>  		if (!populated_zone(zone))
> 
> Ignorant question: kcompactd_do_work() just below has a similar loop:

You spelled "Important" wrong.

> should that one be saying "zoneid <= cc.classzone_idx" too?

Yes. Chen, can you send updated patch (also with the ack/cc/fixes tags I added?)

Thanks!

> Hugh
> 

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


#1404058

FromChen Feng <puck.chen@hisilicon.com>
Date2016-05-20 03:10 +0200
Message-ID<rAH6W-7kv-7@gated-at.bofh.it>
In reply to#1403884

On 2016/5/20 1:45, Vlastimil Babka wrote:
> On 19.5.2016 19:23, Hugh Dickins wrote:
>> On Thu, 19 May 2016, Vlastimil Babka wrote:
>>> On 05/19/2016 02:11 PM, Vlastimil Babka wrote:
>>>> On 05/19/2016 01:58 PM, Chen Feng wrote:
>>>>> While testing the kcompactd in my platform 3G MEM only DMA ZONE.
>>>>> I found the kcompactd never wakeup. It seems the zoneindex
>>>>> has already minus 1 before. So the traverse here should be <=.
>>>>
>>>> Ouch, thanks!
>>>>
>>>>> Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
>>>>
>>>> Fixes: 0f87baf4f7fb ("mm: wake kcompactd before kswapd's short sleep")
>>>
>>> Bah, not that one.
>>>
>>> Fixes: accf62422b3a ("mm, kswapd: replace kswapd compaction with waking
>>> up kcompactd")
>>>
>>>> Cc: stable@vger.kernel.org
>>>> Acked-by: Vlastimil Babka <vbabka@suse.cz>
>>>>
>>>>> ---
>>>>>  mm/compaction.c | 2 +-
>>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/mm/compaction.c b/mm/compaction.c
>>>>> index 8fa2540..e5122d9 100644
>>>>> --- a/mm/compaction.c
>>>>> +++ b/mm/compaction.c
>>>>> @@ -1742,7 +1742,7 @@ static bool kcompactd_node_suitable(pg_data_t *pgdat)
>>>>>  	struct zone *zone;
>>>>>  	enum zone_type classzone_idx = pgdat->kcompactd_classzone_idx;
>>>>>  
>>>>> -	for (zoneid = 0; zoneid < classzone_idx; zoneid++) {
>>>>> +	for (zoneid = 0; zoneid <= classzone_idx; zoneid++) {
>>>>>  		zone = &pgdat->node_zones[zoneid];
>>>>>  
>>>>>  		if (!populated_zone(zone))
>>
>> Ignorant question: kcompactd_do_work() just below has a similar loop:
> 

Yes, my mistake.
> You spelled "Important" wrong.
> 
>> should that one be saying "zoneid <= cc.classzone_idx" too?
> 
> Yes. Chen, can you send updated patch (also with the ack/cc/fixes tags I added?)
> 
OK, I will send it out soon.

> Thanks!
> 
>> Hugh
>>
> 
> 
> .
> 

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


#1404063

FromChen Feng <puck.chen@hisilicon.com>
Date2016-05-20 03:40 +0200
Message-ID<rAHzX-7w9-9@gated-at.bofh.it>
In reply to#1403884

On 2016/5/20 1:45, Vlastimil Babka wrote:
> On 19.5.2016 19:23, Hugh Dickins wrote:
>> On Thu, 19 May 2016, Vlastimil Babka wrote:
>>> On 05/19/2016 02:11 PM, Vlastimil Babka wrote:
>>>> On 05/19/2016 01:58 PM, Chen Feng wrote:
>>>>> While testing the kcompactd in my platform 3G MEM only DMA ZONE.
>>>>> I found the kcompactd never wakeup. It seems the zoneindex
>>>>> has already minus 1 before. So the traverse here should be <=.
>>>>
>>>> Ouch, thanks!
>>>>
>>>>> Signed-off-by: Chen Feng <puck.chen@hisilicon.com>
>>>>
>>>> Fixes: 0f87baf4f7fb ("mm: wake kcompactd before kswapd's short sleep")
>>>
>>> Bah, not that one.
>>>
>>> Fixes: accf62422b3a ("mm, kswapd: replace kswapd compaction with waking
>>> up kcompactd")
>>>
>>>> Cc: stable@vger.kernel.org
>>>> Acked-by: Vlastimil Babka <vbabka@suse.cz>
>>>>
>>>>> ---
>>>>>  mm/compaction.c | 2 +-
>>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/mm/compaction.c b/mm/compaction.c
>>>>> index 8fa2540..e5122d9 100644
>>>>> --- a/mm/compaction.c
>>>>> +++ b/mm/compaction.c
>>>>> @@ -1742,7 +1742,7 @@ static bool kcompactd_node_suitable(pg_data_t *pgdat)
>>>>>  	struct zone *zone;
>>>>>  	enum zone_type classzone_idx = pgdat->kcompactd_classzone_idx;
>>>>>  
>>>>> -	for (zoneid = 0; zoneid < classzone_idx; zoneid++) {
>>>>> +	for (zoneid = 0; zoneid <= classzone_idx; zoneid++) {
>>>>>  		zone = &pgdat->node_zones[zoneid];
>>>>>  
>>>>>  		if (!populated_zone(zone))
>>
>> Ignorant question: kcompactd_do_work() just below has a similar loop:
> 
> You spelled "Important" wrong.
> 
>> should that one be saying "zoneid <= cc.classzone_idx" too?
> 
> Yes. Chen, can you send updated patch (also with the ack/cc/fixes tags I added?)
> 
kcompactd_do_work()

This fix already added by Andrew Morton <akpm@linux-foundation.org>

I will not sent it.

> Thanks!
> 
>> Hugh
>>
> 
> 
> .
> 

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web