All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Fontenot <nfont@austin.ibm.com>
To: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linuxppc-dev@lists.ozlabs.org
Cc: Greg KH <greg@kroah.com>,
	steiner@sgi.com, Robin Holt <holt@sgi.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Dave Hansen <dave@linux.vnet.ibm.com>
Subject: [PATCH 6/9] v3 Update node sysfs code
Date: Fri, 01 Oct 2010 13:34:34 -0500	[thread overview]
Message-ID: <4CA629BA.60100@austin.ibm.com> (raw)
In-Reply-To: <4CA62700.7010809@austin.ibm.com>

Update the node sysfs code to be aware of the new capability for a memory
block to contain multiple memory sections and be aware of the memory block
structure name changes (start_section_nr).  This requires an additional
parameter to unregister_mem_sect_under_nodes so that we know which memory
section of the memory block to unregister.

Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com>

---
 drivers/base/memory.c |    2 +-
 drivers/base/node.c   |   12 ++++++++----
 include/linux/node.h  |    6 ++++--
 3 files changed, 13 insertions(+), 7 deletions(-)

Index: linux-next/drivers/base/node.c
===================================================================
--- linux-next.orig/drivers/base/node.c	2010-09-30 14:44:38.000000000 -0500
+++ linux-next/drivers/base/node.c	2010-09-30 14:46:12.000000000 -0500
@@ -346,8 +346,10 @@
 		return -EFAULT;
 	if (!node_online(nid))
 		return 0;
-	sect_start_pfn = section_nr_to_pfn(mem_blk->phys_index);
-	sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1;
+
+	sect_start_pfn = section_nr_to_pfn(mem_blk->start_section_nr);
+	sect_end_pfn = section_nr_to_pfn(mem_blk->end_section_nr);
+	sect_end_pfn += PAGES_PER_SECTION - 1;
 	for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
 		int page_nid;
 
@@ -371,7 +373,8 @@
 }
 
 /* unregister memory section under all nodes that it spans */
-int unregister_mem_sect_under_nodes(struct memory_block *mem_blk)
+int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+				    unsigned long phys_index)
 {
 	NODEMASK_ALLOC(nodemask_t, unlinked_nodes, GFP_KERNEL);
 	unsigned long pfn, sect_start_pfn, sect_end_pfn;
@@ -383,7 +386,8 @@
 	if (!unlinked_nodes)
 		return -ENOMEM;
 	nodes_clear(*unlinked_nodes);
-	sect_start_pfn = section_nr_to_pfn(mem_blk->phys_index);
+
+	sect_start_pfn = section_nr_to_pfn(phys_index);
 	sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1;
 	for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
 		int nid;
Index: linux-next/drivers/base/memory.c
===================================================================
--- linux-next.orig/drivers/base/memory.c	2010-09-30 14:46:09.000000000 -0500
+++ linux-next/drivers/base/memory.c	2010-09-30 14:46:12.000000000 -0500
@@ -587,10 +587,10 @@
 
 	mutex_lock(&mem_sysfs_mutex);
 	mem = find_memory_block(section);
+	unregister_mem_sect_under_nodes(mem, __section_nr(section));
 
 	mem->section_count--;
 	if (mem->section_count == 0) {
-		unregister_mem_sect_under_nodes(mem);
 		mem_remove_simple_file(mem, phys_index);
 		mem_remove_simple_file(mem, end_phys_index);
 		mem_remove_simple_file(mem, state);
Index: linux-next/include/linux/node.h
===================================================================
--- linux-next.orig/include/linux/node.h	2010-09-30 14:44:38.000000000 -0500
+++ linux-next/include/linux/node.h	2010-09-30 14:46:12.000000000 -0500
@@ -44,7 +44,8 @@
 extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid);
 extern int register_mem_sect_under_node(struct memory_block *mem_blk,
 						int nid);
-extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk);
+extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+					   unsigned long phys_index);
 
 #ifdef CONFIG_HUGETLBFS
 extern void register_hugetlbfs_with_node(node_registration_func_t doregister,
@@ -72,7 +73,8 @@
 {
 	return 0;
 }
-static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk)
+static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+						  unsigned long phys_index)
 {
 	return 0;
 }

