diff options
author | Brian Behlendorf <[email protected]> | 2016-01-20 15:58:29 -0800 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-01-22 09:39:46 -0800 |
commit | 519129ff4e717f3026ae70b58d2db59d937aef06 (patch) | |
tree | c4c29be71b19583ff2c76bc8363103ba0087e4c2 /include/sys | |
parent | 19d55079aecb5c022c1c09e0eace4f7da7381a62 (diff) |
Illumos 6815179, 6844191
6815179 zpool import with a large number of LUNs is too slow
6844191 zpool import, scanning of disks should be multi-threaded
References:
https://github.com/illumos/illumos-gate/commit/4f67d75
Porting notes:
- This change was originally never ported to Linux due to it
dependence on the thread pool interface. This patch solves
that issue by switching the code to use the existing taskq
implementation which provides the same basic functionality.
However, in order for this to work properly thread_init()
and thread_fini() must be called around to taskq consumer
to perform the needed thread initialization.
- The check_one_slice, nozpool_all_slices, and check_slices
functions have been disabled for Linux. They are difficult,
but possible, to implement for Linux due to how partitions
are get names. Since this is only an optimization this code
can be added at a latter date.
Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/zfs_context.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/sys/zfs_context.h b/include/sys/zfs_context.h index 6ff4d4302..cc626fdaa 100644 --- a/include/sys/zfs_context.h +++ b/include/sys/zfs_context.h @@ -652,6 +652,8 @@ extern int random_get_pseudo_bytes(uint8_t *ptr, size_t len); extern void kernel_init(int); extern void kernel_fini(void); +extern void thread_init(void); +extern void thread_fini(void); struct spa; extern void nicenum(uint64_t num, char *buf); |