From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932755AbcESRpe (ORCPT ); Thu, 19 May 2016 13:45:34 -0400 Received: from mx2.suse.de ([195.135.220.15]:49990 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932577AbcESRpd (ORCPT ); Thu, 19 May 2016 13:45:33 -0400 Subject: Re: [PATCH] mm: compact: fix zoneindex in compact To: Hugh Dickins References: <1463659121-84124-1-git-send-email-puck.chen@hisilicon.com> <573DAD84.7020403@suse.cz> <573DADF7.4000109@suse.cz> Cc: Chen Feng , mhocko@suse.com, kirill.shutemov@linux.intel.com, hannes@cmpxchg.org, tj@kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Andrew Morton , suzhuangluan@hisilicon.com, dan.zhao@hisilicon.com, qijiwen@hisilicon.com, xuyiping@hisilicon.com, oliver.fu@hisilicon.com, puck.chen@foxmail.com From: Vlastimil Babka Message-ID: <9741ef6d-b93b-a99b-e42f-9f510295dd3f@suse.cz> Date: Thu, 19 May 2016 19:45:34 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 >>> >>> 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 >>> >>>> --- >>>> 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 >