From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mel Gorman Subject: Re: [PATCH] metag: Drop show_mem() from mem_init() Date: Fri, 5 Aug 2016 13:32:51 +0100 Message-ID: <20160805123251.GT2799@techsingularity.net> References: <20160805121704.32198-1-james.hogan@imgtec.com> Mime-Version: 1.0 Return-path: Content-Disposition: inline In-Reply-To: <20160805121704.32198-1-james.hogan@imgtec.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: James Hogan Cc: linux-metag@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org On Fri, Aug 05, 2016 at 01:17:04PM +0100, James Hogan wrote: > The recent commit 599d0c954f91 ("mm, vmscan: move LRU lists to node"), > changed memory management code so that show_mem() is no longer safe to > call prior to setup_per_cpu_pageset(), as pgdat->per_cpu_nodestats will > still be NULL. This causes an oops on metag due to the call to > show_mem() from mem_init(): > > node_page_state_snapshot(...) + 0x48 > pgdat_reclaimable(struct pglist_data * pgdat = 0x402517a0) > show_free_areas(unsigned int filter = 0) + 0x2cc > show_mem(unsigned int filter = 0) + 0x18 > mem_init() > mm_init() > start_kernel() + 0x204 > > This wasn't a problem before with zone_reclaimable() as zone_pcp_init() > was already setting zone->pageset to &boot_pageset, via setup_arch() and > paging_init(), which happens before mm_init(): > > zone_pcp_init(...) > free_area_init_core(...) + 0x138 > free_area_init_node(int nid = 0, ...) + 0x1a0 > free_area_init_nodes(...) + 0x440 > paging_init(unsigned long mem_end = 0x4fe00000) + 0x378 > setup_arch(char ** cmdline_p = 0x4024e038) + 0x2b8 > start_kernel() + 0x54 > > No other arches appear to call show_mem() during boot, and it doesn't > really add much value to the log, so lets just drop it from mem_init(). > > Signed-off-by: James Hogan > Cc: Mel Gorman Acked-by: Mel Gorman -- Mel Gorman SUSE Labs