All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20100713101810.2835.45256.sendpatchset@danny.redhat>

diff --git a/a/1.txt b/N1/1.txt
index f10948c..270d1ee 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -91,9 +91,3 @@ index b9989c5..4b1fa10 100644
  
 -- 
 1.7.1.1
-
---
-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 352edd1..686f4f5 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -108,12 +108,6 @@
  " \t}\n"
  " \n"
  "-- \n"
- "1.7.1.1\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>"
+ 1.7.1.1
 
-29f519b352da2362cf8003e20629e98dafe503c76baa680d97e15cd9c5785a01
+c1e91687005eeec38b58fa28178814ad853c88276ef533b9d46c1172a9666f93

diff --git a/a/1.txt b/N2/1.txt
index f10948c..8b13789 100644
--- a/a/1.txt
+++ b/N2/1.txt
@@ -1,99 +1 @@
->From 32f474cffc76551ddb792454845bd473634219b5 Mon Sep 17 00:00:00 2001
-From: Xiaotian Feng <dfeng@redhat.com>
-Date: Tue, 13 Jul 2010 10:41:53 +0800
-Subject: [PATCH 07/30] mm: allow PF_MEMALLOC from softirq context
 
-This is needed to allow network softirq packet processing to make use of
-PF_MEMALLOC.
-
-Currently softirq context cannot use PF_MEMALLOC due to it not being associated
-with a task, and therefore not having task flags to fiddle with - thus the gfp
-to alloc flag mapping ignores the task flags when in interrupts (hard or soft)
-context.
-
-Allowing softirqs to make use of PF_MEMALLOC therefore requires some trickery.
-We basically borrow the task flags from whatever process happens to be
-preempted by the softirq.
-
-So we modify the gfp to alloc flags mapping to not exclude task flags in
-softirq context, and modify the softirq code to save, clear and restore the
-PF_MEMALLOC flag.
-
-The save and clear, ensures the preempted task's PF_MEMALLOC flag doesn't
-leak into the softirq. The restore ensures a softirq's PF_MEMALLOC flag cannot
-leak back into the preempted process.
-
-Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
-Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>
-Signed-off-by: Xiaotian Feng <dfeng@redhat.com>
----
- include/linux/sched.h |    7 +++++++
- kernel/softirq.c      |    3 +++
- mm/page_alloc.c       |    7 ++++---
- 3 files changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 1f25798..85b74b0 100644
---- a/include/linux/sched.h
-+++ b/include/linux/sched.h
-@@ -1765,6 +1765,13 @@ static inline void rcu_copy_process(struct task_struct *p)
- 
- #endif
- 
-+static inline void tsk_restore_flags(struct task_struct *p,
-+				     unsigned long pflags, unsigned long mask)
-+{
-+	p->flags &= ~mask;
-+	p->flags |= pflags & mask;
-+}
-+
- #ifdef CONFIG_SMP
- extern int set_cpus_allowed_ptr(struct task_struct *p,
- 				const struct cpumask *new_mask);
-diff --git a/kernel/softirq.c b/kernel/softirq.c
-index 07b4f1b..0770e78 100644
---- a/kernel/softirq.c
-+++ b/kernel/softirq.c
-@@ -194,6 +194,8 @@ asmlinkage void __do_softirq(void)
- 	__u32 pending;
- 	int max_restart = MAX_SOFTIRQ_RESTART;
- 	int cpu;
-+	unsigned long pflags = current->flags;
-+	current->flags &= ~PF_MEMALLOC;
- 
- 	pending = local_softirq_pending();
- 	account_system_vtime(current);
-@@ -246,6 +248,7 @@ restart:
- 
- 	account_system_vtime(current);
- 	_local_bh_enable();
-+	tsk_restore_flags(current, pflags, PF_MEMALLOC);
- }
- 
- #ifndef __ARCH_HAS_DO_SOFTIRQ
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index b9989c5..4b1fa10 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -1928,9 +1928,10 @@ int gfp_to_alloc_flags(gfp_t gfp_mask)
- 		alloc_flags |= ALLOC_HARDER;
- 
- 	if (likely(!(gfp_mask & __GFP_NOMEMALLOC))) {
--		if (!in_interrupt() &&
--		    ((p->flags & PF_MEMALLOC) ||
--		     unlikely(test_thread_flag(TIF_MEMDIE))))
-+		if (!in_irq() && (p->flags & PF_MEMALLOC))
-+			alloc_flags |= ALLOC_NO_WATERMARKS;
-+		else if (!in_interrupt() &&
-+				unlikely(test_thread_flag(TIF_MEMDIE)))
- 			alloc_flags |= ALLOC_NO_WATERMARKS;
- 	}
- 
--- 
-1.7.1.1
-
---
-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/N2/content_digest
index 352edd1..4dabac6 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -16,104 +16,5 @@
  " davem@davemloft.net\0"
  "\00:1\0"
  "b\0"
