Commit Graph

23 Commits

Author SHA1 Message Date
Andriy Gapon
be0769e638 7280 Allow changing global libzpool variables in zdb and ztest through command line
illumos/illumos-gate@0e60744c98
0e60744c98

https://www.illumos.org/issues/7280
  zdb is very handy for diagnosing problems with a pool in a safe and
  quick way. When a pool is in a bad shape, we often want to disable some
  fail-safes, or adjust some tunables in order to open them. In the
  kernel, this is done by changing public variables in mdb. The goal of
  this feature is to add the same capability to zdb and ztest, so that
  they can change libzpool tuneables from the command line.

Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Pavel Zakharov <pavel.zakharov@delphix.com>
2017-04-14 16:53:34 +00:00
Josh Paetzel
137146f48c 7303 dynamic metaslab selection
illumos/illumos-gate@8363e80ae7
https://github.com/illumos/illumos-gate/commit/8363e80ae72609660f6090766ca8c2c18aa53f0

https://www.illumos.org/issues/7303

  This change introduces a new weighting algorithm to improve metaslab selection.
  The new weighting algorithm relies on the SPACEMAP_HISTOGRAM feature. As a result,
  the metaslab weight now encodes the type of weighting algorithm used
  (size-based vs segment-based).

  This also introduce a new allocation tracing facility and two new dcmds to help
  debug allocation problems. Each zio now contains a zio_alloc_list_t structure
  that is populated as the zio goes through the allocations stage. Here's an
  example of how to use the tracing facility:

> c5ec000::print zio_t io_alloc_list | ::walk list | ::metaslab_trace
  MSID    DVA    ASIZE      WEIGHT             RESULT               VDEV
     -      0      400           0    NOT_ALLOCATABLE           ztest.0a
     -      0      400           0    NOT_ALLOCATABLE           ztest.0a
     -      0      400           0             ENOSPC           ztest.0a
     -      0      200           0    NOT_ALLOCATABLE           ztest.0a
     -      0      200           0    NOT_ALLOCATABLE           ztest.0a
     -      0      200           0             ENOSPC           ztest.0a
     1      0      400      1 x 8M            17b1a00           ztest.0a

> 1ff2400::print zio_t io_alloc_list | ::walk list | ::metaslab_trace
  MSID    DVA    ASIZE      WEIGHT             RESULT               VDEV
     -      0      200           0    NOT_ALLOCATABLE           mirror-2
     -      0      200           0    NOT_ALLOCATABLE           mirror-0
     1      0      200      1 x 4M            112ae00           mirror-1
     -      1      200           0    NOT_ALLOCATABLE           mirror-2
     -      1      200           0    NOT_ALLOCATABLE           mirror-0
     1      1      200      1 x 4M            112b000           mirror-1
     -      2      200           0    NOT_ALLOCATABLE           mirror-2

  If the metaslab is using segment-based weighting then the WEIGHT column will
  display the number of segments available in the bucket where the allocation
  attempt was made.

Author: George Wilson <george.wilson@delphix.com>
Reviewed by: Alex Reece <alex@delphix.com>
Reviewed by: Chris Siden <christopher.siden@delphix.com>
Reviewed by: Dan Kimmel <dan.kimmel@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Paul Dagnelie <paul.dagnelie@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Don Brady <don.brady@intel.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
2017-03-15 04:16:08 +00:00
Alexander Motin
2d8b9931c7 6739 userland version of cv_timedwait_hires() always assumes absolute time
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: George Wilson <george.wilson@delphix.com>

illumos/illumos-gate@41c6413cb5
2016-04-02 08:24:23 +00:00
Alexander Motin
fabafcb14e 6328 Fix cstyle errors in zfs codebase
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Alex Reece <alex@delphix.com>
Reviewed by: Richard Elling <Richard.Elling@RichardElling.com>
Reviewed by: Jorgen Lundman <lundman@lundman.net>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Paul Dagnelie <pcd@delphix.com>

illumos/illumos-gate@9a686fbc18
2015-10-19 08:16:46 +00:00
Alexander Motin
fa4d80aacb 5960 zfs recv should prefetch indirect blocks
5925 zfs receive -o origin=

Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Author: Paul Dagnelie <pcd@delphix.com>

While running 'zfs recv' we noticed that every 128th 8K block required a
read. We were seeing that restore_write() was calling dmu_tx_hold_write()
and the indirect block was not cached. We should prefetch upcoming indirect
blocks to avoid having to go to disk and blocking the restore_write().
2015-08-12 22:36:02 +00:00
Xin LI
1a3dd08e88 5497 lock contention on arcs_mtx
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Richard Elling <richard.elling@richardelling.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Author: Prakash Surya <prakash.surya@delphix.com>

illumos/illumos-gate@244781f10d
2015-01-20 20:17:29 +00:00
Xin LI
6c426f3bd4 5244 zio pipeline callers should explicitly invoke next stage
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: Alex Reece <alex.reece@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Richard Elling <richard.elling@gmail.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Steven Hartland <killing@multiplay.co.uk>
Approved by: Gordon Ross <gwr@nexenta.com>
Author: George Wilson <george.wilson@delphix.com>

