mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-23 19:04:45 +03:00
Revert Disable direct reclaim for z_wr_* threads
This commit used PF_MEMALLOC to prevent a memory reclaim deadlock.
However, commit 49be0ccf1f 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 <ryao@cs.stonybrook.edu>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #726
This commit is contained in:
committed by
Brian Behlendorf
parent
62c4165a1b
commit
44f21da41c
+3
-6
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user