Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758841AbXJCSAh (ORCPT ); Wed, 3 Oct 2007 14:00:37 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1755017AbXJCSA1 (ORCPT ); Wed, 3 Oct 2007 14:00:27 -0400 Received: from netops-testserver-4-out.sgi.com ([192.48.171.29]:36217 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1757341AbXJCSA0 (ORCPT ); Wed, 3 Oct 2007 14:00:26 -0400 Date: Wed, 3 Oct 2007 11:00:25 -0700 (PDT) From: Christoph Lameter X-X-Sender: clameter@schroedinger.engr.sgi.com To: Yasunori Goto cc: Andrew Morton , Linux Kernel ML , linux-mm Subject: Re: [Patch / 002](memory hotplug) Callback function to create kmem_cache_node. In-Reply-To: <20071003234201.B5F9.Y-GOTO@jp.fujitsu.com> Message-ID: References: <20071002105422.2790.Y-GOTO@jp.fujitsu.com> <20071003234201.B5F9.Y-GOTO@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1489 Lines: 36 On Wed, 3 Oct 2007, Yasunori Goto wrote: > > > > That would work. But it would be better to shrink the cache first. The > > first 2 slabs on a node may be empty and the shrinking will remove those. > > If you do not shrink then the code may falsely assume that there are > > objects on the node. > > I'm sorry, but I don't think I understand what you mean... :-( > Could you explain more? > > Which slabs should be shrinked? kmem_cache_node and kmem_cache_cpu? The slab for which you are trying to set the kmem_cache_node pointer to NULL needs to be shrunk. > I think kmem_cache_cpu should be disabled by cpu hotplug, > not memory/node hotplug. Basically, cpu should be offlined before > memory offline on the node. Hmmm.. Ok for cpu hotplug you could simply disregard the per cpu structure if the per cpu slab was flushed first. However, the per node structure may hold slabs with no objects even after all objects were removed on a node. These need to be flushed by calling kmem_cache_shrink() on the slab cache. On the other hand: If you can guarantee that they will not be used and that no objects are in them and that you can recover the pages used in different ways then zapping the per node pointer like that is okay. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/