WARNING: multiple messages have this Message-ID (diff)
From: Nathan Fontenot <nfont@austin.ibm.com>
To: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linuxppc-dev@lists.ozlabs.org
Cc: Greg KH <greg@kroah.com>, Dave Hansen <dave@linux.vnet.ibm.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Robin Holt <holt@sgi.com>,
	steiner@sgi.com
Subject: [PATCH 6/9] v3 Update node sysfs code
Date: Fri, 01 Oct 2010 13:34:34 -0500	[thread overview]
Message-ID: <4CA629BA.60100@austin.ibm.com> (raw)
In-Reply-To: <4CA62700.7010809@austin.ibm.com>

Update the node sysfs code to be aware of the new capability for a memory
block to contain multiple memory sections and be aware of the memory block
structure name changes (start_section_nr).  This requires an additional
parameter to unregister_mem_sect_under_nodes so that we know which memory
section of the memory block to unregister.

Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com>

---
 drivers/base/memory.c |    2 +-
 drivers/base/node.c   |   12 ++++++++----
 include/linux/node.h  |    6 ++++--
 3 files changed, 13 insertions(+), 7 deletions(-)

Index: linux-next/drivers/base/node.c
===================================================================
--- linux-next.orig/drivers/base/node.c	2010-09-30 14:44:38.000000000 -0500
+++ linux-next/drivers/base/node.c	2010-09-30 14:46:12.000000000 -0500
@@ -346,8 +346,10 @@
 		return -EFAULT;
 	if (!node_online(nid))
 		return 0;
-	sect_start_pfn = section_nr_to_pfn(mem_blk->phys_index);
-	sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1;
+
+	sect_start_pfn = section_nr_to_pfn(mem_blk->start_section_nr);
+	sect_end_pfn = section_nr_to_pfn(mem_blk->end_section_nr);
+	sect_end_pfn += PAGES_PER_SECTION - 1;
 	for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
 		int page_nid;
 
@@ -371,7 +373,8 @@
 }
 
 /* unregister memory section under all nodes that it spans */
-int unregister_mem_sect_under_nodes(struct memory_block *mem_blk)
+int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+				    unsigned long phys_index)
 {
 	NODEMASK_ALLOC(nodemask_t, unlinked_nodes, GFP_KERNEL);
 	unsigned long pfn, sect_start_pfn, sect_end_pfn;
@@ -383,7 +386,8 @@
 	if (!unlinked_nodes)
 		return -ENOMEM;
 	nodes_clear(*unlinked_nodes);
-	sect_start_pfn = section_nr_to_pfn(mem_blk->phys_index);
+
+	sect_start_pfn = section_nr_to_pfn(phys_index);
 	sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1;
 	for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
 		int nid;
Index: linux-next/drivers/base/memory.c
===================================================================
--- linux-next.orig/drivers/base/memory.c	2010-09-30 14:46:09.000000000 -0500
+++ linux-next/drivers/base/memory.c	2010-09-30 14:46:12.000000000 -0500
@@ -587,10 +587,10 @@
 
 	mutex_lock(&mem_sysfs_mutex);
 	mem = find_memory_block(section);
+	unregister_mem_sect_under_nodes(mem, __section_nr(section));
 
 	mem->section_count--;
 	if (mem->section_count == 0) {
-		unregister_mem_sect_under_nodes(mem);
 		mem_remove_simple_file(mem, phys_index);
 		mem_remove_simple_file(mem, end_phys_index);
 		mem_remove_simple_file(mem, state);
Index: linux-next/include/linux/node.h
===================================================================
--- linux-next.orig/include/linux/node.h	2010-09-30 14:44:38.000000000 -0500
+++ linux-next/include/linux/node.h	2010-09-30 14:46:12.000000000 -0500
@@ -44,7 +44,8 @@
 extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid);
 extern int register_mem_sect_under_node(struct memory_block *mem_blk,
 						int nid);
-extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk);
+extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+					   unsigned long phys_index);
 
 #ifdef CONFIG_HUGETLBFS
 extern void register_hugetlbfs_with_node(node_registration_func_t doregister,
@@ -72,7 +73,8 @@
 {
 	return 0;
 }
-static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk)
+static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+						  unsigned long phys_index)
 {
 	return 0;
 }



WARNING: multiple messages have this Message-ID (diff)
From: Nathan Fontenot <nfont@austin.ibm.com>
To: linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	linuxppc-dev@lists.ozlabs.org
Cc: Greg KH <greg@kroah.com>, Dave Hansen <dave@linux.vnet.ibm.com>,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
	Robin Holt <holt@sgi.com>,
	steiner@sgi.com
Subject: [PATCH 6/9] v3 Update node sysfs code
Date: Fri, 01 Oct 2010 13:34:34 -0500	[thread overview]
Message-ID: <4CA629BA.60100@austin.ibm.com> (raw)
In-Reply-To: <4CA62700.7010809@austin.ibm.com>

Update the node sysfs code to be aware of the new capability for a memory
block to contain multiple memory sections and be aware of the memory block
structure name changes (start_section_nr).  This requires an additional
parameter to unregister_mem_sect_under_nodes so that we know which memory
section of the memory block to unregister.

Signed-off-by: Nathan Fontenot <nfont@austin.ibm.com>

---
 drivers/base/memory.c |    2 +-
 drivers/base/node.c   |   12 ++++++++----
 include/linux/node.h  |    6 ++++--
 3 files changed, 13 insertions(+), 7 deletions(-)

Index: linux-next/drivers/base/node.c
===================================================================
--- linux-next.orig/drivers/base/node.c	2010-09-30 14:44:38.000000000 -0500
+++ linux-next/drivers/base/node.c	2010-09-30 14:46:12.000000000 -0500
@@ -346,8 +346,10 @@
 		return -EFAULT;
 	if (!node_online(nid))
 		return 0;
-	sect_start_pfn = section_nr_to_pfn(mem_blk->phys_index);
-	sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1;
+
+	sect_start_pfn = section_nr_to_pfn(mem_blk->start_section_nr);
+	sect_end_pfn = section_nr_to_pfn(mem_blk->end_section_nr);
+	sect_end_pfn += PAGES_PER_SECTION - 1;
 	for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
 		int page_nid;
 
@@ -371,7 +373,8 @@
 }
 
 /* unregister memory section under all nodes that it spans */
-int unregister_mem_sect_under_nodes(struct memory_block *mem_blk)
+int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+				    unsigned long phys_index)
 {
 	NODEMASK_ALLOC(nodemask_t, unlinked_nodes, GFP_KERNEL);
 	unsigned long pfn, sect_start_pfn, sect_end_pfn;
@@ -383,7 +386,8 @@
 	if (!unlinked_nodes)
 		return -ENOMEM;
 	nodes_clear(*unlinked_nodes);
-	sect_start_pfn = section_nr_to_pfn(mem_blk->phys_index);
+
+	sect_start_pfn = section_nr_to_pfn(phys_index);
 	sect_end_pfn = sect_start_pfn + PAGES_PER_SECTION - 1;
 	for (pfn = sect_start_pfn; pfn <= sect_end_pfn; pfn++) {
 		int nid;
Index: linux-next/drivers/base/memory.c
===================================================================
--- linux-next.orig/drivers/base/memory.c	2010-09-30 14:46:09.000000000 -0500
+++ linux-next/drivers/base/memory.c	2010-09-30 14:46:12.000000000 -0500
@@ -587,10 +587,10 @@
 
 	mutex_lock(&mem_sysfs_mutex);
 	mem = find_memory_block(section);
+	unregister_mem_sect_under_nodes(mem, __section_nr(section));
 
 	mem->section_count--;
 	if (mem->section_count == 0) {
-		unregister_mem_sect_under_nodes(mem);
 		mem_remove_simple_file(mem, phys_index);
 		mem_remove_simple_file(mem, end_phys_index);
 		mem_remove_simple_file(mem, state);
Index: linux-next/include/linux/node.h
===================================================================
--- linux-next.orig/include/linux/node.h	2010-09-30 14:44:38.000000000 -0500
+++ linux-next/include/linux/node.h	2010-09-30 14:46:12.000000000 -0500
@@ -44,7 +44,8 @@
 extern int unregister_cpu_under_node(unsigned int cpu, unsigned int nid);
 extern int register_mem_sect_under_node(struct memory_block *mem_blk,
 						int nid);
-extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk);
+extern int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+					   unsigned long phys_index);
 
 #ifdef CONFIG_HUGETLBFS
 extern void register_hugetlbfs_with_node(node_registration_func_t doregister,
@@ -72,7 +73,8 @@
 {
 	return 0;
 }
-static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk)
+static inline int unregister_mem_sect_under_nodes(struct memory_block *mem_blk,
+						  unsigned long phys_index)
 {
 	return 0;
 }


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2010-10-01 18:34 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-01 18:22 [PATCH 0/9] v3 De-couple sysfs memory directories from memory sections Nathan Fontenot
2010-10-01 18:22 ` Nathan Fontenot
2010-10-01 18:22 ` Nathan Fontenot
2010-10-01 18:28 ` [PATCH 1/9] v3 Move find_memory_block routine Nathan Fontenot
2010-10-01 18:28   ` Nathan Fontenot
2010-10-01 18:28   ` Nathan Fontenot
2010-10-01 18:40   ` Robin Holt
2010-10-01 18:40     ` Robin Holt
2010-10-01 18:40     ` Robin Holt
2010-10-05  5:01   ` KAMEZAWA Hiroyuki
2010-10-05  5:01     ` KAMEZAWA Hiroyuki
2010-10-05  5:01     ` KAMEZAWA Hiroyuki
2010-10-01 18:29 ` [PATCH 2/9] v3 Add mutex for adding/removing memory blocks Nathan Fontenot
2010-10-01 18:29   ` Nathan Fontenot
2010-10-01 18:29   ` Nathan Fontenot
2010-10-01 18:45   ` Robin Holt
2010-10-01 18:45     ` Robin Holt
2010-10-01 18:45     ` Robin Holt
2010-10-05  5:06   ` KAMEZAWA Hiroyuki
2010-10-05  5:06     ` KAMEZAWA Hiroyuki
2010-10-05  5:06     ` KAMEZAWA Hiroyuki
2010-10-01 18:30 ` [PATCH 3/9] v3 Add section count to memory_block struct Nathan Fontenot
2010-10-01 18:30   ` Nathan Fontenot
2010-10-01 18:30   ` Nathan Fontenot
2010-10-01 18:46   ` Robin Holt
2010-10-01 18:46     ` Robin Holt
2010-10-01 18:46     ` Robin Holt
2010-10-05  5:08   ` KAMEZAWA Hiroyuki
2010-10-05  5:08     ` KAMEZAWA Hiroyuki
2010-10-05  5:08     ` KAMEZAWA Hiroyuki
2010-10-01 18:31 ` [PATCH 4/9] v3 Allow memory blocks to span multiple memory sections Nathan Fontenot
2010-10-01 18:31   ` Nathan Fontenot
2010-10-01 18:31   ` Nathan Fontenot
2010-10-01 18:52   ` Robin Holt
2010-10-01 18:52     ` Robin Holt
2010-10-01 18:52     ` Robin Holt
2010-10-01 18:56     ` Nathan Fontenot
2010-10-01 18:56       ` Nathan Fontenot
2010-10-01 18:56       ` Nathan Fontenot
2010-10-01 19:00   ` Nathan Fontenot
2010-10-01 19:00     ` Nathan Fontenot
2010-10-01 19:00     ` Nathan Fontenot
2010-10-01 19:20     ` Robin Holt
2010-10-01 19:20       ` Robin Holt
2010-10-01 19:20       ` Robin Holt
2010-10-05  5:13     ` KAMEZAWA Hiroyuki
2010-10-05  5:13       ` KAMEZAWA Hiroyuki
2010-10-05  5:13       ` KAMEZAWA Hiroyuki
2010-10-01 18:33 ` [PATCH 5/9] v3 rename phys_index properties of memory block struct Nathan Fontenot
2010-10-01 18:33   ` Nathan Fontenot
2010-10-01 18:33   ` Nathan Fontenot
2010-10-01 18:54   ` Robin Holt
2010-10-01 18:54     ` Robin Holt
2010-10-01 18:54     ` Robin Holt
2010-10-05  5:14   ` KAMEZAWA Hiroyuki
2010-10-05  5:14     ` KAMEZAWA Hiroyuki
2010-10-05  5:14     ` KAMEZAWA Hiroyuki
2010-10-01 18:34 ` Nathan Fontenot [this message]
2010-10-01 18:34   ` [PATCH 6/9] v3 Update node sysfs code Nathan Fontenot
2010-10-01 18:34   ` Nathan Fontenot
2010-10-01 18:55   ` Robin Holt
2010-10-01 18:55     ` Robin Holt
2010-10-01 18:55     ` Robin Holt
2010-10-05  5:15   ` KAMEZAWA Hiroyuki
2010-10-05  5:15     ` KAMEZAWA Hiroyuki
2010-10-05  5:15     ` KAMEZAWA Hiroyuki
2010-10-01 18:35 ` [PATCH 7/9] v3 Define memory_block_size_bytes for powerpc/pseries Nathan Fontenot
2010-10-01 18:35   ` Nathan Fontenot
2010-10-01 18:35   ` Nathan Fontenot
2010-10-01 18:56   ` Robin Holt
2010-10-01 18:56     ` Robin Holt
2010-10-01 18:56     ` Robin Holt
2010-10-03 17:55   ` Balbir Singh
2010-10-03 17:55     ` Balbir Singh
2010-10-03 17:55     ` Balbir Singh
2010-10-03 18:07     ` Robin Holt
2010-10-03 18:07       ` Robin Holt
2010-10-03 18:07       ` Robin Holt
2010-10-03 18:11       ` Dave Hansen
2010-10-03 18:11         ` Dave Hansen
2010-10-03 18:11         ` Dave Hansen
2010-10-03 18:27         ` Balbir Singh
2010-10-03 18:27           ` Balbir Singh
2010-10-03 18:27           ` Balbir Singh
2010-10-04 14:45           ` Nathan Fontenot
2010-10-04 14:45             ` Nathan Fontenot
2010-10-04 14:45             ` Nathan Fontenot
2010-10-01 18:37 ` [PATCH 8/9] v3 Define memory_block_size_bytes for x86_64 with CONFIG_X86_UV set Nathan Fontenot
2010-10-01 18:37   ` Nathan Fontenot
2010-10-01 18:37   ` Nathan Fontenot
2010-10-01 18:57   ` Robin Holt
2010-10-01 18:57     ` Robin Holt
2010-10-01 18:57     ` Robin Holt
2010-10-01 18:37 ` [PATCH 9/9] v3 Update memory hotplug documentation Nathan Fontenot
2010-10-01 18:37   ` Nathan Fontenot
2010-10-01 18:37   ` Nathan Fontenot
2010-10-01 18:58   ` Robin Holt
2010-10-01 18:58     ` Robin Holt
2010-10-01 18:58     ` Robin Holt
2010-10-05  5:18   ` KAMEZAWA Hiroyuki
2010-10-05  5:18     ` KAMEZAWA Hiroyuki
2010-10-05  5:18     ` KAMEZAWA Hiroyuki
2010-10-21 12:05 ` [PATCH 0/9] v3 De-couple sysfs memory directories from memory sections Nikanth Karthikesan
2010-10-21 12:05   ` Nikanth Karthikesan
2010-10-21 12:05   ` Nikanth Karthikesan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CA629BA.60100@austin.ibm.com \
    --to=nfont@austin.ibm.com \
    --cc=dave@linux.vnet.ibm.com \
    --cc=greg@kroah.com \
    --cc=holt@sgi.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=steiner@sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.