summaryrefslogtreecommitdiffstats
path: root/module
diff options
context:
space:
mode:
authorRichard Yao <[email protected]>2012-05-16 18:16:02 -0400
committerBrian Behlendorf <[email protected]>2012-08-27 12:01:37 -0700
commit44f21da41c441bfceec7b825991b6e68321d78a2 (patch)
tree42d42d46c19fd13f37fd753ae47427b0058d44a3 /module
parent62c4165a1bbfb7d68f8ebf93d32a6fc8ea4d4e33 (diff)
Revert Disable direct reclaim for z_wr_* threads
This commit used PF_MEMALLOC to prevent a memory reclaim deadlock. However, commit 49be0ccf1fdc2ce852271d4d2f8b7a9c2c4be6db eliminated the invocation of __cv_init(), which was the cause of the deadlock. PF_MEMALLOC has the side effect of permitting pages from ZONE_DMA to be allocated. The use of PF_MEMALLOC was found to cause stability problems when doing swap on zvols. Since this technique is known to cause problems and no longer fixes anything, we revert it. Signed-off-by: Richard Yao <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Issue #726
Diffstat (limited to 'module')
-rw-r--r--module/zfs/spa.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/module/zfs/spa.c b/module/zfs/spa.c
index 692664bec..7abe69902 100644
--- a/module/zfs/spa.c
+++ b/module/zfs/spa.c
@@ -672,8 +672,9 @@ spa_get_errlists(spa_t *spa, avl_tree_t *last, avl_tree_t *scrub)
static taskq_t *
spa_taskq_create(spa_t *spa, const char *name, enum zti_modes mode,
- uint_t value, uint_t flags)
+ uint_t value)
{
+ uint_t flags = TASKQ_PREPOPULATE;
boolean_t batch = B_FALSE;
switch (mode) {
@@ -723,17 +724,13 @@ spa_create_zio_taskqs(spa_t *spa)
const zio_taskq_info_t *ztip = &zio_taskqs[t][q];
enum zti_modes mode = ztip->zti_mode;
uint_t value = ztip->zti_value;
- uint_t flags = 0;
char name[32];
- if (t == ZIO_TYPE_WRITE)
- flags |= TASKQ_NORECLAIM;
-
(void) snprintf(name, sizeof (name),
"%s_%s", zio_type_name[t], zio_taskq_types[q]);
spa->spa_zio_taskq[t][q] =
- spa_taskq_create(spa, name, mode, value, flags);
+ spa_taskq_create(spa, name, mode, value);
}
}
}