zfs/include/sys
Matthew Ahrens cb682a173a Illumos #3618 ::zio dcmd does not show timestamp data
3618 ::zio dcmd does not show timestamp data
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: George Wilson <gwilson@zfsmail.com>
Reviewed by: Christopher Siden <christopher.siden@delphix.com>
Reviewed by: Garrett D'Amore <garrett@damore.org>
Approved by: Dan McDonald <danmcd@nexenta.com>

References:
  http://www.illumos.org/issues/3618
  illumos/illumos-gate@c55e05cb35

Notes on porting to ZFS on Linux:

The original changeset mostly deals with mdb ::zio dcmd.
However, in order to provide the requested functionality
it modifies vdev and zio structures to keep the timing data
in nanoseconds instead of ticks. It is these changes that
are ported over in the commit in hand.

One visible change of this commit is that the default value
of 'zfs_vdev_time_shift' tunable is changed:

    zfs_vdev_time_shift = 6
        to
    zfs_vdev_time_shift = 29

The original value of 6 was inherited from OpenSolaris and
was subotimal - since it shifted the raw tick value - it
didn't compensate for different tick frequencies on Linux and
OpenSolaris. The former has HZ=1000, while the latter HZ=100.

(Which itself led to other interesting performance anomalies
under non-trivial load. The deadline scheduler delays the IO
according to its priority - the lower priority the further
the deadline is set. The delay is measured in units of
"shifted ticks". Since the HZ value was 10 times higher,
the delay units were 10 times shorter. Thus really low
priority IO like resilver (delay is 10 units) and scrub
(delay is 20 units) were scheduled much sooner than intended.
The overall effect is that resilver and scrub IO consumed
more bandwidth at the expense of the other IO.)

Now that the bookkeeping is done is nanoseconds the shift
behaves correctly for any tick frequency (HZ).

Ported-by: Cyril Plisko <cyril.plisko@mountall.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1643
2013-08-12 16:46:50 -07:00
..
fm 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
fs Fix the comment in zfs.h 2013-07-09 10:41:18 -07:00
Makefile.am Change zfs-kmod-devel install path 2013-03-13 13:42:16 -07:00
arc.h Illumos #3137 L2ARC compression 2013-08-08 13:27:21 -07:00
avl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
avl_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bplist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bpobj.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
bptree.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dbuf.h Illumos #3964 L2ARC should always compress metadata buffers 2013-08-08 13:37:00 -07:00
ddt.h Add ddt_object_count() error handling 2012-10-29 08:57:45 -07:00
dmu.h Illumos #3964 L2ARC should always compress metadata buffers 2013-08-08 13:37:00 -07:00
dmu_impl.h Illumos #2703: add mechanism to report ZFS send progress 2012-09-19 13:39:06 -07:00
dmu_objset.h Illumos #3964 L2ARC should always compress metadata buffers 2013-08-08 13:37:00 -07:00
dmu_traverse.h Illumos #3498 panic in arc_read() 2013-07-02 13:34:31 -07:00
dmu_tx.h Add --enable-debug-dmu-tx configure option 2012-03-23 12:25:17 -07:00
dmu_zfetch.h Add missing ZFS tunables 2011-05-04 10:02:37 -07:00
dnode.h Illumos #3122 zfs destroy filesystem should prefetch blocks 2013-07-02 13:34:02 -07:00
dsl_dataset.h Use dsl_dataset_snap_lookup() 2013-01-25 15:07:40 -08:00
dsl_deadlist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_deleg.h Illumos #1644, #1645, #1646, #1647, #1708 2012-07-31 09:25:30 -07:00
dsl_dir.h Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
dsl_pool.h Add new kstat for monitoring time in dmu_tx_assign 2013-07-11 13:53:44 -07:00
dsl_prop.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_scan.h Illumos #2619 and #2747 2013-01-08 10:35:35 -08:00
dsl_synctask.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
efi_partition.h Move partition scanning from userspace to module. 2012-07-17 09:17:31 -07:00
metaslab.h Add FASTWRITE algorithm for synchronous writes. 2012-10-17 08:56:41 -07:00
metaslab_impl.h Illumos #3552, #3564 2013-06-19 16:22:39 -07:00
nvpair.h Register correct handlers in nvlist_alloc() 2013-06-20 09:58:15 -07:00
nvpair_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
refcount.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
rrwlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
sa.h Add sa_spill_rele() interface 2012-03-07 16:28:00 -08:00
sa_impl.h Illumos #3208 cross-endian incorrect user/group accounting 2013-01-14 09:32:22 -08:00
spa.h Illumos #3329, #3330, #3331, #3335 2013-05-06 12:39:34 -07:00
spa_boot.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
spa_impl.h Use taskq for dump_bytes() 2013-05-06 14:05:42 -07:00
space_map.h Illumos #3552, #3564 2013-06-19 16:22:39 -07:00
txg.h Illumos #3086: unnecessarily setting DS_FLAG_INCONSISTENT on async 2013-01-08 10:35:43 -08:00
txg_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep_data.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uio_impl.h Add basic uio support 2011-02-10 09:21:43 -08:00
unique.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uuid.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev.h 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
vdev_disk.h Linux 2.6.x compat, blkdev_compat.h 2011-02-23 12:29:38 -08:00
vdev_file.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev_impl.h Illumos #3618 ::zio dcmd does not show timestamp data 2013-08-12 16:46:50 -07:00
xvattr.h Add xvattr support 2011-03-02 11:43:50 -08:00
zap.h Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
zap_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zap_leaf.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfeature.h Illumos #2762: zpool command should have better support for feature flags 2013-01-08 10:35:43 -08:00
zfs_acl.h Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
zfs_context.h Illumos #3006 2013-06-19 15:14:10 -07:00
zfs_ctldir.h Linux 3.7 compat, schedule_delayed_work() 2012-12-12 10:47:05 -08:00
zfs_debug.h Cleanly support debug packages 2012-02-27 14:08:17 -08:00
zfs_dir.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_fuid.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_ioctl.h 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
zfs_onexit.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_rlock.h Range lock performance improvements 2011-03-08 12:44:06 -08:00
zfs_sa.h Implement SA based xattrs 2011-11-28 15:45:51 -08:00
zfs_stat.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_vfsops.h Fix 'zfs rollback' on mounted file systems 2013-01-17 09:51:20 -08:00
zfs_vnops.h Add SEEK_DATA/SEEK_HOLE to lseek()/llseek() 2013-07-02 09:24:43 -07:00
zfs_znode.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zil.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zil_impl.h Illumos #3086: unnecessarily setting DS_FLAG_INCONSISTENT on async 2013-01-08 10:35:43 -08:00
zio.h Illumos #3618 ::zio dcmd does not show timestamp data 2013-08-12 16:46:50 -07:00
zio_checksum.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zio_compress.h Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zio_impl.h Illumos #3329, #3330, #3331, #3335 2013-05-06 12:39:34 -07:00
zpl.h Fix 'zfs rollback' on mounted file systems 2013-01-17 09:51:20 -08:00
zrlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zvol.h Add snapdev=[hidden|visible] dataset property 2013-03-05 12:37:54 -08:00