[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5731FA88.2060701@suse.cz>
Date: Tue, 10 May 2016 17:13:12 +0200
From: Vlastimil Babka <vbabka@...e.cz>
To: js1304@...il.com, Andrew Morton <akpm@...ux-foundation.org>
Cc: mgorman@...hsingularity.net, Minchan Kim <minchan@...nel.org>,
Alexander Potapenko <glider@...gle.com>, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, Joonsoo Kim <iamjoonsoo.kim@....com>
Subject: Re: [PATCH 3/6] mm/page_owner: copy last_migrate_reason in
copy_page_owner()
On 05/03/2016 07:23 AM, js1304@...il.com wrote:
> From: Joonsoo Kim <iamjoonsoo.kim@....com>
>
> 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 <iamjoonsoo.kim@....com>
> ---
> 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++)
>
Powered by blists - more mailing lists