Add zfs_btree_verify_intensity kernel module parameter

I see a few issues in the issue tracker that might be aided by being
able to turn this on. We have no module parameter for it, so I would
like to add one.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Closes #13874
This commit is contained in:
Richard Yao 2022-09-15 19:22:33 -04:00 committed by GitHub
parent ddb1fd91c0
commit b24d1c77f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 2 deletions

View File

@ -121,7 +121,7 @@ extern int zfs_vdev_async_read_max_active;
extern boolean_t spa_load_verify_dryrun; extern boolean_t spa_load_verify_dryrun;
extern boolean_t spa_mode_readable_spacemaps; extern boolean_t spa_mode_readable_spacemaps;
extern int zfs_reconstruct_indirect_combinations_max; extern int zfs_reconstruct_indirect_combinations_max;
extern int zfs_btree_verify_intensity; extern uint_t zfs_btree_verify_intensity;
static const char cmdname[] = "zdb"; static const char cmdname[] = "zdb";
uint8_t dump_opt[256]; uint8_t dump_opt[256];

View File

@ -1354,6 +1354,22 @@ _
.TE .TE
.Sy \& * No Requires debug build. .Sy \& * No Requires debug build.
. .
.It Sy zfs_btree_verify_intensity Ns = Ns Sy 0 Pq uint
Enables btree verification.
The following settings are culminative:
.TS
box;
lbz r l l .
Value Description
1 Verify height.
2 Verify pointers from children to parent.
3 Verify element counts.
4 Verify element order. (expensive)
* 5 Verify unused memory is poisoned. (expensive)
.TE
.Sy \& * No Requires debug build.
.
.It Sy zfs_free_leak_on_eio Ns = Ns Sy 0 Ns | Ns 1 Pq int .It Sy zfs_free_leak_on_eio Ns = Ns Sy 0 Ns | Ns 1 Pq int
If destroy encounters an If destroy encounters an
.Sy EIO .Sy EIO

View File

@ -53,7 +53,7 @@ kmem_cache_t *zfs_btree_leaf_cache;
* (while the asymptotic complexity of the other steps is the same, the * (while the asymptotic complexity of the other steps is the same, the
* importance of the constant factors cannot be denied). * importance of the constant factors cannot be denied).
*/ */
int zfs_btree_verify_intensity = 0; uint_t zfs_btree_verify_intensity = 0;
/* /*
* Convenience functions to silence warnings from memcpy/memmove's * Convenience functions to silence warnings from memcpy/memmove's
@ -2171,3 +2171,9 @@ zfs_btree_verify(zfs_btree_t *tree)
return; return;
zfs_btree_verify_poison(tree); zfs_btree_verify_poison(tree);
} }
/* BEGIN CSTYLED */
ZFS_MODULE_PARAM(zfs, zfs_, btree_verify_intensity, UINT, ZMOD_RW,
"Enable btree verification. Levels above 4 require ZFS be built "
"with debugging");
/* END CSTYLED */