- ">From 32f474cffc76551ddb792454845bd473634219b5 Mon Sep 17 00:00:00 2001\n"
- "From: Xiaotian Feng <dfeng@redhat.com>\n"
- "Date: Tue, 13 Jul 2010 10:41:53 +0800\n"
- "Subject: [PATCH 07/30] mm: allow PF_MEMALLOC from softirq context\n"
- "\n"
- "This is needed to allow network softirq packet processing to make use of\n"
- "PF_MEMALLOC.\n"
- "\n"
- "Currently softirq context cannot use PF_MEMALLOC due to it not being associated\n"
- "with a task, and therefore not having task flags to fiddle with - thus the gfp\n"
- "to alloc flag mapping ignores the task flags when in interrupts (hard or soft)\n"
- "context.\n"
- "\n"
- "Allowing softirqs to make use of PF_MEMALLOC therefore requires some trickery.\n"
- "We basically borrow the task flags from whatever process happens to be\n"
- "preempted by the softirq.\n"
- "\n"
- "So we modify the gfp to alloc flags mapping to not exclude task flags in\n"
- "softirq context, and modify the softirq code to save, clear and restore the\n"
- "PF_MEMALLOC flag.\n"
- "\n"
- "The save and clear, ensures the preempted task's PF_MEMALLOC flag doesn't\n"
- "leak into the softirq. The restore ensures a softirq's PF_MEMALLOC flag cannot\n"
- "leak back into the preempted process.\n"
- "\n"
- "Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>\n"
- "Signed-off-by: Suresh Jayaraman <sjayaraman@suse.de>\n"
- "Signed-off-by: Xiaotian Feng <dfeng@redhat.com>\n"
- "---\n"
- " include/linux/sched.h |    7 +++++++\n"
- " kernel/softirq.c      |    3 +++\n"
- " mm/page_alloc.c       |    7 ++++---\n"
- " 3 files changed, 14 insertions(+), 3 deletions(-)\n"
- "\n"
- "diff --git a/include/linux/sched.h b/include/linux/sched.h\n"
- "index 1f25798..85b74b0 100644\n"
- "--- a/include/linux/sched.h\n"
- "+++ b/include/linux/sched.h\n"
- "@@ -1765,6 +1765,13 @@ static inline void rcu_copy_process(struct task_struct *p)\n"
- " \n"
- " #endif\n"
- " \n"
- "+static inline void tsk_restore_flags(struct task_struct *p,\n"
- "+\t\t\t\t     unsigned long pflags, unsigned long mask)\n"
- "+{\n"
- "+\tp->flags &= ~mask;\n"
- "+\tp->flags |= pflags & mask;\n"
- "+}\n"
- "+\n"
- " #ifdef CONFIG_SMP\n"
- " extern int set_cpus_allowed_ptr(struct task_struct *p,\n"
- " \t\t\t\tconst struct cpumask *new_mask);\n"
- "diff --git a/kernel/softirq.c b/kernel/softirq.c\n"
- "index 07b4f1b..0770e78 100644\n"
- "--- a/kernel/softirq.c\n"
- "+++ b/kernel/softirq.c\n"
- "@@ -194,6 +194,8 @@ asmlinkage void __do_softirq(void)\n"
- " \t__u32 pending;\n"
- " \tint max_restart = MAX_SOFTIRQ_RESTART;\n"
- " \tint cpu;\n"
- "+\tunsigned long pflags = current->flags;\n"
- "+\tcurrent->flags &= ~PF_MEMALLOC;\n"
- " \n"
- " \tpending = local_softirq_pending();\n"
- " \taccount_system_vtime(current);\n"
- "@@ -246,6 +248,7 @@ restart:\n"
- " \n"
- " \taccount_system_vtime(current);\n"
- " \t_local_bh_enable();\n"
- "+\ttsk_restore_flags(current, pflags, PF_MEMALLOC);\n"
- " }\n"
- " \n"
- " #ifndef __ARCH_HAS_DO_SOFTIRQ\n"
- "diff --git a/mm/page_alloc.c b/mm/page_alloc.c\n"
- "index b9989c5..4b1fa10 100644\n"
- "--- a/mm/page_alloc.c\n"
- "+++ b/mm/page_alloc.c\n"
- "@@ -1928,9 +1928,10 @@ int gfp_to_alloc_flags(gfp_t gfp_mask)\n"
- " \t\talloc_flags |= ALLOC_HARDER;\n"
- " \n"
- " \tif (likely(!(gfp_mask & __GFP_NOMEMALLOC))) {\n"
- "-\t\tif (!in_interrupt() &&\n"
- "-\t\t    ((p->flags & PF_MEMALLOC) ||\n"
- "-\t\t     unlikely(test_thread_flag(TIF_MEMDIE))))\n"
- "+\t\tif (!in_irq() && (p->flags & PF_MEMALLOC))\n"
- "+\t\t\talloc_flags |= ALLOC_NO_WATERMARKS;\n"
- "+\t\telse if (!in_interrupt() &&\n"
- "+\t\t\t\tunlikely(test_thread_flag(TIF_MEMDIE)))\n"
- " \t\t\talloc_flags |= ALLOC_NO_WATERMARKS;\n"
- " \t}\n"
- " \n"
- "-- \n"
- "1.7.1.1\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>"
 
-29f519b352da2362cf8003e20629e98dafe503c76baa680d97e15cd9c5785a01
+65a4a7e1eaee97b345d0935b0e910158808923aaa589468e1a7226c1409e7336

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.