ZTS: fix removal_condense_export test case
It's been observed in the CI that the required 25% of obsolete bytes in the mapping can be to high a threshold for this test resulting in condensing never being triggered and a test failure. To prevent these failures make the existing zfs_condense_indirect_obsolete_pct tuning available so the obsolete percentage can be reduced from 25% to 5% during this test. Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Reviewed-by: George Melikov <mail@gmelikov.ru> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #11869
This commit is contained in:
parent
f831d1377f
commit
0839934d84
|
@ -1370,6 +1370,19 @@ to throttle vdev removal speed.
|
||||||
Default value: \fB0\fR (no throttle).
|
Default value: \fB0\fR (no throttle).
|
||||||
.RE
|
.RE
|
||||||
|
|
||||||
|
.sp
|
||||||
|
.ne 2
|
||||||
|
.na
|
||||||
|
\fBzfs_condense_indirect_obsolete_pct\fR (int)
|
||||||
|
.ad
|
||||||
|
.RS 12n
|
||||||
|
Minimum percent of obsolete bytes in vdev mapping required to attempt to
|
||||||
|
condense (see \fBzfs_condense_indirect_vdevs_enable\fR). Intended for use
|
||||||
|
with the test suite to facilitate triggering condensing as needed.
|
||||||
|
.sp
|
||||||
|
Default value: \fB25\fR%.
|
||||||
|
.RE
|
||||||
|
|
||||||
.sp
|
.sp
|
||||||
.ne 2
|
.ne 2
|
||||||
.na
|
.na
|
||||||
|
|
|
@ -181,7 +181,7 @@ int zfs_condense_indirect_vdevs_enable = B_TRUE;
|
||||||
* condenses. Higher values will condense less often (causing less
|
* condenses. Higher values will condense less often (causing less
|
||||||
* i/o); lower values will reduce the mapping size more quickly.
|
* i/o); lower values will reduce the mapping size more quickly.
|
||||||
*/
|
*/
|
||||||
int zfs_indirect_condense_obsolete_pct = 25;
|
int zfs_condense_indirect_obsolete_pct = 25;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Condense if the obsolete space map takes up more than this amount of
|
* Condense if the obsolete space map takes up more than this amount of
|
||||||
|
@ -446,7 +446,7 @@ vdev_indirect_should_condense(vdev_t *vd)
|
||||||
* by the mapping.
|
* by the mapping.
|
||||||
*/
|
*/
|
||||||
if (bytes_obsolete * 100 / bytes_mapped >=
|
if (bytes_obsolete * 100 / bytes_mapped >=
|
||||||
zfs_indirect_condense_obsolete_pct &&
|
zfs_condense_indirect_obsolete_pct &&
|
||||||
mapping_size > zfs_condense_min_mapping_bytes) {
|
mapping_size > zfs_condense_min_mapping_bytes) {
|
||||||
zfs_dbgmsg("should condense vdev %llu because obsolete "
|
zfs_dbgmsg("should condense vdev %llu because obsolete "
|
||||||
"spacemap covers %d%% of %lluMB mapping",
|
"spacemap covers %d%% of %lluMB mapping",
|
||||||
|
@ -1886,6 +1886,9 @@ EXPORT_SYMBOL(vdev_obsolete_sm_object);
|
||||||
ZFS_MODULE_PARAM(zfs_condense, zfs_condense_, indirect_vdevs_enable, INT, ZMOD_RW,
|
ZFS_MODULE_PARAM(zfs_condense, zfs_condense_, indirect_vdevs_enable, INT, ZMOD_RW,
|
||||||
"Whether to attempt condensing indirect vdev mappings");
|
"Whether to attempt condensing indirect vdev mappings");
|
||||||
|
|
||||||
|
ZFS_MODULE_PARAM(zfs_condense, zfs_condense_, indirect_obsolete_pct, INT, ZMOD_RW,
|
||||||
|
"Minimum obsolete percent of bytes in the mapping to attempt condensing");
|
||||||
|
|
||||||
ZFS_MODULE_PARAM(zfs_condense, zfs_condense_, min_mapping_bytes, ULONG, ZMOD_RW,
|
ZFS_MODULE_PARAM(zfs_condense, zfs_condense_, min_mapping_bytes, ULONG, ZMOD_RW,
|
||||||
"Don't bother condensing if the mapping uses less than this amount of "
|
"Don't bother condensing if the mapping uses less than this amount of "
|
||||||
"memory");
|
"memory");
|
||||||
|
|
|
@ -261,7 +261,6 @@ if sys.platform.startswith('freebsd'):
|
||||||
'delegate/zfs_allow_003_pos': ['FAIL', known_reason],
|
'delegate/zfs_allow_003_pos': ['FAIL', known_reason],
|
||||||
'inheritance/inherit_001_pos': ['FAIL', '11829'],
|
'inheritance/inherit_001_pos': ['FAIL', '11829'],
|
||||||
'pool_checkpoint/checkpoint_zhack_feat': ['FAIL', '11854'],
|
'pool_checkpoint/checkpoint_zhack_feat': ['FAIL', '11854'],
|
||||||
'removal/removal_condense_export': ['FAIL', known_reason],
|
|
||||||
'resilver/resilver_restart_001': ['FAIL', known_reason],
|
'resilver/resilver_restart_001': ['FAIL', known_reason],
|
||||||
'zvol/zvol_misc/zvol_misc_volmode': ['FAIL', known_reason],
|
'zvol/zvol_misc/zvol_misc_volmode': ['FAIL', known_reason],
|
||||||
})
|
})
|
||||||
|
|
|
@ -25,6 +25,7 @@ CHECKSUM_EVENTS_PER_SECOND checksum_events_per_second zfs_checksum_events_per_se
|
||||||
COMMIT_TIMEOUT_PCT commit_timeout_pct zfs_commit_timeout_pct
|
COMMIT_TIMEOUT_PCT commit_timeout_pct zfs_commit_timeout_pct
|
||||||
COMPRESSED_ARC_ENABLED compressed_arc_enabled zfs_compressed_arc_enabled
|
COMPRESSED_ARC_ENABLED compressed_arc_enabled zfs_compressed_arc_enabled
|
||||||
CONDENSE_INDIRECT_COMMIT_ENTRY_DELAY_MS condense.indirect_commit_entry_delay_ms zfs_condense_indirect_commit_entry_delay_ms
|
CONDENSE_INDIRECT_COMMIT_ENTRY_DELAY_MS condense.indirect_commit_entry_delay_ms zfs_condense_indirect_commit_entry_delay_ms
|
||||||
|
CONDENSE_INDIRECT_OBSOLETE_PCT condense.indirect_obsolete_pct zfs_condense_indirect_obsolete_pct
|
||||||
CONDENSE_MIN_MAPPING_BYTES condense.min_mapping_bytes zfs_condense_min_mapping_bytes
|
CONDENSE_MIN_MAPPING_BYTES condense.min_mapping_bytes zfs_condense_min_mapping_bytes
|
||||||
DBUF_CACHE_MAX_BYTES dbuf_cache.max_bytes dbuf_cache_max_bytes
|
DBUF_CACHE_MAX_BYTES dbuf_cache.max_bytes dbuf_cache_max_bytes
|
||||||
DEADMAN_CHECKTIME_MS deadman.checktime_ms zfs_deadman_checktime_ms
|
DEADMAN_CHECKTIME_MS deadman.checktime_ms zfs_deadman_checktime_ms
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
function reset
|
function reset
|
||||||
{
|
{
|
||||||
log_must set_tunable64 CONDENSE_INDIRECT_COMMIT_ENTRY_DELAY_MS 0
|
log_must set_tunable64 CONDENSE_INDIRECT_COMMIT_ENTRY_DELAY_MS 0
|
||||||
|
log_must set_tunable64 CONDENSE_INDIRECT_OBSOLETE_PCT 25
|
||||||
log_must set_tunable64 CONDENSE_MIN_MAPPING_BYTES 131072
|
log_must set_tunable64 CONDENSE_MIN_MAPPING_BYTES 131072
|
||||||
default_cleanup_noexit
|
default_cleanup_noexit
|
||||||
}
|
}
|
||||||
|
@ -31,6 +32,7 @@ function reset
|
||||||
default_setup_noexit "$DISKS" "true"
|
default_setup_noexit "$DISKS" "true"
|
||||||
log_onexit reset
|
log_onexit reset
|
||||||
log_must set_tunable64 CONDENSE_INDIRECT_COMMIT_ENTRY_DELAY_MS 5000
|
log_must set_tunable64 CONDENSE_INDIRECT_COMMIT_ENTRY_DELAY_MS 5000
|
||||||
|
log_must set_tunable64 CONDENSE_INDIRECT_OBSOLETE_PCT 5
|
||||||
log_must set_tunable64 CONDENSE_MIN_MAPPING_BYTES 1
|
log_must set_tunable64 CONDENSE_MIN_MAPPING_BYTES 1
|
||||||
|
|
||||||
log_must zfs set recordsize=512 $TESTPOOL/$TESTFS
|
log_must zfs set recordsize=512 $TESTPOOL/$TESTFS
|
||||||
|
|
Loading…
Reference in New Issue