Print this page
NEX-19993 mdb zfs_params output contains obsolete symbols
Reviewed by: Roman Strashkin <roman.strashkin@nexenta.com>
NEX-9752 backport illumos 6950 ARC should cache compressed data
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
6950 ARC should cache compressed data
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Matt Ahrens <mahrens@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Don Brady <don.brady@intel.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
6289 ::dbuf dcmd misaligned output
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
NEX-3165 need some dedup improvements
Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
NEX-3165 segregate ddt in arc
NEX-3079 port illumos ARC improvements
4370 avoid transmitting holes during zfs send
4371 DMU code clean up
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Approved by: Garrett D'Amore <garrett@damore.org>
Fix up some merges where we wanted the upstream version.
Fixup merge results
re #13660 rb4549 ALUA mode: `/usr/demo/comstar/bin/aluaadm enable 1` sets "ALUA Node" = 0
re 13697 update ::zfs_params dcmd
Reviewed by: <Boris.Protopopov@nexenta.com>
*** 18,28 ****
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
! * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
* Copyright (c) 2011, 2016 by Delphix. All rights reserved.
* Copyright (c) 2017, Joyent, Inc. All rights reserved.
*/
/* Portions Copyright 2010 Robert Milkowski */
--- 18,28 ----
*
* CDDL HEADER END
*/
/*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
! * Copyright 2019 Nexenta Systems, Inc.
* Copyright (c) 2011, 2016 by Delphix. All rights reserved.
* Copyright (c) 2017, Joyent, Inc. All rights reserved.
*/
/* Portions Copyright 2010 Robert Milkowski */
*** 342,408 ****
/*
* This table can be approximately generated by running:
* egrep "^[a-z0-9_]+ [a-z0-9_]+( =.*)?;" *.c | cut -d ' ' -f 2
*/
static const char *params[] = {
- "arc_reduce_dnlc_percent",
"arc_lotsfree_percent",
! "zfs_dirty_data_max",
! "zfs_dirty_data_sync",
! "zfs_delay_max_ns",
! "zfs_delay_min_dirty_percent",
! "zfs_delay_scale",
! "zfs_vdev_max_active",
! "zfs_vdev_sync_read_min_active",
! "zfs_vdev_sync_read_max_active",
! "zfs_vdev_sync_write_min_active",
! "zfs_vdev_sync_write_max_active",
! "zfs_vdev_async_read_min_active",
! "zfs_vdev_async_read_max_active",
! "zfs_vdev_async_write_min_active",
! "zfs_vdev_async_write_max_active",
! "zfs_vdev_scrub_min_active",
! "zfs_vdev_scrub_max_active",
! "zfs_vdev_async_write_active_min_dirty_percent",
! "zfs_vdev_async_write_active_max_dirty_percent",
"spa_asize_inflation",
"zfs_arc_max",
"zfs_arc_min",
! "arc_shrink_shift",
! "zfs_mdcomp_disable",
! "zfs_prefetch_disable",
! "zfetch_max_streams",
! "zfetch_min_sec_reap",
! "zfetch_block_cap",
! "zfetch_array_rd_sz",
"zfs_default_bs",
"zfs_default_ibs",
! "metaslab_aliquot",
! "reference_tracking_enable",
! "reference_history",
! "spa_max_replication_override",
! "spa_mode_global",
"zfs_flags",
! "zfs_txg_timeout",
! "zfs_vdev_cache_max",
! "zfs_vdev_cache_size",
! "zfs_vdev_cache_bshift",
! "vdev_mirror_shift",
! "zfs_scrub_limit",
"zfs_no_scrub_io",
"zfs_no_scrub_prefetch",
- "zfs_vdev_aggregation_limit",
- "fzap_default_block_shift",
- "zfs_immediate_write_sz",
- "zfs_read_chunk_size",
"zfs_nocacheflush",
"zil_replay_disable",
! "metaslab_gang_bang",
! "metaslab_df_alloc_threshold",
! "metaslab_df_free_pct",
"zio_injection_enabled",
"zvol_immediate_write_sz",
};
for (int i = 0; i < sizeof (params) / sizeof (params[0]); i++) {
int sz;
uint64_t val64;
--- 342,586 ----
/*
* This table can be approximately generated by running:
* egrep "^[a-z0-9_]+ [a-z0-9_]+( =.*)?;" *.c | cut -d ' ' -f 2
*/
static const char *params[] = {
"arc_lotsfree_percent",
! "arc_pages_pp_reserve",
! "arc_reduce_dnlc_percent",
! "arc_swapfs_reserve",
! "arc_zio_arena_free_shift",
! "dbuf_cache_hiwater_pct",
! "dbuf_cache_lowater_pct",
! "dbuf_cache_max_bytes",
! "dbuf_cache_shift",
! "dbuf_metadata_cache_max_bytes",
! "dbuf_metadata_cache_overflow",
! "dbuf_metadata_cache_shift",
! "ddt_zap_indirect_blockshift",
! "ddt_zap_leaf_blockshift",
! "ditto_same_vdev_distance_shift",
! "dmu_find_threads",
! "dmu_rescan_dnode_threshold",
! "dsl_scan_delay_completion",
! "fzap_default_block_shift",
! "krrp_debug",
! "l2arc_feed_again",
! "l2arc_feed_min_ms",
! "l2arc_feed_secs",
! "l2arc_headroom",
! "l2arc_headroom_boost",
! "l2arc_noprefetch",
! "l2arc_norw",
! "l2arc_rebuild_enabled",
! "l2arc_write_boost",
! "l2arc_write_max",
! "last_free_memory",
! "last_free_reason",
! "metaslab_aliquot",
! "metaslab_alloc_dva_algorithm",
! "metaslab_bias_enabled",
! "metaslab_debug_load",
! "metaslab_debug_unload",
! "metaslab_df_alloc_threshold",
! "metaslab_df_free_pct",
! "metaslab_fragmentation_factor_enabled",
! "metaslab_gang_bang",
! "metaslab_lba_weighting_enabled",
! "metaslab_load_pct",
! "metaslab_min_alloc_size",
! "metaslab_ndf_clump_shift",
! "metaslab_preload_enabled",
! "metaslab_preload_limit",
! "metaslab_trace_enabled",
! "metaslab_trace_max_entries",
! "metaslab_unload_delay",
! "metaslabs_per_vdev",
! "nms_worm_transition_time",
! "rrw_tsd_key",
! "send_holes_without_birth_time",
"spa_asize_inflation",
+ "spa_avg_stat_update_ticks",
+ "spa_load_verify_data",
+ "spa_load_verify_maxinflight",
+ "spa_load_verify_metadata",
+ "spa_max_replication_override",
+ "spa_min_latency_delta",
+ "spa_min_slop",
+ "spa_mode_global",
+ "spa_namespace_lock",
+ "spa_obj_mtx_sz",
+ "spa_rotor_load_adjusting",
+ "spa_rotor_use_weight",
+ "spa_slop_shift",
+ "spa_special_factor",
+ "spa_special_to_normal_delta",
+ "spa_special_to_normal_ratio",
+ "spa_static_routing_percentage",
+ "space_map_blksz",
+ "vdev_mirror_shift",
+ "vdev_raidz_default_to_general",
+ "wbc_arc_enabled",
+ "wbc_force_trigger",
+ "wbc_idle_delay_ms",
+ "wbc_max_move_tasks_count",
+ "wbc_min_move_tasks_count",
+ "wbc_mv_cancel_threshold_cap",
+ "wbc_mv_cancel_threshold_initial",
+ "wbc_mv_cancel_threshold_step",
+ "wbc_spa_util_high_wm",
+ "wbc_spa_util_low_wm",
+ "wbc_throttle_move_delay_ms",
+ "wbc_update_statistics_interval_ms",
+ "wbc_window_roll_delay_ms",
+ "zcr_blksz_max",
+ "zcr_blksz_min",
+ "zfs_abd_chunk_size",
+ "zfs_abd_scatter_enabled",
+ "zfs_arc_average_blocksize",
+ "zfs_arc_ddt_limit",
+ "zfs_arc_evict_batch_limit",
+ "zfs_arc_grow_retry",
"zfs_arc_max",
+ "zfs_arc_meta_limit",
+ "zfs_arc_meta_min",
"zfs_arc_min",
! "zfs_arc_p_min_shift",
! "zfs_arc_segregate_ddt",
! "zfs_arc_shrink_shift",
! "zfs_commit_timeout_pct",
! "zfs_compressed_arc_enabled",
! "zfs_condense_pct",
! "zfs_dbgmsg_maxsize",
! "zfs_dbgmsg_size",
! "zfs_dbuf_evict_key",
! "zfs_ddt_byte_ceiling",
! "zfs_ddt_limit_type",
! "zfs_ddts_msize",
! "zfs_deadman_checktime_ms",
! "zfs_deadman_enabled",
! "zfs_deadman_synctime_ms",
! "zfs_dedup_prefetch",
"zfs_default_bs",
"zfs_default_ibs",
! "zfs_delay_max_ns",
! "zfs_delay_min_dirty_percent",
! "zfs_delay_resolution_ns",
! "zfs_delay_scale",
! "zfs_dequeue_run_bonus_ms",
! "zfs_dirty_data_max",
! "zfs_dirty_data_max_max",
! "zfs_dirty_data_max_percent",
! "zfs_dirty_data_sync",
! "zfs_do_async_free",
! "zfs_fastflush",
"zfs_flags",
! "zfs_flush_ntasks",
! "zfs_free_bpobj_enabled",
! "zfs_free_leak_on_eio",
! "zfs_free_max_blocks",
! "zfs_free_min_time_ms",
! "zfs_fsync_sync_cnt",
! "zfs_fsyncer_key",
! "zfs_immediate_write_sz",
! "zfs_l2arc_async_evict",
! "zfs_li",
! "zfs_lua_check_instrlimit_interval",
! "zfs_lua_max_instrlimit",
! "zfs_lua_max_memlimit",
! "zfs_max_recordsize",
! "zfs_mdcomp_disable",
! "zfs_metaslab_condense_block_threshold",
! "zfs_metaslab_fragmentation_threshold",
! "zfs_metaslab_segment_weight_enabled",
! "zfs_metaslab_switch_threshold",
! "zfs_mg_fragmentation_threshold",
! "zfs_mg_noalloc_threshold",
! "zfs_multilist_num_sublists",
"zfs_no_scrub_io",
"zfs_no_scrub_prefetch",
"zfs_nocacheflush",
+ "zfs_nopwrite_enabled",
+ "zfs_pd_bytes_max",
+ "zfs_per_txg_dirty_frees_percent",
+ "zfs_prefetch_disable",
+ "zfs_read_chunk_size",
+ "zfs_recover",
+ "zfs_recv_queue_length",
+ "zfs_redundant_metadata_most_ditto_level",
+ "zfs_resilver_min_time_ms",
+ "zfs_root_latency_alpha",
+ "zfs_scan_checkpoint_intval",
+ "zfs_scan_dequeue_min",
+ "zfs_scan_dequeue_run_target_ms",
+ "zfs_scan_direct",
+ "zfs_scan_fill_weight",
+ "zfs_scan_max_ext_gap",
+ "zfs_scan_mem_lim_fact",
+ "zfs_scan_mem_lim_min",
+ "zfs_scan_mem_lim_soft_fact",
+ "zfs_scan_mem_lim_soft_max",
+ "zfs_scan_min_time_ms",
+ "zfs_scrub_limit",
+ "zfs_send_corrupt_data",
+ "zfs_send_queue_length",
+ "zfs_send_set_freerecords_bit",
+ "zfs_send_timeout",
+ "zfs_share_lock",
+ "zfs_smartcomp_interval",
+ "zfs_smartcomp_interval_exp",
+ "zfs_smartcomp_threshold_factor",
+ "zfs_sync_pass_deferred_free",
+ "zfs_sync_pass_dont_compress",
+ "zfs_sync_pass_rewrite",
+ "zfs_sync_taskq_batch_pct",
+ "zfs_top_maxinflight",
+ "zfs_trim",
+ "zfs_trim_min_ext_sz",
+ "zfs_txg_timeout",
+ "zfs_vdev_aggregation_limit",
+ "zfs_vdev_async_read_max_active",
+ "zfs_vdev_async_read_min_active",
+ "zfs_vdev_async_write_active_max_dirty_percent",
+ "zfs_vdev_async_write_active_min_dirty_percent",
+ "zfs_vdev_async_write_max_active",
+ "zfs_vdev_async_write_min_active",
+ "zfs_vdev_cache_bshift",
+ "zfs_vdev_cache_max",
+ "zfs_vdev_cache_size",
+ "zfs_vdev_max_active",
+ "zfs_vdev_queue_depth_pct",
+ "zfs_vdev_read_gap_limit",
+ "zfs_vdev_resilver_max_active",
+ "zfs_vdev_resilver_min_active",
+ "zfs_vdev_scrub_max_active",
+ "zfs_vdev_scrub_min_active",
+ "zfs_vdev_sync_read_max_active",
+ "zfs_vdev_sync_read_min_active",
+ "zfs_vdev_sync_write_max_active",
+ "zfs_vdev_sync_write_min_active",
+ "zfs_vdev_write_gap_limit",
+ "zfs_vn_rele_max_tasks",
+ "zfs_vs_latency_alpha",
+ "zfs_wbc_data_max",
+ "zfs_wbc_schedtmo",
+ "zfs_write_implies_delete_child",
+ "zfs_zil_clean_taskq_maxalloc",
+ "zfs_zil_clean_taskq_minalloc",
+ "zfs_zil_clean_taskq_nthr_pct",
"zil_replay_disable",
! "zil_slog_bulk",
! "zio_buf_debug_limit",
! "zio_dva_throttle_enabled",
! "zio_faulty_vdev_delay_us",
! "zio_faulty_vdev_enabled",
! "zio_faulty_vdev_guid",
"zio_injection_enabled",
"zvol_immediate_write_sz",
+ "zvol_maxphys",
+ "zvol_unmap_enabled",
+ "zvol_unmap_sync_enabled",
};
for (int i = 0; i < sizeof (params) / sizeof (params[0]); i++) {
int sz;
uint64_t val64;
*** 421,447 ****
return (DCMD_OK);
}
/* ARGSUSED */
static int
- dva(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
- {
- dva_t dva;
- if (mdb_vread(&dva, sizeof (dva_t), addr) == -1) {
- mdb_warn("failed to read dva_t");
- return (DCMD_ERR);
- }
- mdb_printf("<%llu:%llx:%llx>\n",
- (u_longlong_t)DVA_GET_VDEV(&dva),
- (u_longlong_t)DVA_GET_OFFSET(&dva),
- (u_longlong_t)DVA_GET_ASIZE(&dva));
-
- return (DCMD_OK);
- }
-
- /* ARGSUSED */
- static int
blkptr(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
{
char type[80], checksum[80], compress[80];
blkptr_t blk, *bp = &blk;
char buf[BP_SPRINTF_LEN];
--- 599,608 ----
*** 985,1004 ****
static const char *bytestats[] = {
"p", "c", "c_min", "c_max", "size", "duplicate_buffers_size",
"arc_meta_used", "arc_meta_limit", "arc_meta_max",
"arc_meta_min", "hdr_size", "data_size", "metadata_size",
! "other_size", "anon_size", "anon_evictable_data",
! "anon_evictable_metadata", "mru_size", "mru_evictable_data",
! "mru_evictable_metadata", "mru_ghost_size",
"mru_ghost_evictable_data", "mru_ghost_evictable_metadata",
! "mfu_size", "mfu_evictable_data", "mfu_evictable_metadata",
"mfu_ghost_size", "mfu_ghost_evictable_data",
! "mfu_ghost_evictable_metadata", "evict_l2_cached",
! "evict_l2_eligible", "evict_l2_ineligible", "l2_read_bytes",
! "l2_write_bytes", "l2_size", "l2_asize", "l2_hdr_size",
! "compressed_size", "uncompressed_size", "overhead_size",
NULL
};
static const char *extras[] = {
"arc_no_grow", "arc_tempreserve",
--- 1146,1169 ----
static const char *bytestats[] = {
"p", "c", "c_min", "c_max", "size", "duplicate_buffers_size",
"arc_meta_used", "arc_meta_limit", "arc_meta_max",
"arc_meta_min", "hdr_size", "data_size", "metadata_size",
! "ddt_size", "other_size", "anon_size", "anon_evictable_data",
! "anon_evictable_metadata", "anon_evictable_ddt", "mru_size",
! "mru_evictable_data", "mru_evictable_metadata",
! "mru_evictable_ddt", "mru_ghost_size",
"mru_ghost_evictable_data", "mru_ghost_evictable_metadata",
! "mru_ghost_evictable_ddt", "mfu_size", "mfu_evictable_data",
! "mfu_evictable_metadata", "mfu_evictable_ddt",
"mfu_ghost_size", "mfu_ghost_evictable_data",
! "mfu_ghost_evictable_metadata", "mfu_ghost_evictable_ddt",
! "evict_l2_cached", "evict_l2_eligible", "evict_l2_ineligible",
! "l2_read_bytes", "l2_ddt_read_bytes", "l2_write_bytes",
! "l2_ddt_write_bytes", "l2_size", "l2_asize",
! "l2_hdr_size", "compressed_size", "uncompressed_size",
! "overhead_size",
NULL
};
static const char *extras[] = {
"arc_no_grow", "arc_tempreserve",
*** 1567,1579 ****
aux = "EXTERNAL";
break;
case VDEV_AUX_SPLIT_POOL:
aux = "SPLIT_POOL";
break;
- case VDEV_AUX_CHILDREN_OFFLINE:
- aux = "CHILDREN_OFFLINE";
- break;
default:
aux = "UNKNOWN";
break;
}
--- 1732,1741 ----
*** 2073,2088 ****
sd.ms_alloctree[3] >> shift, suffix);
mdb_printf("ms_freeingtree = %llu%s\n",
sd.ms_freeingtree >> shift, suffix);
mdb_printf("ms_freedtree = %llu%s\n",
sd.ms_freedtree >> shift, suffix);
! mdb_printf("ms_tree = %llu%s\n",
! sd.ms_tree >> shift, suffix);
mdb_printf("ms_deferspace = %llu%s\n",
sd.ms_deferspace >> shift, suffix);
! mdb_printf("last synced avail = %llu%s\n",
! sd.avail >> shift, suffix);
mdb_printf("current syncing avail = %llu%s\n",
sd.nowavail >> shift, suffix);
return (DCMD_OK);
}
--- 2235,2248 ----
sd.ms_alloctree[3] >> shift, suffix);
mdb_printf("ms_freeingtree = %llu%s\n",
sd.ms_freeingtree >> shift, suffix);
mdb_printf("ms_freedtree = %llu%s\n",
sd.ms_freedtree >> shift, suffix);
! mdb_printf("ms_tree = %llu%s\n", sd.ms_tree >> shift, suffix);
mdb_printf("ms_deferspace = %llu%s\n",
sd.ms_deferspace >> shift, suffix);
! mdb_printf("last synced avail = %llu%s\n", sd.avail >> shift, suffix);
mdb_printf("current syncing avail = %llu%s\n",
sd.nowavail >> shift, suffix);
return (DCMD_OK);
}
*** 3936,3946 ****
*/
static const mdb_dcmd_t dcmds[] = {
{ "arc", "[-bkmg]", "print ARC variables", arc_print },
{ "blkptr", ":", "print blkptr_t", blkptr },
- { "dva", ":", "print dva_t", dva },
{ "dbuf", ":", "print dmu_buf_impl_t", dbuf },
{ "dbuf_stats", ":", "dbuf stats", dbuf_stats },
{ "dbufs",
"\t[-O objset_t*] [-n objset_name | \"mos\"] "
"[-o object | \"mdn\"] \n"
--- 4096,4105 ----