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.c...@hisilicon.com> Fixes: 0f87baf4f7fb ("mm: wake kcompactd before kswapd's short sleep") Cc: sta...@vger.kernel.org Acked-by: Vlastimil Babka <vba...@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)) >