summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-kernel/spl/files/spl-0.6.0_rc9-alias-km-sleep-with-km-pushpage.patch')
-rw-r--r--sys-kernel/spl/files/spl-0.6.0_rc9-alias-km-sleep-with-km-pushpage.patch56
1 files changed, 0 insertions, 56 deletions
diff --git a/sys-kernel/spl/files/spl-0.6.0_rc9-alias-km-sleep-with-km-pushpage.patch b/sys-kernel/spl/files/spl-0.6.0_rc9-alias-km-sleep-with-km-pushpage.patch
deleted file mode 100644
index fb0e5914e773..000000000000
--- a/sys-kernel/spl/files/spl-0.6.0_rc9-alias-km-sleep-with-km-pushpage.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 5c072b45b66e841ebc7952db7860c2ee7b024b08 Mon Sep 17 00:00:00 2001
-From: Richard Yao <ryao@cs.stonybrook.edu>
-Date: Mon, 25 Jun 2012 20:05:00 -0400
-Subject: [PATCH] Make KM_SLEEP an alias of KM_PUSHPAGE Use GFP_NOIO in
- KM_SLEEP
-
-This should prevent direct reclaim issues without requiring
-Linux-specific changes to code from Solaris. This is what is done in
-FreeBSD.
-
-Note that a change to __taskq_dispatch() module/spl/spl-taskq.c is
-needed to make this work. Changing KM_PUSHPAGE to use GFP_NOIO is fine,
-but adding __GFP_HIGH to that triggers a hard-coded panic in
-__taskq_dispatch() during zvol initialization. Removing the hard coded
-panic has no ill effects.
-
-Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu>
----
- include/sys/kmem.h | 2 +-
- module/spl/spl-taskq.c | 7 ++++---
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/include/sys/kmem.h b/include/sys/kmem.h
-index 796af44..633278b 100644
---- a/include/sys/kmem.h
-+++ b/include/sys/kmem.h
-@@ -41,7 +41,7 @@
- /*
- * Memory allocation interfaces
- */
--#define KM_SLEEP GFP_KERNEL /* Can sleep, never fails */
-+#define KM_SLEEP (GFP_NOIO | __GFP_HIGH) /* Can sleep, never fails */
- #define KM_NOSLEEP GFP_ATOMIC /* Can not sleep, may fail */
- #define KM_PUSHPAGE (GFP_NOIO | __GFP_HIGH) /* Use reserved memory */
- #define KM_NODEBUG __GFP_NOWARN /* Suppress warnings */
-diff --git a/module/spl/spl-taskq.c b/module/spl/spl-taskq.c
-index 0c546c7..5ab387e 100644
---- a/module/spl/spl-taskq.c
-+++ b/module/spl/spl-taskq.c
-@@ -255,9 +255,10 @@
- if (!(flags & (TQ_SLEEP | TQ_NOSLEEP)))
- flags |= TQ_SLEEP;
-
-- if (unlikely(in_atomic() && (flags & TQ_SLEEP)))
-- PANIC("May schedule while atomic: %s/0x%08x/%d\n",
-- current->comm, preempt_count(), current->pid);
-+ /* FIXME: Why does this fail when KM_SLEEP contains __GFP_HIGHMEM? */
-+ //if (unlikely(in_atomic() && (flags & TQ_SLEEP)))
-+ // PANIC("May schedule while atomic: %s/0x%08x/%d\n",
-+ // current->comm, preempt_count(), current->pid);
-
- spin_lock_irqsave(&tq->tq_lock, tq->tq_lock_flags);
-
---
-1.7.10
-