Print this page
4045 zfs write throttle & i/o scheduler performance work
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/mdb/common/modules/zfs/zfs.c
          +++ new/usr/src/cmd/mdb/common/modules/zfs/zfs.c
↓ open down ↓ 266 lines elided ↑ open up ↑
 267  267  /* ARGSUSED */
 268  268  static int
 269  269  zfs_params(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 270  270  {
 271  271          /*
 272  272           * This table can be approximately generated by running:
 273  273           * egrep "^[a-z0-9_]+ [a-z0-9_]+( =.*)?;" *.c | cut -d ' ' -f 2
 274  274           */
 275  275          static const char *params[] = {
 276  276                  "arc_reduce_dnlc_percent",
      277 +                "arc_lotsfree_percent",
      278 +                "zfs_dirty_data_max",
      279 +                "zfs_dirty_data_sync",
      280 +                "zfs_delay_max_ns",
      281 +                "zfs_delay_min_dirty_percent",
      282 +                "zfs_delay_scale",
      283 +                "zfs_vdev_max_active",
      284 +                "zfs_vdev_sync_read_min_active",
      285 +                "zfs_vdev_sync_read_max_active",
      286 +                "zfs_vdev_sync_write_min_active",
      287 +                "zfs_vdev_sync_write_max_active",
      288 +                "zfs_vdev_async_read_min_active",
      289 +                "zfs_vdev_async_read_max_active",
      290 +                "zfs_vdev_async_write_min_active",
      291 +                "zfs_vdev_async_write_max_active",
      292 +                "zfs_vdev_scrub_min_active",
      293 +                "zfs_vdev_scrub_max_active",
      294 +                "zfs_vdev_async_write_active_min_dirty_percent",
      295 +                "zfs_vdev_async_write_active_max_dirty_percent",
      296 +                "spa_asize_inflation",
 277  297                  "zfs_arc_max",
 278  298                  "zfs_arc_min",
 279  299                  "arc_shrink_shift",
 280  300                  "zfs_mdcomp_disable",
 281  301                  "zfs_prefetch_disable",
 282  302                  "zfetch_max_streams",
 283  303                  "zfetch_min_sec_reap",
 284  304                  "zfetch_block_cap",
 285  305                  "zfetch_array_rd_sz",
 286  306                  "zfs_default_bs",
 287  307                  "zfs_default_ibs",
 288  308                  "metaslab_aliquot",
 289  309                  "reference_tracking_enable",
 290  310                  "reference_history",
 291  311                  "spa_max_replication_override",
 292  312                  "spa_mode_global",
 293  313                  "zfs_flags",
 294      -                "zfs_txg_synctime_ms",
 295  314                  "zfs_txg_timeout",
 296      -                "zfs_write_limit_min",
 297      -                "zfs_write_limit_max",
 298      -                "zfs_write_limit_shift",
 299      -                "zfs_write_limit_override",
 300      -                "zfs_no_write_throttle",
 301  315                  "zfs_vdev_cache_max",
 302  316                  "zfs_vdev_cache_size",
 303  317                  "zfs_vdev_cache_bshift",
 304  318                  "vdev_mirror_shift",
 305      -                "zfs_vdev_max_pending",
 306      -                "zfs_vdev_min_pending",
 307  319                  "zfs_scrub_limit",
 308  320                  "zfs_no_scrub_io",
 309  321                  "zfs_no_scrub_prefetch",
 310      -                "zfs_vdev_time_shift",
 311      -                "zfs_vdev_ramp_rate",
 312  322                  "zfs_vdev_aggregation_limit",
 313  323                  "fzap_default_block_shift",
 314  324                  "zfs_immediate_write_sz",
 315  325                  "zfs_read_chunk_size",
 316  326                  "zfs_nocacheflush",
 317  327                  "zil_replay_disable",
 318  328                  "metaslab_gang_bang",
 319  329                  "metaslab_df_alloc_threshold",
 320  330                  "metaslab_df_free_pct",
 321  331                  "zio_injection_enabled",
↓ open down ↓ 1507 lines elided ↑ open up ↑
1829 1839          if (mdb_vread(&zl, sizeof (zl), addr) == -1) {
1830 1840                  mdb_warn("failed to read zio_link_t at %p", addr);
1831 1841                  return (WALK_ERR);
1832 1842          }
1833 1843  
1834 1844          if (zpa->zpa_type == ZIO_WALK_PARENT)
1835 1845                  ziop = (uintptr_t)zl.zl_parent;
1836 1846          else
1837 1847                  ziop = (uintptr_t)zl.zl_child;
1838 1848  
1839      -        return (zio_print_cb(ziop, arg));
     1849 +        return (zio_print_cb(ziop, zpa));
1840 1850  }
1841 1851  
1842 1852  /* ARGSUSED */
1843 1853  static int
1844 1854  zio_print(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
1845 1855  {
1846 1856          zio_print_args_t zpa = { 0 };
1847 1857  
1848 1858          if (!(flags & DCMD_ADDRSPEC))
1849 1859                  return (DCMD_USAGE);
↓ open down ↓ 1282 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX