From patchwork Thu Apr 21 02:27:13 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Rientjes X-Patchwork-Id: 723751 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p3L2RJmY012236 for ; Thu, 21 Apr 2011 02:27:20 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752081Ab1DUC1T (ORCPT ); Wed, 20 Apr 2011 22:27:19 -0400 Received: from smtp-out.google.com ([74.125.121.67]:41748 "EHLO smtp-out.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751567Ab1DUC1S (ORCPT ); Wed, 20 Apr 2011 22:27:18 -0400 Received: from hpaq2.eem.corp.google.com (hpaq2.eem.corp.google.com [172.25.149.2]) by smtp-out.google.com with ESMTP id p3L2RHZe023924 for ; Wed, 20 Apr 2011 19:27:17 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1303352837; bh=cMlgz8C2u94N2mHW1j5hHLUFo3I=; h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References: MIME-Version:Content-Type; b=VuhSiaHv0YTjCRXY5yi2J38Ru+pcoiYqu94S7jp9eMF2JzP14t2Y/AB4NAxqscGAa TniG0Ba/QnEz9OlAnFU4A== Received: from pzk9 (pzk9.prod.google.com [10.243.19.137]) by hpaq2.eem.corp.google.com with ESMTP id p3L2QXRh022361 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Wed, 20 Apr 2011 19:27:16 -0700 Received: by pzk9 with SMTP id 9so893251pzk.5 for ; Wed, 20 Apr 2011 19:27:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=domainkey-signature:date:from:x-x-sender:to:cc:subject:in-reply-to :message-id:references:user-agent:mime-version:content-type; bh=HcN1Mh+4EinHVKa8nhmpRbkTbOMcyNJCwDOMuKEteGw=; b=OvESsf+SaSil1wr0UhIA94V08gxFp9VaEzEWAns9V55nM2KFbOIOcmmtPMtDkhH8Al Ah/OPTnJajYUeRap7yig== DomainKey-Signature: a=rsa-sha1; c=nofws; d=google.com; s=beta; h=date:from:x-x-sender:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version:content-type; b=OlWwQRw9W8jMpl4EAbFqqDMBV4nsW0uBqrIOEVe7l2NWyKd8Be63BAw/YqQz3FxyzS ZvJSNnVyKSDEBkgj3cgw== Received: by 10.68.26.134 with SMTP id l6mr3448118pbg.235.1303352835462; Wed, 20 Apr 2011 19:27:15 -0700 (PDT) Received: from chino.kir.corp.google.com (chino.kir.corp.google.com [172.31.6.12]) by mx.google.com with ESMTPS id d3sm992338pbh.73.2011.04.20.19.27.14 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 20 Apr 2011 19:27:14 -0700 (PDT) Date: Wed, 20 Apr 2011 19:27:13 -0700 (PDT) From: David Rientjes X-X-Sender: rientjes@chino.kir.corp.google.com To: Kyle McMartin , Helge Deller , James Bottomley cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-parisc@vger.kernel.org Subject: [patch] parisc: set memory ranges in N_NORMAL_MEMORY when onlined In-Reply-To: Message-ID: References: <20110420161615.462D.A69D9226@jp.fujitsu.com> <20110420174027.4631.A69D9226@jp.fujitsu.com> <1303317178.2587.30.camel@mulgrave.site> User-Agent: Alpine 2.00 (DEB 1167 2008-08-23) MIME-Version: 1.0 X-System-Of-Record: true Sender: linux-parisc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-parisc@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Thu, 21 Apr 2011 02:27:24 +0000 (UTC) When a DISCONTIGMEM memory range is brought online as a NUMA node, it also needs to have its bet set in N_NORMAL_MEMORY. This is necessary for generic kernel code that utilizes N_NORMAL_MEMORY as a subset of N_ONLINE for memory savings. These types of hacks can hopefully be removed once DISCONTIGMEM is either removed or abstracted away from CONFIG_NUMA. Fixes a panic in the slub code which only initializes structures for N_NORMAL_MEMORY to save memory: Backtrace: [<000000004021c938>] add_partial+0x28/0x98 [<000000004021faa0>] __slab_free+0x1d0/0x1d8 [<000000004021fd04>] kmem_cache_free+0xc4/0x128 [<000000004033bf9c>] ida_get_new_above+0x21c/0x2c0 [<00000000402a8980>] sysfs_new_dirent+0xd0/0x238 [<00000000402a974c>] create_dir+0x5c/0x168 [<00000000402a9ab0>] sysfs_create_dir+0x98/0x128 [<000000004033d6c4>] kobject_add_internal+0x114/0x258 [<000000004033d9ac>] kobject_add_varg+0x7c/0xa0 [<000000004033df20>] kobject_add+0x50/0x90 [<000000004033dfb4>] kobject_create_and_add+0x54/0xc8 [<00000000407862a0>] cgroup_init+0x138/0x1f0 [<000000004077ce50>] start_kernel+0x5a0/0x840 [<000000004011fa3c>] start_parisc+0xa4/0xb8 [<00000000404bb034>] packet_ioctl+0x16c/0x208 [<000000004049ac30>] ip_mroute_setsockopt+0x260/0xf20 Tested-by: James Bottomley Signed-off-by: David Rientjes --- arch/parisc/mm/init.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe linux-parisc" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html diff --git a/arch/parisc/mm/init.c b/arch/parisc/mm/init.c --- a/arch/parisc/mm/init.c +++ b/arch/parisc/mm/init.c @@ -266,8 +266,10 @@ static void __init setup_bootmem(void) } memset(pfnnid_map, 0xff, sizeof(pfnnid_map)); - for (i = 0; i < npmem_ranges; i++) + for (i = 0; i < npmem_ranges; i++) { + node_set_state(i, N_NORMAL_MEMORY); node_set_online(i); + } #endif /*