illumos/illumos-gate@738f37bc3d
2014-11-08 06:34:37 +00:00
Xin LI
5cd2c4891f 5134 if ZFS_DEBUG or debug= is set, libzpool should enable debug prints
Reviewed by: Adam Leventhal <adam.leventhal@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Saso Kiselkov <skiselkov.ml@gmail.com>
Approved by: Dan McDonald <danmcd@omniti.com>
Author: Matthew Ahrens <mahrens@delphix.com>

illumos/illumos-gate@7fa49ea5e7
2014-09-13 15:27:46 +00:00
Xin LI
02ee1c3d19 4891 want zdb option to dump all metadata
Reviewed by: Sonu Pillai <sonu.pillai@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: Dan McDonald <danmcd@omniti.com>
Reviewed by: Richard Lowe <richlowe@richlowe.net>
Approved by: Garrett D'Amore <garrett@damore.org>

illumos/illumos-gate@df15e419cb
2014-06-17 07:51:55 +00:00
Xin LI
745fef1489 4374 dn_free_ranges should use range_tree_t
(MD code for highbit64 omitted)

illumos/illumos-gate@bf16b11e8d
2014-04-18 19:38:29 +00:00
Andriy Gapon
12ad6bef9b 4161 deadlock between zfs_read() and zfs_putpage()
illumos/illumos-gate@b3d32f0ceb
2013-11-20 11:05:07 +00:00
Xin LI
119a3b6b54 Update vendor/illumos/dist and vendor-sys/illumos/dist
to 14164:dceb17481b99:

Illumos ZFS issues:
  4045 zfs write throttle & i/o scheduler performance work
2013-09-05 17:52:54 +00:00
Martin Matuska
4b9d8e5ee8 Update vendor/illumos/dist and vendor-sys/illumos/dist
to illumos-gate 13980:d7059eb1884c

Illumos ZFS issues:
  3598 want to dtrace when errors are generated in zfs
2013-03-12 21:46:29 +00:00
Martin Matuska
0c75791b4c Update vendor/illumos/dist and vendor-sys/illumos/dist
to illumos-gate 13975:ef6409bc370f

Illumos ZFS issues:
  3582 zfs_delay() should support a variable resolution
  3584 DTrace sdt probes for ZFS txg states
2013-03-05 15:33:28 +00:00
Martin Matuska
577227be9d Update vendor/illumos/dist and vendor-sys/illumos/dist
to illumos-gate 13973:4972ab336f54

Illumos ZFS issues:
  3464 zfs synctask code needs restructuring
2013-03-01 21:01:45 +00:00
Martin Matuska
28c0619e5e Update vendor/illumos/dist and vendor-sys/illumos/dist
to illumos-gate 13957:512faafc0eaf

Illumos ZFS issues:
  3537 want pool io kstats
2013-02-18 11:48:08 +00:00
Martin Matuska
fb6c5b06d9 Update vendor/illumos/dist and vendor/illumos-sys/dist
to illumos-gate 13871:a9c12c2c1647
(zfs changes, illumos issues #3306, #3321)
2012-11-08 01:38:30 +00:00
Martin Matuska
49bb29ae1c Update vendor/illumos/dist and vendor-sys/illumos/dist
to illumos-gate 13869:921a99998bb4
(illumos ZFS issue #3246 ZFS I/O deadman thread)

Note: illumos disables deadman logic by default on vmware and sparc
2012-11-08 01:36:06 +00:00
Martin Matuska
e73ba0ab20 Update vendor/illumos/dist and vendor/illumos-sys/dist
to illumos-gate 13805:e3a9ae14a119
(zfs changes, illumos issues #1884, #3006)
2012-09-09 07:52:13 +00:00
Martin Matuska
1034179220 Update vendor/illumos/dist and vendor/illumos-gate/dist
to illumos-gate revision 13794:7c5e0e746b2c

Obtained from:	ssh://anonhg@hg.illumos.org/illumos-gate
2012-09-04 21:58:22 +00:00
Martin Matuska
5b5bfb7422 Update vendor-sys/illumos/dist to illumos-gate 13752:9f5f6c52ba19
(zfs part)

Obtained from:	ssh://anonhg@hg.illumos.org/illumos-gate
2012-07-18 10:58:07 +00:00
Martin Matuska
51ab6c0afd Update vendor/illumos/dist to pre libzfs_core state (zfs part)
illumos-gate revision 13742:b6bbdd77139c

Obtained from:	ssh://anonhg@hg.illumos.org/illumos-gate
2012-07-18 10:19:51 +00:00
Martin Matuska
93a00b0821 Update vendor/opensolaris to last OpenSolaris state (13149:b23a4dab3d50)
Add ZFS bits to vendor/opensolaris

Obtained from:	https://hg.openindiana.org/upstream/oracle/onnv-gate
2012-07-18 07:48:04 +00:00