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@xxxxxxxxxxxxx> >>> >>> 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@xxxxxxxxxxxxxxx >>> Acked-by: Vlastimil Babka <vbabka@xxxxxxx> >>> >>>> --- >>>> 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 > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>