summaryrefslogtreecommitdiffstats
path: root/lib/libzpool
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2016-12-08 14:05:02 -0700
committerGitHub <[email protected]>2016-12-08 14:05:02 -0700
commitf95e64789157c2fa373cb424f2b5713be4c8a639 (patch)
treeade40261365bcfec245d1417d5900a7198451b04 /lib/libzpool
parent27f2b90d3e365dbe20d736792b390674e8236b17 (diff)
parent899662e344b150037180a6f61acd186fec773c5f (diff)
Speed up zvol import and export speed
Speed up import and export speed by: * Add system delay taskq * Parallel prefetch zvol dnodes during zvol_create_minors * Parallel zvol_free during zvol_remove_minors * Reduce list linear search using ida and hash Reviewed-by: Boris Protopopov <[email protected]> Reviewed-by: Brian Behlendorf <[email protected]> Signed-off-by: Chunwei Chen <[email protected]> Closes #5433
Diffstat (limited to 'lib/libzpool')
-rw-r--r--lib/libzpool/taskq.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/libzpool/taskq.c b/lib/libzpool/taskq.c
index c1f87e173..791d50981 100644
--- a/lib/libzpool/taskq.c
+++ b/lib/libzpool/taskq.c
@@ -32,6 +32,7 @@
int taskq_now;
taskq_t *system_taskq;
+taskq_t *system_delay_taskq;
#define TASKQ_ACTIVE 0x00010000
@@ -353,6 +354,8 @@ system_taskq_init(void)
{
system_taskq = taskq_create("system_taskq", 64, maxclsyspri, 4, 512,
TASKQ_DYNAMIC | TASKQ_PREPOPULATE);
+ system_delay_taskq = taskq_create("delay_taskq", 4, maxclsyspri, 4,
+ 512, TASKQ_DYNAMIC | TASKQ_PREPOPULATE);
}
void
@@ -360,4 +363,6 @@ system_taskq_fini(void)
{
taskq_destroy(system_taskq);
system_taskq = NULL; /* defensive */
+ taskq_destroy(system_delay_taskq);
+ system_delay_taskq = NULL;
}