zfs/cmd/zpool
George Wilson dbf9aed3cf Parallel pool import
This commit allow spa_load() to drop the spa_namespace_lock so
that imports can happen concurrently. Prior to dropping the
spa_namespace_lock, the import logic will set the spa_load_thread
value to track the thread which is doing the import.

Consumers of spa_lookup() retain the same behavior by blocking
when either a thread is holding the spa_namespace_lock or the
spa_load_thread value is set. This will ensure that critical
concurrent operations cannot take place while a pool is being
imported.

The zpool command is also enhanced to provide multi-threaded support
when invoking zpool import -a.

Lastly, zinject provides a mechanism to insert artificial delays
when importing a pool and new zfs tests are added to verify parallel
import functionality.

Contributions-by: Don Brady <don.brady@klarasystems.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: George Wilson <gwilson@delphix.com>
Closes #16093
2024-04-30 16:47:59 +10:00
..
compatibility.d Add compatibility file sets (ZoL 0.6.1, 0.6.4, OpenZFS 2.1) 2021-04-07 13:24:08 -07:00
os FreeBSD boot code reminder after zpool upgrade 2021-06-09 13:05:34 -07:00
zpool.d Remove basename(1). Clean up/shorten some coreutils pipelines 2022-02-16 17:58:55 -08:00
.gitignore Add .gitignore files to exclude build products 2010-01-08 11:35:17 -08:00
Makefile.am Rescan enclosure sysfs path on import 2021-11-02 16:31:05 -07:00
zpool_iter.c Rescan enclosure sysfs path on import 2021-11-02 16:31:05 -07:00
zpool_main.c Parallel pool import 2024-04-30 16:47:59 +10:00
zpool_util.c OpenZFS restructuring - zpool 2019-09-30 12:16:06 -07:00
zpool_util.h Rescan enclosure sysfs path on import 2021-11-02 16:31:05 -07:00
zpool_vdev.c Fix various typos 2021-04-07 13:27:11 -07:00