X-Git-Url: https://git.camperquake.de/gitweb.cgi?a=blobdiff_plain;f=module%2Fzfs%2Fspa.c;h=57d25c3d1b355eb0384b243c44464c99362b2f92;hb=86f35f34f419f6eaff53b25f463c13f72186b103;hp=93650386e651761fc1c968add69069061bccaa0c;hpb=451041db531dfec52c9e70fbd5d4179e30d61e2f;p=zfs.git diff --git a/module/zfs/spa.c b/module/zfs/spa.c index 9365038..57d25c3 100644 --- a/module/zfs/spa.c +++ b/module/zfs/spa.c @@ -106,7 +106,7 @@ const zio_taskq_info_t zio_taskqs[ZIO_TYPES][ZIO_TASKQ_TYPES] = { /* ISSUE ISSUE_HIGH INTR INTR_HIGH */ { ZTI_ONE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, { ZTI_FIX(8), ZTI_NULL, ZTI_BATCH, ZTI_NULL }, - { ZTI_BATCH, ZTI_FIX(5), ZTI_FIX(8), ZTI_FIX(5) }, + { ZTI_BATCH, ZTI_FIX(5), ZTI_FIX(16), ZTI_FIX(5) }, { ZTI_FIX(100), ZTI_NULL, ZTI_ONE, ZTI_NULL }, { ZTI_ONE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, { ZTI_ONE, ZTI_NULL, ZTI_ONE, ZTI_NULL }, @@ -614,9 +614,8 @@ 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 value, uint_t flags) { - uint_t flags = TASKQ_PREPOPULATE; boolean_t batch = B_FALSE; switch (mode) { @@ -666,13 +665,17 @@ 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 = TASKQ_PREPOPULATE; 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); + spa_taskq_create(spa, name, mode, value, flags); } } }