From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752921AbcEJPNS (ORCPT ); Tue, 10 May 2016 11:13:18 -0400 Received: from mx2.suse.de ([195.135.220.15]:52706 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752558AbcEJPNQ (ORCPT ); Tue, 10 May 2016 11:13:16 -0400 Subject: Re: [PATCH 3/6] mm/page_owner: copy last_migrate_reason in copy_page_owner() To: js1304@gmail.com, Andrew Morton References: <1462252984-8524-1-git-send-email-iamjoonsoo.kim@lge.com> <1462252984-8524-4-git-send-email-iamjoonsoo.kim@lge.com> Cc: mgorman@techsingularity.net, Minchan Kim , Alexander Potapenko , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Joonsoo Kim From: Vlastimil Babka Message-ID: <5731FA88.2060701@suse.cz> Date: Tue, 10 May 2016 17:13:12 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.2 MIME-Version: 1.0 In-Reply-To: <1462252984-8524-4-git-send-email-iamjoonsoo.kim@lge.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/03/2016 07:23 AM, js1304@gmail.com wrote: > From: Joonsoo Kim > > Currently, copy_page_owner() doesn't copy all the owner information. > It skips last_migrate_reason because copy_page_owner() is used for > migration and it will be properly set soon. But, following patch > will use copy_page_owner() and this skip will cause the problem that > allocated page has uninitialied last_migrate_reason. To prevent it, > this patch also copy last_migrate_reason in copy_page_owner(). Hmm it's a corner case, but if the "new" page was dumped e.g. due to a bug during the migration, is the copied migrate reason from the "old" page actually meaningful? I'd say it might be misleading and it's simpler to just make sure it's initialized to -1. > Signed-off-by: Joonsoo Kim > --- > mm/page_owner.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/page_owner.c b/mm/page_owner.c > index 792b56d..6693959 100644 > --- a/mm/page_owner.c > +++ b/mm/page_owner.c > @@ -101,6 +101,7 @@ void __copy_page_owner(struct page *oldpage, struct page *newpage) > > new_ext->order = old_ext->order; > new_ext->gfp_mask = old_ext->gfp_mask; > + new_ext->last_migrate_reason = old_ext->last_migrate_reason; > new_ext->nr_entries = old_ext->nr_entries; > > for (i = 0; i < ARRAY_SIZE(new_ext->trace_entries); i++) >