freebsd-dev/module/zfs
Brian Behlendorf e0b0ca983d Add visibility in to cached dbufs
Currently there is no mechanism to inspect which dbufs are being
cached by the system.  There are some coarse counters in arcstats
by they only give a rough idea of what's being cached.  This patch
aims to improve the current situation by adding a new dbufs kstat.

When read this new kstat will walk all cached dbufs linked in to
the dbuf_hash.  For each dbuf it will dump detailed information
about the buffer.  It will also dump additional information about
the referenced arc buffer and its related dnode.  This provides a
more complete view in to exactly what is being cached.

With this generic infrastructure in place utilities can be written
to post-process the data to understand exactly how the caching is
working.  For example, the data could be processed to show a list
of all cached dnodes and how much space they're consuming.  Or a
similar list could be generated based on dnode type.  Many other
ways to interpret the data exist based on what kinds of questions
you're trying to answer.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Prakash Surya <surya1@llnl.gov>
2013-10-25 13:59:40 -07:00
..
arc.c Add visibility in to cached dbufs 2013-10-25 13:59:40 -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_stats.c Add visibility in to cached dbufs 2013-10-25 13:59:40 -07:00
dbuf.c Add visibility in to cached dbufs 2013-10-25 13:59:40 -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 Add visibility in to dmu_tx_assign times 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 Add visibility in to cached dbufs 2013-10-25 13:59:40 -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 cached dbufs 2013-10-25 13:59:40 -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 dmu_tx_assign times 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