Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenZFS 8115 - parallel zfs mount #8092

Closed
wants to merge 2 commits into from
Closed

OpenZFS 8115 - parallel zfs mount #8092

wants to merge 2 commits into from

Conversation

don-brady
Copy link
Contributor

Motivation and Context

Add support for parallel zfs mounts

OpenZFS-issue: https://www.illumos.org/issues/8115
OpenZFS-commit: openzfs/openzfs@a3f0e2b569

Description

Porting Notes:

  • Use thread pools (tpool) API instead of introducing taskq interfaces to libzfs.
  • Use pthread_mutext for locks as mutex_t isn't available.
  • Ignore alternative libshare initialization since OpenZFS-7955 is not present on zfsonlinux.

How Has This Been Tested?

  1. ZTS for cli_root
  2. Manual testing with 2000 zfs file systems (2 levels) to confirm that both zpool import and zfs mount -a have improved mount times due to parallelization.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • Code cleanup (non-breaking change which makes code smaller or more readable)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation (a change to man pages or other documentation)

Checklist:

Authored by: Sebastien Roy <seb@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed by: Brad Lewis <brad.lewis@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Prashanth Sreenivasa <pks@delphix.com>
Approved by: Matt Ahrens <mahrens@delphix.com>
Ported-by: Don Brady <don.brady@delphix.com>

OpenZFS-issue: https://www.illumos.org/issues/8115
OpenZFS-commit: openzfs/openzfs@a3f0e2b569

Porting Notes:
* Use thread pools (tpool) API instead of introducing taskq interfaces
  to libzfs.
* Use pthread_mutext for locks as mutex_t isn't available.
* Ignore alternative libshare initialization since OpenZFS-7955 is
  not present on zfsonlinux.
@behlendorf behlendorf added the Status: Code Review Needed Ready for review and testing label Nov 5, 2018
@codecov
Copy link

codecov bot commented Nov 6, 2018

Codecov Report

Merging #8092 into master will increase coverage by <.01%.
The diff coverage is 96.29%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #8092      +/-   ##
==========================================
+ Coverage   78.46%   78.46%   +<.01%     
==========================================
  Files         377      377              
  Lines      114518   114612      +94     
==========================================
+ Hits        89851    89930      +79     
- Misses      24667    24682      +15
Flag Coverage Δ
#kernel 78.72% <ø> (-0.05%) ⬇️
#user 67.43% <96.29%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6644e5b...4833494. Read the comment docs.

@don-brady
Copy link
Contributor Author

Looks like there is an unexpected interaction between libzfs_mnttab_add and libzfs_mnttab_update that is breaking some of the cli_root/zfs_unmount tests. Investigating.

Signed-off-by: Don Brady <don.brady@delphix.com>
@behlendorf behlendorf self-requested a review November 8, 2018 01:43
@behlendorf behlendorf added Status: Accepted Ready to integrate (reviewed, tested) and removed Status: Code Review Needed Ready for review and testing labels Nov 8, 2018
GregorKopka pushed a commit to GregorKopka/zfs that referenced this pull request Jan 7, 2019
Porting Notes:
* Use thread pools (tpool) API instead of introducing taskq interfaces
  to libzfs.
* Use pthread_mutext for locks as mutex_t isn't available.
* Ignore alternative libshare initialization since OpenZFS-7955 is
  not present on zfsonlinux.

Authored by: Sebastien Roy <seb@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed by: Brad Lewis <brad.lewis@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Prashanth Sreenivasa <pks@delphix.com>
Authored by: Brian Behlendorf <behlendorf1@llnl.gov>
Approved by: Matt Ahrens <mahrens@delphix.com>
Ported-by: Don Brady <don.brady@delphix.com>

OpenZFS-issue: https://www.illumos.org/issues/8115
OpenZFS-commit: openzfs/openzfs@a3f0e2b569
Closes openzfs#8092
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Accepted Ready to integrate (reviewed, tested)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants