freebsd-dev/sys/cddl/contrib/opensolaris/uts/common
Steven Hartland adea827b21 Optimisation of TRIM processing.
Previously TRIM processing was very bursty. This was made worse by the fact
that TRIM requests on SSD's are typically much slower than reads or writes.
This often resulted in stalls while large numbers of TRIM's where processed.

In addition due to the way the TRIM thread was only woken by writes, deletes
could stall in the queue for extensive periods of time.

This patch adds a number of controls to how often the TRIM thread for each
SPA processes its outstanding delete requests.
vfs.zfs.trim.timeout: Delay TRIMs by up to this many seconds
vfs.zfs.trim.txg_delay: Delay TRIMs by up to this many TXGs (reduced to 32)
vfs.zfs.vdev.trim_max_bytes: Maximum pending TRIM bytes for a vdev
vfs.zfs.vdev.trim_max_pending: Maximum pending TRIM segments for a vdev
vfs.zfs.trim.max_interval: Maximum interval between TRIM queue processing
(seconds)

Given the most common TRIM implementation is ATA TRIM the current defaults
are targeted at that.

Reviewed by:	pjd (mentor)
Approved by:	pjd (mentor)
MFC after:	2 weeks
2013-03-21 11:02:08 +00:00
..
ctf This commit was generated by cvs2svn to compensate for changes in r179193, 2008-05-22 07:04:10 +00:00
dtrace Avoid panic when tearing down the DTrace pid provider for a 2013-02-20 17:55:17 +00:00
fs Optimisation of TRIM processing. 2013-03-21 11:02:08 +00:00
os Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
sys MFV r247580: 2013-03-19 12:51:18 +00:00
zmod - rename atomic.S and crc32.c to avoid collisions when linking zfs in to the kernel 2009-05-09 01:45:55 +00:00
Makefile.files MFV r247580: 2013-03-19 12:51:18 +00:00