freebsd-dev/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Xin LI 8c4f41ff34 MFV r287624: 5987 zfs prefetch code needs work
Rewrite the ZFS prefetch code to detect only forward, sequential
streams.

The following kstats have been added:

    kstat.zfs.misc.arcstats.sync_wait_for_async

	How many sync reads have waited for async read
	to complete. (less is better)

    kstat.zfs.misc.arcstats.demand_hit_predictive_prefetch

	How many demand read didn't have to wait for I/O
	because of predictive prefetch.  (more is better)

zfetch kstats have been similified to hits, misses, and max_streams,
with max_streams representing times when we were not able to create
new stream because we already have the maximum number of sequences
for a file.

The sysctl variable/loader tunable vfs.zfs.zfetch.block_cap have been
replaced by vfs.zfs.zfetch.max_distance, which controls maximum bytes
to prefetch per stream.

illumos/illumos-gate@cf6106c8a0

Illumos ZFS issues:

    5987 zfs prefetch code needs work
    https://www.illumos.org/issues/5987
2015-09-12 08:35:51 +00:00
..
sys MFV r287624: 5987 zfs prefetch code needs work 2015-09-12 08:35:51 +00:00
arc.c MFV r287624: 5987 zfs prefetch code needs work 2015-09-12 08:35:51 +00:00
blkptr.c MFV r267565: 2014-07-01 06:43:15 +00:00
bplist.c
bpobj.c MFV 286602: 5810 zdb should print details of bpobj 2015-08-10 21:32:40 +00:00
bptree.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
bqueue.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
dbuf.c MFV r287624: 5987 zfs prefetch code needs work 2015-09-12 08:35:51 +00:00
ddt_zap.c
ddt.c Pull in r267961 and r267973 again. Fix for issues reported will follow. 2014-06-28 03:56:17 +00:00
dmu_diff.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
dmu_object.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
dmu_objset.c MFV r284763: 5981 Deadlock in dmu_objset_find_dp 2015-08-12 19:10:29 +00:00
dmu_send.c In r286705 (Illumos 5960/a2cdcdd), a separate thread is created with curproc 2015-08-29 08:16:57 +00:00
dmu_traverse.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
dmu_tx.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
dmu_zfetch.c MFV r287624: 5987 zfs prefetch code needs work 2015-09-12 08:35:51 +00:00
dmu.c MFV r287624: 5987 zfs prefetch code needs work 2015-09-12 08:35:51 +00:00
dnode_sync.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
dnode.c MFV r287624: 5987 zfs prefetch code needs work 2015-09-12 08:35:51 +00:00
dsl_bookmark.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
dsl_dataset.c MFV 286707: 5959 clean up per-dataset feature count code 2015-08-12 23:59:17 +00:00
dsl_deadlist.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
dsl_deleg.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
dsl_destroy.c MFV 286707: 5959 clean up per-dataset feature count code 2015-08-12 23:59:17 +00:00
dsl_dir.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
dsl_pool.c MFV r277431: 5497 lock contention on arcs_mtx 2015-08-14 09:31:07 +00:00
dsl_prop.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
dsl_scan.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
dsl_synctask.c MFV r275551: 2014-12-15 07:52:23 +00:00
dsl_userhold.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
gzip.c
lz4.c
lzjb.c
metaslab.c MFV r275540: 2014-12-08 06:04:42 +00:00
multilist.c MFV r277431: 5497 lock contention on arcs_mtx 2015-08-14 09:31:07 +00:00
range_tree.c MFV r272495: 2014-10-04 08:14:10 +00:00
refcount.c Add vfs.zfs.reference_tracking_enable sysctl/tunable. 2015-01-21 17:03:11 +00:00
rrwlock.c MFV r284763: 5981 Deadlock in dmu_objset_find_dp 2015-08-12 19:10:29 +00:00
sa.c fix a mismerge in r286539 (MFV 286538: 5562 ZFS sa_handle's violate...) 2015-08-21 08:04:56 +00:00
sha256.c
spa_config.c Clean ZFS spa config before syncing 2015-01-18 23:15:49 +00:00
spa_errlog.c MFV r268119: 2014-07-01 21:51:30 +00:00
spa_history.c MFV r275551: 2014-12-15 07:52:23 +00:00
spa_misc.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
spa.c spa_import_rootpool: prevent lock and resource leak 2015-08-24 08:44:44 +00:00
space_map.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
space_reftree.c
THIRDPARTYLICENSE.lz4
THIRDPARTYLICENSE.lz4.descrip
trim_map.c Fix overflow bug from r248577, turning 30s TRIM timeout into ~4s. 2015-01-14 16:22:00 +00:00
txg.c Prevent inlining txg_quiesce 2015-02-02 00:17:36 +00:00
uberblock.c MFV r275550: 2014-12-15 05:10:55 +00:00
unique.c
vdev_cache.c MFC r270195: 2014-08-20 21:44:48 +00:00
vdev_disk.c Disable TRIM on file backed ZFS vdevs and fix TRIM on init 2014-11-17 11:32:10 +00:00
vdev_file.c Disable TRIM on file backed ZFS vdevs and fix TRIM on init 2014-11-17 11:32:10 +00:00
vdev_geom.c Disable TRIM on file backed ZFS vdevs and fix TRIM on init 2014-11-17 11:32:10 +00:00
vdev_label.c Disable TRIM on file backed ZFS vdevs and fix TRIM on init 2014-11-17 11:32:10 +00:00
vdev_mirror.c Skip extra bcopy() when scrubbing vdev without redundancy. 2015-01-12 22:38:55 +00:00
vdev_missing.c MFV r274272 and diff reduction with upstream. 2014-11-09 07:37:00 +00:00
vdev_queue.c Apply the noline attribute to vdev_queue_max_async_writes 2015-08-31 23:10:42 +00:00
vdev_raidz.c MFV r274273: 2014-11-10 08:20:21 +00:00
vdev_root.c
vdev.c MFV r284762: 5269 zpool import slow 2015-08-12 18:47:30 +00:00
zap_leaf.c MFV r275551: 2014-12-15 07:52:23 +00:00
zap_micro.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
zap.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
zfeature.c MFV 286707: 5959 clean up per-dataset feature count code 2015-08-12 23:59:17 +00:00
zfs_acl.c Mechanically convert cddl sun #ifdef's to illumos 2015-01-17 14:44:59 +00:00
zfs_byteswap.c
zfs_ctldir.c MFV 286709: 2015-08-13 00:10:36 +00:00
zfs_debug.c MFV r268848: 2014-07-18 20:41:40 +00:00
zfs_dir.c MFV r268452: 2014-07-09 18:32:40 +00:00
zfs_fm.c
zfs_fuid.c Mechanically convert cddl sun #ifdef's to illumos 2015-01-17 14:44:59 +00:00
zfs_ioctl.c MFV 286711: 6096 ZFS_SMB_ACL_RENAME needs to cleanup better 2015-08-13 00:13:55 +00:00
zfs_log.c MFV r274273: 2014-11-10 08:20:21 +00:00
zfs_onexit.c zfs_onexit_fd_hold: return EBADF even if devfs_get_cdevpriv gave ENOENT 2015-04-28 09:11:47 +00:00
zfs_replay.c Mechanically convert cddl sun #ifdef's to illumos 2015-01-17 14:44:59 +00:00
zfs_rlock.c
zfs_sa.c MFV r277428: 5056 ZFS deadlock on db_mtx and dn_holds 2015-08-10 11:30:07 +00:00
zfs_vfsops.c try to fix lor between z_teardown_lock and spa_namespace_lock 2015-08-21 08:17:44 +00:00
zfs_vnops.c MFV (partial) r286889: 5692 expose the number of hole blocks in a file 2015-08-24 09:48:50 +00:00
zfs_znode.c MFV r284036: 5961 Fix stack overflow in zfs_create_fs 2015-06-12 11:10:49 +00:00
zfs.conf
zil.c MFV r284762: 5269 zpool import slow 2015-08-12 18:47:30 +00:00
zio_checksum.c
zio_compress.c MFV 286546: 2015-08-09 20:02:16 +00:00
zio_inject.c MFV r277431: 5497 lock contention on arcs_mtx 2015-08-14 09:31:07 +00:00
zio.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00
zle.c
zrlock.c MFV 286604: 5812 assertion failed in zrl_tryenter(): zr_owner==NULL 2015-08-10 21:36:51 +00:00
zvol.c MFV r286704: 5960 zfs recv should prefetch indirect blocks 2015-08-12 22:41:06 +00:00