mirror_zfs/module/zfs
Brian Behlendorf 0b1401ee91 Add visibility in to txg sync behavior
This change is an attempt to add visibility in to how txgs are being
formed on a system, in real time. To do this, a list was added to the
in memory SPA data structure for a pool, with each element on the list
corresponding to txg. These entries are then exported through the kstat
interface, which can then be interpreted in userspace.

For each txg, the following information is exported:

 * Unique txg number (uint64_t)
 * The time the txd was born (hrtime_t)
   (*not* wall clock time; relative to the other entries on the list)
 * The current txg state ((O)pen/(Q)uiescing/(S)yncing/(C)ommitted)
 * The number of reserved bytes for the txg (uint64_t)
 * The number of bytes read during the txg (uint64_t)
 * The number of bytes written during the txg (uint64_t)
 * The number of read operations during the txg (uint64_t)
 * The number of write operations during the txg (uint64_t)
 * The time the txg was closed (hrtime_t)
 * The time the txg was quiesced (hrtime_t)
 * The time the txg was synced (hrtime_t)

Note that while the raw kstat now stores relative hrtimes for the
open, quiesce, and sync times.  Those relative times are used to
calculate how long each state took and these deltas and printed by
output handlers.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2013-10-25 13:57:25 -07:00
..
arc.c Add visibility in to arc_read 2013-10-25 13:57:25 -07:00
bplist.c Illumos #3464 2013-09-04 16:01:24 -07:00
bpobj.c Illumos #3464 2013-09-04 16:01:24 -07:00
bptree.c Illumos #3498 panic in arc_read() 2013-07-02 13:34:31 -07:00
dbuf.c Illumos #3464 2013-09-04 16:01:24 -07:00
ddt_zap.c Add ddt_object_count() error handling 2012-10-29 08:57:45 -07:00
ddt.c Fix incorrect assertions in ddt_phys_decref and ddt_sync_entry 2013-05-06 14:10:55 -07:00
dmu_diff.c Illumos #3464 2013-09-04 16:01:24 -07:00
dmu_object.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
dmu_objset.c Fix dmu_objset_find_dp() KM_SLEEP warning 2013-09-11 11:49:32 -07:00
dmu_send.c Illumos #3464 2013-09-04 16:01:24 -07:00
dmu_traverse.c Add visibility in to arc_read 2013-10-25 13:57:25 -07:00
dmu_tx.c Revert "Add new kstat for monitoring time in dmu_tx_assign" 2013-10-25 13:57:25 -07:00
dmu_zfetch.c Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
dmu.c Illumos #3464 2013-09-04 16:01:24 -07:00
dnode_sync.c Illumos #3464 2013-09-04 16:01:24 -07:00
dnode.c Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_dataset.c Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_deadlist.c Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
dsl_deleg.c Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_destroy.c Reduce the stack usage of dsl_dataset_remove_clones_key 2013-09-25 15:18:32 -07:00
dsl_dir.c Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_pool.c Revert "Add txgs-<pool> kstat file" 2013-10-25 13:57:25 -07:00
dsl_prop.c Export addition dsl_prop_* symbols 2013-09-25 15:44:22 -07:00
dsl_scan.c Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_synctask.c Illumos #3464 2013-09-04 16:01:24 -07:00
dsl_userhold.c Fix several new KM_SLEEP warnings 2013-09-25 15:44:22 -07:00
fm.c Condition variable usage, zevent_cv 2012-10-15 16:01:54 -07:00
gzip.c Fix zmod.h usage in userspace 2010-08-31 08:38:46 -07:00
lz4.c Linux 3.11 compat: Rename LZ4 symbols 2013-10-22 10:12:39 -07:00
lzjb.c Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
Makefile.in Add visibility in to arc_read 2013-10-25 13:57:25 -07:00
metaslab.c Illumos #3552 2013-10-18 14:34:01 -07:00
refcount.c Illumos #3464 2013-09-04 16:01:24 -07:00
rrwlock.c Fix several new KM_SLEEP warnings 2013-09-25 15:44:22 -07:00
sa.c Illumos #3464 2013-09-04 16:01:24 -07:00
sha256.c Add linux sha2 support 2010-08-31 13:41:59 -07:00
spa_boot.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
spa_config.c Illumos #3639 zpool.cache should skip over readonly pools 2013-08-07 16:13:56 -07:00
spa_errlog.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
spa_history.c Fix memory leak false positive in log_internal() 2013-10-09 09:16:36 -07:00
spa_misc.c Add visibility in to arc_read 2013-10-25 13:57:25 -07:00
spa_stats.c Add visibility in to txg sync behavior 2013-10-25 13:57:25 -07:00
spa.c Fix spa_deadman() TQ_SLEEP warning 2013-09-25 15:38:44 -07:00
space_map.c Illumos #3464 2013-09-04 16:01:24 -07:00
txg.c Add visibility in to txg sync behavior 2013-10-25 13:57:25 -07:00
uberblock.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
unique.c Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
vdev_cache.c Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
vdev_disk.c Use GFP_NOIO in vdev_disk_io_flush() 2013-07-10 14:12:21 -07:00
vdev_file.c Illumos #3581 spa_zio_taskq[ZIO_TYPE_FREE][ZIO_TASKQ_ISSUE]->tq_lock contention 2013-05-06 14:05:37 -07:00
vdev_label.c Illumos #3090 and #3102 2013-01-08 10:35:42 -08:00
vdev_mirror.c Removing unneeded mutex for reading vq_pending_tree size 2013-09-25 15:29:45 -07:00
vdev_missing.c Illumos #1948: zpool list should show more detailed pool info 2012-09-19 13:39:05 -07:00
vdev_queue.c Illumos #3618 ::zio dcmd does not show timestamp data 2013-08-12 16:46:50 -07:00
vdev_raidz.c Illumos #3006 2013-06-19 15:14:10 -07:00
vdev_root.c Illumos #1948: zpool list should show more detailed pool info 2012-09-19 13:39:05 -07:00
vdev.c Illumos #3618 ::zio dcmd does not show timestamp data 2013-08-12 16:46:50 -07:00
zap_leaf.c Switch KM_SLEEP to KM_PUSHPAGE 2012-09-05 08:44:58 -07:00
zap_micro.c Illumos #3006 2013-06-19 15:14:10 -07:00
zap.c Illumos #3006 2013-06-19 15:14:10 -07:00
zfeature_common.c Illumos #3035 LZ4 compression support in ZFS and GRUB 2013-01-29 09:28:20 -08:00
zfeature.c Illumos #3104: eliminate empty bpobjs 2013-01-08 10:35:43 -08:00
zfs_acl.c Avoid gcc -Werror=maybe-uninitialized warnings 2013-01-28 09:10:29 -08:00
zfs_byteswap.c Add linux kernel module support 2010-08-31 13:41:58 -07:00
zfs_ctldir.c Illumos #3464 2013-09-04 16:01:24 -07:00
zfs_debug.c Illumos #3006 2013-06-19 15:14:10 -07:00
zfs_dir.c Trivial spelling fix 2013-04-19 15:43:16 -07:00
zfs_fm.c 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
zfs_fuid.c Drop HAVE_XVATTR macros 2011-03-02 11:44:34 -08:00
zfs_ioctl.c Allocate the ioctl "output" nvlist with KM_PUSHPAGE. 2013-09-25 15:44:22 -07:00
zfs_log.c Revert "Remove TSD zfs_fsyncer_key" 2012-12-20 09:56:28 -08:00
zfs_onexit.c Fix several new KM_SLEEP warnings 2013-09-25 15:44:22 -07:00
zfs_replay.c Constify structures containing function pointers 2013-03-04 08:49:32 -08:00
zfs_rlock.c Illumos #3006 2013-06-19 15:14:10 -07:00
zfs_sa.c Revert "Use SA_HDL_PRIVATE for SA xattrs" 2012-08-25 09:25:56 -07:00
zfs_vfsops.c Illumos #3464 2013-09-04 16:01:24 -07:00
zfs_vnops.c Linux 3.11 compat: fops->iterate() 2013-08-15 16:19:07 -07:00
zfs_znode.c Fix uninitialized variables 2013-09-13 13:31:24 -07:00
zil.c Illumos #3464 2013-09-04 16:01:24 -07:00
zio_checksum.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zio_compress.c Linux 3.11 compat: Rename LZ4 symbols 2013-10-22 10:12:39 -07:00
zio_inject.c 3246 ZFS I/O deadman thread 2013-05-01 17:05:52 -07:00
zio.c Illumos #3464 2013-09-04 16:01:24 -07:00
zle.c Update core ZFS code from build 121 to build 141. 2010-05-28 13:45:14 -07:00
zpl_ctldir.c Add missing dsl pool configuration lock 2013-10-22 08:31:20 -07:00
zpl_export.c Implement .commit_metadata hook for NFS export 2012-10-03 10:49:45 -07:00
zpl_file.c Linux 3.11 compat: fops->iterate() 2013-08-15 16:19:07 -07:00
zpl_inode.c Fix zpl_mknod() return values 2013-09-13 13:31:24 -07:00
zpl_super.c Fix arc_adapt() spinning in iterate_supers_type() 2013-07-17 09:28:06 -07:00
zpl_xattr.c Use directory xattrs for symlinks 2013-08-22 13:30:44 -07:00
zrlock.c Export ZFS symbols needed by Lustre. 2010-09-17 16:24:15 -07:00
zvol.c Illumos #3464 2013-09-04 16:01:24 -07:00