-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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 6736 - ZFS per-vdev ZAPs #4515
Conversation
A few of the test bots are missing
|
That's a little strange. Nothing has changed on the buildbot which would cause that. Let me rerun those builds. |
6736 ZFS per-vdev ZAPs Reviewed by: Matthew Ahrens <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: George Wilson <[email protected]> Reviewed by: Don Brady <[email protected]> Reviewed by: Dan McDonald <[email protected]> References: https://www.illumos.org/issues/6736 openzfs/openzfs@215198a Ported-by: Don Brady <[email protected]>
rebasing to master and hoping missing zfs.sh issue was resolved |
@don-brady the missing |
ah, thanks for finding this! Will fix. |
Great, and I've updated the install step so that if any package fails to install it's treated as a failure so this will be more obvious in the future. |
almost made it. Debian test bot died in a ztest while joining the last thread (of 526 threads) so it was close to being done. Not sure what would cause the thread tear-down to die. |
@don-brady let me send it around again for Debian 8 and we'll see if it happens again. |
VERIFY(nvlist_size(nvl, &buflen, NV_ENCODE_XDR) == 0); | ||
|
||
buf = vmem_alloc(buflen, KM_SLEEP); | ||
buf = fnvlist_pack(nvl, &buflen); | ||
temp = kmem_zalloc(MAXPATHLEN, KM_SLEEP); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This minor restructuring is going to result in us using kmem_alloc() instead of vmem_alloc(). This poses a little bit of a problem since it's possible this allocation can be fairly large (40744 bytes as shown in #3251) which is why it was moved to vmem_alloc(). The SPL will generate console warnings for any allocations which exceed the default 32k threshold. We need to preserve the vmem_alloc() / vmem_free() here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, got it. I can revert it. Perhaps we could eventually make fnvlist_pack/fnvlist_pack_free use vmem allocations under the covers for linux kernel?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a good idea... and now that you mention it it appears we've already done it in commit 77aef6f. So actually, this code is good and we don't need to change anything in this patch.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
indeed. since the fnvlist_alloc is using KM_SLEEP it should be good to go.
@don-brady LGTM, only issue I spotted what that the kmem/vmem issue I mentioned needs to be addressed. Also FYI if there were significant changes (more than just context / paths) required to apply a OpenZFS commit to ZoL we have been adding a 'Porting Notes' section to the commit comment. It should describe any modifications you needed to make to port the patch. I find it particularly helpful when doing patch review since those areas really need extra scrutiny. And it's helpful to have that documentation in the future when referring back to a change. |
@don-brady since the kmem/vmem issue I mentioned inline with the patch isn't really an issue this patch LGTM. If you're good with this as the final version of this patch I can merge it. |
I'm using this patch with the metadata isolation work to store the vdev class info and so far it works as expected. |
@don-brady awesome, I'll merge it shortly. |
Squashed and merged as: e0ab3ab OpenZFS 6736 - ZFS per-vdev ZAPs |
Commit e0ab3ab introduced two blocks of code which are only needed when debugging is enabled. These blocks should be wrapped with a DEBUG for clarity and to prevent unused variable warnings during a production build. Signed-off-by: Brian Behlendorf <[email protected]> Issue openzfs#4515
Commit e0ab3ab introduced two blocks of code which are only needed when debugging is enabled. These blocks should be wrapped with a DEBUG for clarity and to prevent unused variable warnings during a production build. Signed-off-by: Brian Behlendorf <[email protected]> Issue openzfs#4515
Commit e0ab3ab introduced two blocks of code which are only needed when debugging is enabled. These blocks should be wrapped with ZFS_DEBUG for clarity and to prevent unused variable warnings in a production build. Signed-off-by: Brian Behlendorf <[email protected]> Issue openzfs#4515
Commit e0ab3ab introduced new per-vdev ZAP tests which should have used the $ZPOOL and $ZDB variabled. The tests passed the automated testing since both utilities but when running in-tree all of the new tests fail. Signed-off-by: Brian Behlendorf <[email protected]> Issue openzfs#4515
Commit e0ab3ab introduced new per-vdev ZAP tests which should have used the $ZPOOL and $ZDB variabled. The tests passed the automated testing since both utilities but when running in-tree all of the new tests fail. Signed-off-by: Don Brady <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #4515
Commit e0ab3ab introduced two blocks of code which are only needed when debugging is enabled. These blocks should be wrapped with ZFS_DEBUG for clarity and to prevent unused variable warnings in a production build. Signed-off-by: Don Brady <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes #4515
Commit e0ab3ab introduced two blocks of code which are only needed when debugging is enabled. These blocks should be wrapped with ZFS_DEBUG for clarity and to prevent unused variable warnings in a production build. Signed-off-by: Don Brady <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes openzfs#4515
6736 ZFS per-vdev ZAPs Reviewed by: Matthew Ahrens <[email protected]> Reviewed by: John Kennedy <[email protected]> Reviewed by: George Wilson <[email protected]> Reviewed by: Don Brady <[email protected]> Reviewed by: Dan McDonald <[email protected]> References: https://www.illumos.org/issues/6736 openzfs/openzfs@215198a Ported-by: Don Brady <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes openzfs#4515
Commit e0ab3ab introduced new per-vdev ZAP tests which should have used the $ZPOOL and $ZDB variabled. The tests passed the automated testing since both utilities but when running in-tree all of the new tests fail. Signed-off-by: Don Brady <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes openzfs#4515
Commit e0ab3ab introduced two blocks of code which are only needed when debugging is enabled. These blocks should be wrapped with ZFS_DEBUG for clarity and to prevent unused variable warnings in a production build. Signed-off-by: Don Brady <[email protected]> Signed-off-by: Brian Behlendorf <[email protected]> Closes openzfs#4515
6736 ZFS per-vdev ZAPs
Reviewed by: Matthew Ahrens [email protected]
Reviewed by: John Kennedy [email protected]
Reviewed by: George Wilson [email protected]
Reviewed by: Don Brady [email protected]
Reviewed by: Dan McDonald [email protected]
References:
https://www.illumos.org/issues/6736
openzfs/openzfs#72
Ported-by: Don Brady [email protected]