| 
									
										
										
										
											2020-01-15 01:57:28 +03:00
										 |  |  | # This file exports variables for each tunable used in the test suite. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Different platforms use different names for most tunables. To avoid littering | 
					
						
							|  |  |  | # the tests with conditional logic for deciding how to set each tunable, the | 
					
						
							|  |  |  | # logic is instead consolidated to this one file. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Any use of tunables in tests must use a name defined here. New entries | 
					
						
							|  |  |  | # should be added to the table as needed. Please keep the table sorted | 
					
						
							|  |  |  | # alphabetically for ease of maintenance. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Platform-specific tunables should still use a NAME from this table for | 
					
						
							|  |  |  | # consistency. Enter UNSUPPORTED in the column for platforms on which the | 
					
						
							|  |  |  | # tunable is not implemented. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | UNAME=$(uname) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # NAME				FreeBSD tunable			Linux tunable | 
					
						
							|  |  |  | cat <<%%%% | | 
					
						
							|  |  |  | ADMIN_SNAPSHOT			UNSUPPORTED			zfs_admin_snapshot | 
					
						
							|  |  |  | ALLOW_REDACTED_DATASET_MOUNT	allow_redacted_dataset_mount	zfs_allow_redacted_dataset_mount | 
					
						
							|  |  |  | ARC_MAX				arc.max				zfs_arc_max | 
					
						
							|  |  |  | ARC_MIN				arc.min				zfs_arc_min | 
					
						
							|  |  |  | ASYNC_BLOCK_MAX_BLOCKS		async_block_max_blocks		zfs_async_block_max_blocks | 
					
						
							|  |  |  | CHECKSUM_EVENTS_PER_SECOND	checksum_events_per_second	zfs_checksum_events_per_second | 
					
						
							|  |  |  | COMMIT_TIMEOUT_PCT		commit_timeout_pct		zfs_commit_timeout_pct | 
					
						
							|  |  |  | 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_MIN_MAPPING_BYTES	condense.min_mapping_bytes	zfs_condense_min_mapping_bytes | 
					
						
							|  |  |  | DBUF_CACHE_MAX_BYTES		dbuf_cache.max_bytes		dbuf_cache_max_bytes | 
					
						
							|  |  |  | DEADMAN_CHECKTIME_MS		deadman_checktime_ms		zfs_deadman_checktime_ms | 
					
						
							|  |  |  | DEADMAN_FAILMODE		deadman_failmode		zfs_deadman_failmode | 
					
						
							|  |  |  | DEADMAN_SYNCTIME_MS		deadman_synctime_ms		zfs_deadman_synctime_ms | 
					
						
							|  |  |  | DEADMAN_ZIOTIME_MS		deadman_ziotime_ms		zfs_deadman_ziotime_ms | 
					
						
							| 
									
										
										
										
											2020-01-29 22:25:15 +03:00
										 |  |  | DISABLE_IVSET_GUID_CHECK	disable_ivset_guid_check	zfs_disable_ivset_guid_check | 
					
						
							| 
									
										
										
										
											2020-01-15 01:57:28 +03:00
										 |  |  | INITIALIZE_CHUNK_SIZE		initialize_chunk_size		zfs_initialize_chunk_size | 
					
						
							|  |  |  | INITIALIZE_VALUE		initialize_value		zfs_initialize_value | 
					
						
							|  |  |  | KEEP_LOG_SPACEMAPS_AT_EXPORT	keep_log_spacemaps_at_export	zfs_keep_log_spacemaps_at_export | 
					
						
							| 
									
										
										
										
											2020-03-31 20:46:48 +03:00
										 |  |  | L2ARC_NOPREFETCH		l2arc.noprefetch		l2arc_noprefetch | 
					
						
							| 
									
										
										
										
											2020-04-14 21:36:28 +03:00
										 |  |  | L2ARC_REBUILD_BLOCKS_MIN_L2SIZE	l2arc.rebuild_blocks_min_l2size	l2arc_rebuild_blocks_min_l2size | 
					
						
							|  |  |  | L2ARC_REBUILD_ENABLED		l2arc.rebuild_enabled		l2arc_rebuild_enabled | 
					
						
							| 
									
										
										
										
											2020-06-09 20:15:08 +03:00
										 |  |  | L2ARC_TRIM_AHEAD		UNSUPPORTED			l2arc_trim_ahead | 
					
						
							| 
									
										
										
										
											2020-03-31 20:46:48 +03:00
										 |  |  | L2ARC_WRITE_BOOST		l2arc.write_boost		l2arc_write_boost | 
					
						
							|  |  |  | L2ARC_WRITE_MAX			l2arc.write_max			l2arc_write_max | 
					
						
							| 
									
										
										
										
											2020-01-15 01:57:28 +03:00
										 |  |  | LIVELIST_CONDENSE_NEW_ALLOC	livelist.condense.new_alloc	zfs_livelist_condense_new_alloc | 
					
						
							|  |  |  | LIVELIST_CONDENSE_SYNC_CANCEL	livelist.condense.sync_cancel	zfs_livelist_condense_sync_cancel | 
					
						
							|  |  |  | LIVELIST_CONDENSE_SYNC_PAUSE	livelist.condense.sync_pause	zfs_livelist_condense_sync_pause | 
					
						
							|  |  |  | LIVELIST_CONDENSE_ZTHR_CANCEL	livelist.condense.zthr_cancel	zfs_livelist_condense_zthr_cancel | 
					
						
							|  |  |  | LIVELIST_CONDENSE_ZTHR_PAUSE	livelist.condense.zthr_pause	zfs_livelist_condense_zthr_pause | 
					
						
							|  |  |  | LIVELIST_MAX_ENTRIES		livelist.max_entries		zfs_livelist_max_entries | 
					
						
							|  |  |  | LIVELIST_MIN_PERCENT_SHARED	livelist.min_percent_shared	zfs_livelist_min_percent_shared | 
					
						
							|  |  |  | MAX_DATASET_NESTING		max_dataset_nesting		zfs_max_dataset_nesting | 
					
						
							|  |  |  | MAX_MISSING_TVDS		max_missing_tvds		zfs_max_missing_tvds | 
					
						
							|  |  |  | METASLAB_DEBUG_LOAD		metaslab.debug_load		metaslab_debug_load | 
					
						
							|  |  |  | METASLAB_FORCE_GANGING		metaslab.force_ganging		metaslab_force_ganging | 
					
						
							|  |  |  | MULTIHOST_FAIL_INTERVALS	multihost.fail_intervals	zfs_multihost_fail_intervals | 
					
						
							|  |  |  | MULTIHOST_HISTORY		UNSUPPORTED			zfs_multihost_history | 
					
						
							|  |  |  | MULTIHOST_IMPORT_INTERVALS	multihost.import_intervals	zfs_multihost_import_intervals | 
					
						
							|  |  |  | MULTIHOST_INTERVAL		UNSUPPORTED			zfs_multihost_interval | 
					
						
							|  |  |  | OVERRIDE_ESTIMATE_RECORDSIZE	send.override_estimate_recordsize	zfs_override_estimate_recordsize | 
					
						
							|  |  |  | REMOVAL_SUSPEND_PROGRESS	removal_suspend_progress	zfs_removal_suspend_progress | 
					
						
							|  |  |  | REMOVE_MAX_SEGMENT		remove_max_segment		zfs_remove_max_segment | 
					
						
							|  |  |  | RESILVER_MIN_TIME_MS		resilver_min_time_ms		zfs_resilver_min_time_ms | 
					
						
							| 
									
										
											  
											
												Resilver restarts unnecessarily when it encounters errors
When a resilver finishes, vdev_dtl_reassess is called to hopefully
excise DTL_MISSING (amongst other things). If there are errors during
the resilver, they are tracked in DTL_SCRUB, as spelled out in the
block comment in vdev.c. DTL_SCRUB is in-core only, so it can only
be used if the pool was online for the whole resilver. This state is
tracked with the spa_scrub_started flag, which only gets set when
the scan is initialized. Unfortunately, this flag gets cleared right
before vdev_dtl_reassess gets called, so if there are any errors
during the scan, DTL_MISSING will never get excised and the resilver
will just continually restart. This fix simply moves clearing that
flag until after the call to vdev_dtl_reasses.
In addition, if a pool is imported and already has scn_errors > 0,
this change will restart the resilver immediately instead of doing
the rest of the scan and then restarting it from the beginning. On
the other hand, if scn_errors == 0 at import, then no errors have
been encountered so far, so the spa_scrub_started flag can be safely
set.
A test has been added to verify that resilver does not restart when
relevant DTL's are available.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Paul Zuchowski <pzuchowski@datto.com>
Signed-off-by: John Poduska <jpoduska@datto.com>
Closes #10291 
											
										 
											2020-05-13 20:54:27 +03:00
										 |  |  | SCAN_LEGACY			scan_legacy			zfs_scan_legacy | 
					
						
							| 
									
										
										
										
											2020-01-15 01:57:28 +03:00
										 |  |  | SCAN_SUSPEND_PROGRESS		scan_suspend_progress		zfs_scan_suspend_progress | 
					
						
							|  |  |  | SCAN_VDEV_LIMIT			scan_vdev_limit			zfs_scan_vdev_limit | 
					
						
							|  |  |  | SEND_HOLES_WITHOUT_BIRTH_TIME	send_holes_without_birth_time	send_holes_without_birth_time | 
					
						
							|  |  |  | SLOW_IO_EVENTS_PER_SECOND	slow_io_events_per_second	zfs_slow_io_events_per_second | 
					
						
							|  |  |  | SPA_ASIZE_INFLATION		spa.asize_inflation		spa_asize_inflation | 
					
						
							|  |  |  | SPA_DISCARD_MEMORY_LIMIT	spa.discard_memory_limit	zfs_spa_discard_memory_limit | 
					
						
							|  |  |  | SPA_LOAD_VERIFY_DATA		spa.load_verify_data		spa_load_verify_data | 
					
						
							|  |  |  | SPA_LOAD_VERIFY_METADATA	spa.load_verify_metadata	spa_load_verify_metadata | 
					
						
							|  |  |  | TRIM_EXTENT_BYTES_MIN		trim.extent_bytes_min		zfs_trim_extent_bytes_min | 
					
						
							|  |  |  | TRIM_METASLAB_SKIP		trim.metaslab_skip		zfs_trim_metaslab_skip | 
					
						
							|  |  |  | TRIM_TXG_BATCH			trim.txg_batch			zfs_trim_txg_batch | 
					
						
							|  |  |  | TXG_HISTORY			UNSUPPORTED			zfs_txg_history | 
					
						
							| 
									
										
										
										
											2020-04-15 21:14:47 +03:00
										 |  |  | TXG_TIMEOUT			txg.timeout			zfs_txg_timeout | 
					
						
							| 
									
										
										
										
											2020-01-15 01:57:28 +03:00
										 |  |  | UNLINK_SUSPEND_PROGRESS		UNSUPPORTED			zfs_unlink_suspend_progress | 
					
						
							|  |  |  | VDEV_MIN_MS_COUNT		vdev.min_ms_count		zfs_vdev_min_ms_count | 
					
						
							|  |  |  | VDEV_VALIDATE_SKIP		vdev.validate_skip		vdev_validate_skip | 
					
						
							|  |  |  | VOL_INHIBIT_DEV			UNSUPPORTED			zvol_inhibit_dev | 
					
						
							|  |  |  | VOL_MODE			vol.mode			zvol_volmode | 
					
						
							|  |  |  | VOL_RECURSIVE			vol.recursive			UNSUPPORTED | 
					
						
							| 
									
										
										
										
											2020-02-18 22:22:56 +03:00
										 |  |  | ZEVENT_LEN_MAX			zevent.len_max			zfs_zevent_len_max | 
					
						
							| 
									
										
										
										
											2020-01-15 01:57:28 +03:00
										 |  |  | ZIO_SLOW_IO_MS			zio.slow_io_ms			zio_slow_io_ms | 
					
						
							|  |  |  | %%%% | 
					
						
							|  |  |  | while read name FreeBSD Linux; do | 
					
						
							|  |  |  | 	eval "export ${name}=\$${UNAME}" | 
					
						
							|  |  |  | done |