[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20081009192126.GC8793@us.ibm.com>
Date: Thu, 9 Oct 2008 12:21:26 -0700
From: Gary Hade <garyhade@...ibm.com>
To: linux-mm@...ck.org, linux-kernel@...r.kernel.org
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Yasunori Goto <y-goto@...fujitsu.com>,
Badari Pulavarty <pbadari@...ibm.com>,
Mel Gorman <mel@....ul.ie>, Chris McDermott <lcm@...ibm.com>,
Gary Hade <garyhade@...ibm.com>, Ingo Molnar <mingo@...e.hu>,
Greg KH <greg@...ah.com>,
Dave Hansen <dave@...ux.vnet.ibm.com>,
Nish Aravamudan <nish.aravamudan@...il.com>
Subject: Subject: [PATCH 2/2] mm: include memory section subtree in sysfs
with only sparsemem enabled
Include memory section subtree in sysfs with only Sparsemem enabled.
Inclusion of the /sys/devices/system/memory subtree and symlinks
to the /sys/devices/system/memory/memory* memory section directories
from /sys/devices/system/node/node* currently depend on both Memory
Hotplug (CONFIG_MEMORY_HOTPLUG) and Sparsemem (CONFIG_SPARSEMEM) being
enabled. This change eliminates the Memory Hotplug dependency so that
the useful memory section information will be available in sysfs when
only Sparsemem is enabled.
Tested on 2-node x86_64, 2-node ppc64, and 2-node ia64 systems.
This change is in response to the suggestion received from Yasunori
Goto on 30 Sept 2008 in his review comments with respect to the
"mm: show node to memory section relationship with symlinks in sysfs"
patch posted on 29 Sept 2008.
Signed-off-by: Gary Hade <garyhade@...ibm.com>
---
drivers/base/Makefile | 2 +-
drivers/base/memory.c | 9 +++++++++
drivers/base/node.c | 4 ++--
include/linux/memory.h | 4 ++--
4 files changed, 14 insertions(+), 5 deletions(-)
Index: linux-2.6.27-rc8/drivers/base/Makefile
===================================================================
--- linux-2.6.27-rc8.orig/drivers/base/Makefile 2008-10-07 13:13:48.000000000 -0700
+++ linux-2.6.27-rc8/drivers/base/Makefile 2008-10-07 13:14:13.000000000 -0700
@@ -9,7 +9,7 @@
obj-$(CONFIG_ISA) += isa.o
obj-$(CONFIG_FW_LOADER) += firmware_class.o
obj-$(CONFIG_NUMA) += node.o
-obj-$(CONFIG_MEMORY_HOTPLUG_SPARSE) += memory.o
+obj-$(CONFIG_SPARSEMEM) += memory.o
obj-$(CONFIG_SMP) += topology.o
ifeq ($(CONFIG_SYSFS),y)
obj-$(CONFIG_MODULES) += module.o
Index: linux-2.6.27-rc8/drivers/base/memory.c
===================================================================
--- linux-2.6.27-rc8.orig/drivers/base/memory.c 2008-10-07 13:13:56.000000000 -0700
+++ linux-2.6.27-rc8/drivers/base/memory.c 2008-10-07 13:14:13.000000000 -0700
@@ -155,6 +155,7 @@
return blocking_notifier_call_chain(&memory_chain, val, v);
}
+#ifdef CONFIG_MEMORY_HOTPLUG
/*
* MEMORY_HOTPLUG depends on SPARSEMEM in mm/Kconfig, so it is
* OK to have direct references to sparsemem variables in here.
@@ -256,6 +257,14 @@
return ret;
return count;
}
+#else
+static ssize_t
+store_mem_state(struct sys_device *dev,
+ struct sysdev_attribute *attr, const char *buf, size_t count)
+{
+ return -EINVAL;
+}
+#endif /* CONFIG_MEMORY_HOTPLUG */
/*
* phys_device is a bad name for this. What I really want
Index: linux-2.6.27-rc8/drivers/base/node.c
===================================================================
--- linux-2.6.27-rc8.orig/drivers/base/node.c 2008-10-07 13:13:51.000000000 -0700
+++ linux-2.6.27-rc8/drivers/base/node.c 2008-10-07 13:14:13.000000000 -0700
@@ -226,7 +226,7 @@
return 0;
}
-#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
+#ifdef CONFIG_SPARSEMEM
#define page_initialized(page) (page->lru.next)
static int get_nid_for_pfn(unsigned long pfn)
@@ -320,7 +320,7 @@
}
#else
static int link_mem_sections(int nid) { return 0; }
-#endif /* CONFIG_MEMORY_HOTPLUG_SPARSE */
+#endif /* CONFIG_SPARSEMEM */
int register_one_node(int nid)
{
Index: linux-2.6.27-rc8/include/linux/memory.h
===================================================================
--- linux-2.6.27-rc8.orig/include/linux/memory.h 2008-10-07 13:13:41.000000000 -0700
+++ linux-2.6.27-rc8/include/linux/memory.h 2008-10-07 13:14:13.000000000 -0700
@@ -60,7 +60,7 @@
#define SLAB_CALLBACK_PRI 1
#define IPC_CALLBACK_PRI 10
-#ifndef CONFIG_MEMORY_HOTPLUG_SPARSE
+#ifndef CONFIG_SPARSEMEM
static inline int memory_dev_init(void)
{
return 0;
@@ -87,7 +87,7 @@
extern struct memory_block *find_memory_block(struct mem_section *);
#define CONFIG_MEM_BLOCK_SIZE (PAGES_PER_SECTION<<PAGE_SHIFT)
enum mem_add_context { BOOT, HOTPLUG };
-#endif /* CONFIG_MEMORY_HOTPLUG_SPARSE */
+#endif /* CONFIG_SPARSEMEM */
#ifdef CONFIG_MEMORY_HOTPLUG
#define hotplug_memory_notifier(fn, pri) { \
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists