All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20091008162643.23192.65918.sendpatchset@localhost.localdomain>

diff --git a/a/1.txt b/N1/1.txt
index 6485f75..8b13789 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -1,120 +1 @@
-From rientjes@google.com Wed Oct  7 02:25:10 2009
 
-[PATCH 10/12] mm: clear node in N_HIGH_MEMORY and stop kswapd when all memory is offlined
-
-mm: clear node in N_HIGH_MEMORY and stop kswapd when all memory is offlined
-
-When memory is hot-removed, its node must be cleared in N_HIGH_MEMORY if
-there are no present pages left.
-
-In such a situation, kswapd must also be stopped since it has nothing
-left to do.
-
-Cc: Christoph Lameter <cl@linux-foundation.org>
-Cc: Yasunori Goto <y-goto@jp.fujitsu.com>
-Cc: Mel Gorman <mel@csn.ul.ie>
-Cc: Rafael J. Wysocki <rjw@sisk.pl>
-Cc: Rik van Riel <riel@redhat.com>
-Signed-off-by: David Rientjes <rientjes@google.com>
-Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com>
-
----
-
- include/linux/swap.h |    1 +
- mm/memory_hotplug.c  |    4 ++++
- mm/vmscan.c          |   28 ++++++++++++++++++++++------
- 3 files changed, 27 insertions(+), 6 deletions(-)
-
-Index: linux-2.6.31-mmotm-090925-1435/include/linux/swap.h
-===================================================================
---- linux-2.6.31-mmotm-090925-1435.orig/include/linux/swap.h	2009-09-28 10:10:39.000000000 -0400
-+++ linux-2.6.31-mmotm-090925-1435/include/linux/swap.h	2009-10-07 16:24:43.000000000 -0400
-@@ -273,6 +273,7 @@ extern int scan_unevictable_register_nod
- extern void scan_unevictable_unregister_node(struct node *node);
- 
- extern int kswapd_run(int nid);
-+extern void kswapd_stop(int nid);
- 
- #ifdef CONFIG_MMU
- /* linux/mm/shmem.c */
-Index: linux-2.6.31-mmotm-090925-1435/mm/memory_hotplug.c
-===================================================================
---- linux-2.6.31-mmotm-090925-1435.orig/mm/memory_hotplug.c	2009-09-28 10:10:39.000000000 -0400
-+++ linux-2.6.31-mmotm-090925-1435/mm/memory_hotplug.c	2009-10-07 16:24:43.000000000 -0400
-@@ -838,6 +838,10 @@ repeat:
- 
- 	setup_per_zone_wmarks();
- 	calculate_zone_inactive_ratio(zone);
-+	if (!node_present_pages(node)) {
-+		node_clear_state(node, N_HIGH_MEMORY);
-+		kswapd_stop(node);
-+	}
- 
- 	vm_total_pages = nr_free_pagecache_pages();
- 	writeback_set_ratelimit();
-Index: linux-2.6.31-mmotm-090925-1435/mm/vmscan.c
-===================================================================
---- linux-2.6.31-mmotm-090925-1435.orig/mm/vmscan.c	2009-09-28 10:10:43.000000000 -0400
-+++ linux-2.6.31-mmotm-090925-1435/mm/vmscan.c	2009-10-07 16:24:43.000000000 -0400
-@@ -2167,6 +2167,7 @@ static int kswapd(void *p)
- 	order = 0;
- 	for ( ; ; ) {
- 		unsigned long new_order;
-+		int ret;
- 
- 		prepare_to_wait(&pgdat->kswapd_wait, &wait, TASK_INTERRUPTIBLE);
- 		new_order = pgdat->kswapd_max_order;
-@@ -2178,19 +2179,23 @@ static int kswapd(void *p)
- 			 */
- 			order = new_order;
- 		} else {
--			if (!freezing(current))
-+			if (!freezing(current) && !kthread_should_stop())
- 				schedule();
- 
- 			order = pgdat->kswapd_max_order;
- 		}
- 		finish_wait(&pgdat->kswapd_wait, &wait);
- 
--		if (!try_to_freeze()) {
--			/* We can speed up thawing tasks if we don't call
--			 * balance_pgdat after returning from the refrigerator
--			 */
-+		ret = try_to_freeze();
-+		if (kthread_should_stop())
-+			break;
-+
-+		/*
-+		 * We can speed up thawing tasks if we don't call balance_pgdat
-+		 * after returning from the refrigerator
-+		 */
-+		if (!ret)
- 			balance_pgdat(pgdat, order);
--		}
- 	}
- 	return 0;
- }
-@@ -2445,6 +2450,17 @@ int kswapd_run(int nid)
- 	return ret;
- }
- 
-+/*
-+ * Called by memory hotplug when all memory in a node is offlined.
-+ */
-+void kswapd_stop(int nid)
-+{
-+	struct task_struct *kswapd = NODE_DATA(nid)->kswapd;
-+
-+	if (kswapd)
-+		kthread_stop(kswapd);
-+}
-+
- static int __init kswapd_init(void)
- {
- 	int nid;
-
---
-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>
diff --git a/a/content_digest b/N1/content_digest
index a1641f3..2243b91 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -15,125 +15,5 @@
  " eric.whitney@hp.com\0"
  "\00:1\0"
  "b\0"
- "From rientjes@google.com Wed Oct  7 02:25:10 2009\n"
- "\n"
- "[PATCH 10/12] mm: clear node in N_HIGH_MEMORY and stop kswapd when all memory is offlined\n"
- "\n"
- "mm: clear node in N_HIGH_MEMORY and stop kswapd when all memory is offlined\n"
- "\n"
- "When memory is hot-removed, its node must be cleared in N_HIGH_MEMORY if\n"
- "there are no present pages left.\n"
- "\n"
- "In such a situation, kswapd must also be stopped since it has nothing\n"
- "left to do.\n"
- "\n"
- "Cc: Christoph Lameter <cl@linux-foundation.org>\n"
- "Cc: Yasunori Goto <y-goto@jp.fujitsu.com>\n"
- "Cc: Mel Gorman <mel@csn.ul.ie>\n"
- "Cc: Rafael J. Wysocki <rjw@sisk.pl>\n"
- "Cc: Rik van Riel <riel@redhat.com>\n"
- "Signed-off-by: David Rientjes <rientjes@google.com>\n"
- "Signed-off-by: Lee Schermerhorn <lee.schermerhorn@hp.com>\n"
- "\n"
- "---\n"
- "\n"
- " include/linux/swap.h |    1 +\n"
- " mm/memory_hotplug.c  |    4 ++++\n"
- " mm/vmscan.c          |   28 ++++++++++++++++++++++------\n"
- " 3 files changed, 27 insertions(+), 6 deletions(-)\n"
- "\n"
- "Index: linux-2.6.31-mmotm-090925-1435/include/linux/swap.h\n"
- "===================================================================\n"
- "--- linux-2.6.31-mmotm-090925-1435.orig/include/linux/swap.h\t2009-09-28 10:10:39.000000000 -0400\n"
- "+++ linux-2.6.31-mmotm-090925-1435/include/linux/swap.h\t2009-10-07 16:24:43.000000000 -0400\n"
- "@@ -273,6 +273,7 @@ extern int scan_unevictable_register_nod\n"
- " extern void scan_unevictable_unregister_node(struct node *node);\n"
- " \n"
- " extern int kswapd_run(int nid);\n"
- "+extern void kswapd_stop(int nid);\n"
- " \n"
- " #ifdef CONFIG_MMU\n"
- " /* linux/mm/shmem.c */\n"
- "Index: linux-2.6.31-mmotm-090925-1435/mm/memory_hotplug.c\n"
- "===================================================================\n"
- "--- linux-2.6.31-mmotm-090925-1435.orig/mm/memory_hotplug.c\t2009-09-28 10:10:39.000000000 -0400\n"
- "+++ linux-2.6.31-mmotm-090925-1435/mm/memory_hotplug.c\t2009-10-07 16:24:43.000000000 -0400\n"
- "@@ -838,6 +838,10 @@ repeat:\n"
- " \n"
- " \tsetup_per_zone_wmarks();\n"
- " \tcalculate_zone_inactive_ratio(zone);\n"
- "+\tif (!node_present_pages(node)) {\n"
- "+\t\tnode_clear_state(node, N_HIGH_MEMORY);\n"
- "+\t\tkswapd_stop(node);\n"
- "+\t}\n"
- " \n"
- " \tvm_total_pages = nr_free_pagecache_pages();\n"
- " \twriteback_set_ratelimit();\n"
- "Index: linux-2.6.31-mmotm-090925-1435/mm/vmscan.c\n"
- "===================================================================\n"
- "--- linux-2.6.31-mmotm-090925-1435.orig/mm/vmscan.c\t2009-09-28 10:10:43.000000000 -0400\n"
- "+++ linux-2.6.31-mmotm-090925-1435/mm/vmscan.c\t2009-10-07 16:24:43.000000000 -0400\n"
- "@@ -2167,6 +2167,7 @@ static int kswapd(void *p)\n"
- " \torder = 0;\n"
- " \tfor ( ; ; ) {\n"
- " \t\tunsigned long new_order;\n"
- "+\t\tint ret;\n"
- " \n"
- " \t\tprepare_to_wait(&pgdat->kswapd_wait, &wait, TASK_INTERRUPTIBLE);\n"
- " \t\tnew_order = pgdat->kswapd_max_order;\n"
- "@@ -2178,19 +2179,23 @@ static int kswapd(void *p)\n"
- " \t\t\t */\n"
- " \t\t\torder = new_order;\n"
- " \t\t} else {\n"
- "-\t\t\tif (!freezing(current))\n"
- "+\t\t\tif (!freezing(current) && !kthread_should_stop())\n"
- " \t\t\t\tschedule();\n"
- " \n"
- " \t\t\torder = pgdat->kswapd_max_order;\n"
- " \t\t}\n"
- " \t\tfinish_wait(&pgdat->kswapd_wait, &wait);\n"
- " \n"
- "-\t\tif (!try_to_freeze()) {\n"
- "-\t\t\t/* We can speed up thawing tasks if we don't call\n"
- "-\t\t\t * balance_pgdat after returning from the refrigerator\n"
- "-\t\t\t */\n"
- "+\t\tret = try_to_freeze();\n"
- "+\t\tif (kthread_should_stop())\n"
- "+\t\t\tbreak;\n"
- "+\n"
- "+\t\t/*\n"
- "+\t\t * We can speed up thawing tasks if we don't call balance_pgdat\n"
- "+\t\t * after returning from the refrigerator\n"
- "+\t\t */\n"
- "+\t\tif (!ret)\n"
- " \t\t\tbalance_pgdat(pgdat, order);\n"
- "-\t\t}\n"
- " \t}\n"
- " \treturn 0;\n"
- " }\n"
- "@@ -2445,6 +2450,17 @@ int kswapd_run(int nid)\n"
- " \treturn ret;\n"
- " }\n"
- " \n"
- "+/*\n"
- "+ * Called by memory hotplug when all memory in a node is offlined.\n"
- "+ */\n"
- "+void kswapd_stop(int nid)\n"
- "+{\n"
- "+\tstruct task_struct *kswapd = NODE_DATA(nid)->kswapd;\n"
- "+\n"
- "+\tif (kswapd)\n"
- "+\t\tkthread_stop(kswapd);\n"
- "+}\n"
- "+\n"
- " static int __init kswapd_init(void)\n"
- " {\n"
- " \tint nid;\n"
- "\n"
- "--\n"
- "To unsubscribe, send a message with 'unsubscribe linux-mm' in\n"
- "the body to majordomo@kvack.org.  For more info on Linux MM,\n"
- "see: http://www.linux-mm.org/ .\n"
- "Don't email: <a href=mailto:\"dont@kvack.org\"> email@kvack.org </a>"
 
-b5af038df593f122d242652889d481e4fa1c5243fc1bc6d812cdcd87ebb687b8
+a00cf96809acf4d9eb4988ae5c93b3d5b2ef94d27fbabc0f85e117d0eb4ec510

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.