mirror of
				https://git.proxmox.com/git/mirror_zfs.git
				synced 2025-10-26 18:05:04 +03:00 
			
		
		
		
	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
	
	Block a user
	 Brian Behlendorf
						Brian Behlendorf