diff options
author | Brian Behlendorf <[email protected]> | 2016-12-08 14:05:02 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2016-12-08 14:05:02 -0700 |
commit | f95e64789157c2fa373cb424f2b5713be4c8a639 (patch) | |
tree | ade40261365bcfec245d1417d5900a7198451b04 /lib | |
parent | 27f2b90d3e365dbe20d736792b390674e8236b17 (diff) | |
parent | 899662e344b150037180a6f61acd186fec773c5f (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')
-rw-r--r-- | lib/libzpool/taskq.c | 5 |
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; } |