mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-26 20:22:14 +03:00
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 <boris.protopopov@actifio.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Chunwei Chen <david.chen@osnexus.com> Closes #5433
This commit is contained in:
+4
-4
@@ -1208,7 +1208,7 @@ spa_deactivate(spa_t *spa)
|
||||
list_destroy(&spa->spa_evicting_os_list);
|
||||
list_destroy(&spa->spa_state_dirty_list);
|
||||
|
||||
taskq_cancel_id(system_taskq, spa->spa_deadman_tqid);
|
||||
taskq_cancel_id(system_delay_taskq, spa->spa_deadman_tqid);
|
||||
|
||||
for (t = 0; t < ZIO_TYPES; t++) {
|
||||
for (q = 0; q < ZIO_TASKQ_TYPES; q++) {
|
||||
@@ -6515,8 +6515,8 @@ spa_sync(spa_t *spa, uint64_t txg)
|
||||
tx = dmu_tx_create_assigned(dp, txg);
|
||||
|
||||
spa->spa_sync_starttime = gethrtime();
|
||||
taskq_cancel_id(system_taskq, spa->spa_deadman_tqid);
|
||||
spa->spa_deadman_tqid = taskq_dispatch_delay(system_taskq,
|
||||
taskq_cancel_id(system_delay_taskq, spa->spa_deadman_tqid);
|
||||
spa->spa_deadman_tqid = taskq_dispatch_delay(system_delay_taskq,
|
||||
spa_deadman, spa, TQ_SLEEP, ddi_get_lbolt() +
|
||||
NSEC_TO_TICK(spa->spa_deadman_synctime));
|
||||
|
||||
@@ -6704,7 +6704,7 @@ spa_sync(spa_t *spa, uint64_t txg)
|
||||
}
|
||||
dmu_tx_commit(tx);
|
||||
|
||||
taskq_cancel_id(system_taskq, spa->spa_deadman_tqid);
|
||||
taskq_cancel_id(system_delay_taskq, spa->spa_deadman_tqid);
|
||||
spa->spa_deadman_tqid = 0;
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user