1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-24 11:29:10 +00:00
freebsd/sys/modules
Pawel Jakub Dawidek bcb77be2b7 Add TRIM support.
The code builds a map of regions that were freed. On every write the
code consults the map and eventually removes ranges that were freed
before, but are now overwritten.

Freed blocks are not TRIMed immediately. There is a tunable that defines
how many txg we should wait with TRIMming freed blocks (64 by default).

There is a low priority thread that TRIMs ranges when the time comes.
During TRIM we keep in-flight ranges on a list to detect colliding
writes - we have to delay writes that collide with in-flight TRIMs in
case something will be reordered and write will reached the disk before
the TRIM. We don't have to do the same for in-flight writes, as
colliding writes just remove ranges to TRIM.

Sponsored by:	multiplay.co.uk

This work includes some important fixes and some improvements obtained
from the zfsonlinux project, including TRIMming entire vdevs on pool
create/add/attach and on pool import for spare and cache vdevs.

Obtained from:	zfsonlinux
Submitted by:	Etienne Dechamps <etienne.dechamps@ovh.net>
2012-09-23 19:40:58 +00:00
..
3dfx
3dfx_linux
aac MFtbemd: 2010-08-23 06:13:29 +00:00
accf_data
accf_dns
accf_http
acl_nfs4 Add module building Makefile entries for NFSv4 and POSIX.1e ACL handling. 2012-03-13 20:28:42 +00:00
acl_posix1e Add module building Makefile entries for NFSv4 and POSIX.1e ACL handling. 2012-03-13 20:28:42 +00:00
acpi Merge ACPICA 20120816. 2012-08-16 20:54:52 +00:00
ae
aesni style.Makefile(5) 2012-05-24 04:10:34 +00:00
age
agp A rewrite of the i810 bits of the agp(4) driver. New driver supports 2012-05-22 10:59:26 +00:00
aha No need to genreate these here 2011-01-06 21:04:00 +00:00
ahb No need to genreate these here 2011-01-06 21:04:00 +00:00
ahci Refactor enclosure manegement support in ahci(4). Move it out into separate 2012-07-26 13:44:48 +00:00
aic
aic7xxx Disable -Wconstant-conversion warnings for the aic7xxx module in a more 2011-12-22 16:16:12 +00:00
aio
alc
ale
alq
amdsbwd
amdtemp
amr MFtbemd: 2010-08-23 06:13:29 +00:00
an
aout
apm
ar71xx Begin breaking out the AR71xx specific functional drivers into modules. 2012-01-15 19:42:55 +00:00
arcmsr
arcnet Fix make buildworld -DMODULES_WITH_WORLD on i386 2011-04-09 09:07:31 +00:00
asmc
asr Amend r228781 by also disabling -Warray-bounds warnings for the asr 2011-12-24 17:54:58 +00:00
ata pci_if.h is required to build atacore. 2010-07-31 00:08:18 +00:00
ath Remove workaround for the clang 3.2 warning in ah_eeprom_9287.c, since 2012-08-29 18:14:20 +00:00
ath_ahb Since these include wlan/ath/ah headers and these can change 2011-11-09 23:53:13 +00:00
ath_pci Since these include wlan/ath/ah headers and these can change 2011-11-09 23:53:13 +00:00
auxio
bce
bfe
bge MFtbemd: 2010-08-23 06:13:29 +00:00
bios Define several extra macros in bsd.sys.mk and sys/conf/kern.pre.mk, to 2012-02-28 18:30:18 +00:00
bktr
bm
bridgestp
bwi Fix make depend. 2012-05-22 06:33:08 +00:00
bwn Upgrade our copy of llvm/clang to trunk r162107. With thanks to 2012-08-20 18:33:03 +00:00
bxe Remove mii(4) dependency and unneeded headers. 2011-04-13 16:35:43 +00:00
cam Remove opt_enc.h from files committed with r235911. enc(4) is the 2012-07-30 03:00:58 +00:00
canbepm
canbus
cardbus
carp - Rename if_carp.ko to carp.ko. 2011-12-16 14:28:34 +00:00
cas Make kernel modules build correctly on 64-bit PowerPC. 2010-07-13 12:47:31 +00:00
cbb
cc Import an implementation of the CAIA-Hamilton-Delay (CHD) congestion control 2011-02-01 07:05:14 +00:00
cd9660
cd9660_iconv
ce For sys/dev/ce/tau32-ddk.c, disable the following warning when building 2011-12-29 21:17:35 +00:00
cfi Add header required by cfi_bus_fdt.c. 2011-12-30 21:22:10 +00:00
ciss
cm
cmx
coda
coda5
coff
coretemp
cp
cpsw Merging of projects/armv6, part 10 2012-08-15 06:31:32 +00:00
cpuctl
cpufreq MFtbemd: 2010-08-23 06:13:29 +00:00
crypto List low-level Blowfish ECB module in the SRCS. It looks like it was dropped 2010-09-12 16:28:26 +00:00
cryptodev Add opt_compat.h to SRCS. 2010-10-13 14:44:38 +00:00
cs
ct Add a kernel module on pc98 for the ct(4) driver. 2012-09-06 18:02:32 +00:00
ctau
cx
cxgb - Updated TOE support in the kernel. 2012-06-19 07:34:13 +00:00
cxgbe Update interface to firmware 1.6.2 and include the firmware in the driver. 2012-09-13 06:32:52 +00:00
cyclic Jusy use i386 version of cyclic_machdep.c on all supported architectures. 2012-03-24 05:16:26 +00:00
dc
dcons Follow up to r225203 refining break-to-debugger run-time configuration 2011-08-27 14:24:27 +00:00
dcons_crom
de
digi
dpms
dpt
drm Add MK_SOURCELESS build option. Setting MK_SOURCELESS to "no" will disable 2012-02-04 00:54:43 +00:00
drm2 Add drm and i915 ioctl translations for 32 bit process on 64 bit host. 2012-08-18 18:26:25 +00:00
dtrace The dtnfsclient module dependency should only be added if the old NFS 2012-09-01 07:35:16 +00:00
dummynet o Create directory sys/netpfil, where all packet filters should 2012-09-14 11:51:49 +00:00
ed
elink
em Add a source file needed for module linking. 2012-07-06 20:14:27 +00:00
en
ep
epic
esp Add a PCI front-end to esp(4) allowing it to support AMD Am53C974 and 2011-11-01 21:26:57 +00:00
et
ex
exca
ext2fs Sync with several changes in UFS/FFS: 2011-04-28 14:27:17 +00:00
fatm
fdc
fdescfs
fe
filemon Add the 'filemon' device. 'filemon' is a kernel module that provides a device 2012-06-04 22:54:19 +00:00
firewire Fix buildworld -DMODULES_WITH_WORLD 2011-04-05 19:41:18 +00:00
firmware
fxp - Follow the lead of dcphy(4) and pnphy(4) and move the reminder of the PHY 2011-10-08 12:33:10 +00:00
gem Merge r207585 from cas(4): 2010-09-16 09:29:48 +00:00
geom Add to GEOM RAID class module, supporting the DDF metadata format, as 2012-04-30 17:53:02 +00:00
glxiic Add I2C bus driver for the AMD Geode LX series CS5536 Companion 2011-05-15 14:01:23 +00:00
glxsb
gpio Allow building the GPIO bus and associated bits as modules. 2012-01-15 19:40:59 +00:00
hatm
hifn
hme
hpfs
hpt27xx When building with clang, disable -Wformat-security for 2012-02-21 21:20:52 +00:00
hptiop
hptmv MFtbemd: 2010-08-23 06:13:29 +00:00
hptrr MFtbemd: 2010-08-23 06:13:29 +00:00
hwpmc Add software PMC support. 2012-03-28 20:58:30 +00:00
i2c MFtbemd: 2010-08-23 06:13:29 +00:00
ibcs2
ichwd
ida
ie
if_bridge
if_disc
if_edsc
if_ef
if_epair
if_faith
if_gif
if_gre
if_lagg
if_ndis
if_stf
if_tap
if_tun
if_vlan
igb Sync with Intel internal source: 2012-07-05 20:26:57 +00:00
iir
io MFtbemd: 2010-08-23 06:13:29 +00:00
ip6_mroute_mod
ip_mroute_mod
ipdivert Fix 'make depend'. 2012-02-16 21:57:50 +00:00
ipfilter Disable several instances instances of clang's -Wself-assign warning. 2011-12-30 13:16:59 +00:00
ipfw o Create directory sys/netpfil, where all packet filters should 2012-09-14 11:51:49 +00:00
ipfw_nat o Create directory sys/netpfil, where all packet filters should 2012-09-14 11:51:49 +00:00
ipmi
ips Upgrade our copy of llvm/clang to trunk r162107. With thanks to 2012-08-20 18:33:03 +00:00
ipw
ipwfw
isci Remove explicit CC assignment in isci(4) Makefile to allow for building 2012-02-09 17:50:24 +00:00
iscsi Fix build. 2012-04-20 04:40:39 +00:00
isp
ispfw
iwi
iwifw
iwn
iwnfw Add firmware images for the 6000 series g2a and g2b adapters. 2011-04-20 17:34:09 +00:00
ixgb
ixgbe Unbreak make depend. 2012-05-30 13:55:43 +00:00
jme
joy
kbdmux
kgssapi Consistently set RPCGEN_CPP when running rpcgen, so the C preprocessor 2012-02-07 09:27:07 +00:00
kgssapi_krb5 Consistently set RPCGEN_CPP when running rpcgen, so the C preprocessor 2012-02-07 09:27:07 +00:00
khelp Import the ERTT (Enhanced Round Trip Time) Khelp module. ERTT uses the 2011-01-24 23:08:38 +00:00
krpc Make the RPC specific __rpc_inet_ntop() and __rpc_inet_pton() general 2010-09-24 15:01:45 +00:00
ksyms
le MFtbemd: 2010-08-23 06:13:29 +00:00
lge
libalias
libiconv Add unicode support to msdosfs and smbfs; original pathes from imura, 2011-11-18 03:05:20 +00:00
libmbpool
libmchain Add unicode support to msdosfs and smbfs; original pathes from imura, 2011-11-18 03:05:20 +00:00
lindev
linprocfs MFtbemd: 2010-08-23 06:13:29 +00:00
linsysfs MFtbemd: 2010-08-23 06:13:29 +00:00
linux Fix make depend 2012-05-06 11:41:00 +00:00
lmc
lpt
mac_biba
mac_bsdextended
mac_ifoff
mac_lomac
mac_mls
mac_none
mac_partition
mac_portacl
mac_seeotheruids
mac_stub
mac_test
malo
mcd
md
mem Disconnect sun4v architecture from the three. 2011-05-14 01:53:38 +00:00
mfi MFhead_mfi r227068 2012-03-30 23:05:48 +00:00
mii Merging of projects/armv6, part 5 2012-08-15 04:03:55 +00:00
mlx
mlx4 Add OFED and the associated options and drivers to x86 LINT builds: 2012-04-12 14:01:06 +00:00
mlx4ib Add OFED and the associated options and drivers to x86 LINT builds: 2012-04-12 14:01:06 +00:00
mlxen Add OFED and the associated options and drivers to x86 LINT builds: 2012-04-12 14:01:06 +00:00
mly
mmc
mmcsd o Fixes: 2012-04-21 01:51:16 +00:00
mps Upgrade our copy of llvm/clang to trunk r162107. With thanks to 2012-08-20 18:33:03 +00:00
mpt
mqueue
msdosfs
msdosfs_iconv
mse
msk
mthca Add OFED and the associated options and drivers to x86 LINT builds: 2012-04-12 14:01:06 +00:00
mvs
mwl Fix make depend. 2012-05-01 07:38:40 +00:00
mwlfw
mxge
my
nand Add nand core module and module dependency information. 2012-06-26 18:08:03 +00:00
nandfs Import work done under project/nand (@235533) into head. 2012-05-17 10:11:18 +00:00
nandsim Import work done under project/nand (@235533) into head. 2012-05-17 10:11:18 +00:00
ncp
ncv
ndis MFtbemd: 2010-08-23 06:13:29 +00:00
netgraph Use rt_numfibs variable instead of compile-time RT_NUMFIBS. 2012-03-13 11:08:40 +00:00
netmap add support to build netmap as a module, 2012-05-29 19:55:07 +00:00
nfe
nfs_common
nfscl Fix make buildworld -DMODULES_WITH_WORLD 2011-06-23 20:31:52 +00:00
nfsclient Fix the experimental NFS client so that it does not bogusly 2011-04-25 22:22:51 +00:00
nfscommon Fix make buildworld -DMODULES_WITH_WORLD 2011-06-23 20:31:52 +00:00
nfsd
nfslock Move sys/nfsclient/nfs_lock.c into sys/nfs and build it as a separate 2010-07-24 22:11:11 +00:00
nfslockd
nfsserver
nfssvc
nge
nmdm
nsp
ntfs
ntfs_iconv
nullfs
nvd Add nvme(4) and nvd(4) Makefiles to the tree. 2012-09-17 19:58:02 +00:00
nve Set WERROR= for the nve(4) module. This driver gives several warnings 2011-12-24 13:36:28 +00:00
nvme Add nvme(4) and nvd(4) Makefiles to the tree. 2012-09-17 19:58:02 +00:00
nvram
nwfs
nxge Disable several instances instances of clang's -Wself-assign warning. 2011-12-30 13:16:59 +00:00
oce Depend on the relevant header files. 2012-02-11 08:34:33 +00:00
opensolaris Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
padlock
patm
pccard
pcfclock
pcn
pf o Create directory sys/netpfil, where all packet filters should 2012-09-14 11:51:49 +00:00
pflog o Create directory sys/netpfil, where all packet filters should 2012-09-14 11:51:49 +00:00
pfsync o Create directory sys/netpfil, where all packet filters should 2012-09-14 11:51:49 +00:00
plip
pmc
portalfs Fix two cases involving opt_capsicum.h and module builds: 2011-08-15 07:32:44 +00:00
powermac_nvram
ppbus
ppc MFtbemd: 2010-08-23 06:13:29 +00:00
ppi
pps
procfs MFtbemd: 2010-08-23 06:13:29 +00:00
pseudofs
pst
pty
puc
qlxgb Add QLogic 10 Gigabit Ethernet & CNA Adapter Driver version 1.30 2011-11-03 21:20:22 +00:00
ral Add support for Ralink RT2800/RT3000 chipsets. 2012-05-10 17:41:16 +00:00
ralfw Update the rt2860's firmware and add a Makefile for the module. While 2012-03-13 21:25:25 +00:00
random Add support for new Intel on-CPU Bull Mountain random number 2012-09-05 13:18:51 +00:00
rc
rc4
rdma Fix 'make depend'. 2012-06-25 09:46:06 +00:00
re
reiserfs
rl
rndtest
rp
runfw
s3
safe
sbni
scc Fix the scc(4) module build. Without the file it's missing a required symbol. 2012-02-26 13:27:22 +00:00
scd
scsi_low Remove scsi_low_pisa.c from the module Makefile to keep in line 2012-09-10 21:57:40 +00:00
sdhci
sem Add missed dependency. 2010-08-15 15:33:01 +00:00
send MFp4: anchie_soc2009 branch: 2010-08-19 11:31:03 +00:00
sf
sfxge Add the sfxge(4) device driver, providing support for 10Gb Ethernet adapters 2011-11-16 17:11:13 +00:00
sge
siba_bwn
siftr Import the Statistical Information For TCP Research (SIFTR) kernel module into 2010-07-03 13:32:39 +00:00
siis
sio Follow up to r225203 refining break-to-debugger run-time configuration 2011-08-27 14:24:27 +00:00
sis
sk
smbfs MFtbemd: 2010-08-23 06:13:29 +00:00
sn
snc
snp
sound Add driver for the RME HDSPe AIO/RayDAT sound cards -- snd_hdspe(4). 2012-03-01 13:10:18 +00:00
speaker
splash - Add support for ASCII art splash screens in TheDraw format 2011-12-12 21:12:07 +00:00
sppp
ste
stg
stge
streams
svr4 MFtbemd: 2010-08-23 06:13:29 +00:00
sym
syscons MFtbemd: 2010-08-23 06:13:29 +00:00
sysvipc Add opt_compat.h to SRCS. 2010-10-13 14:44:38 +00:00
ti
tl
tmpfs
toecore Fix 'make depend'. 2012-06-25 09:46:06 +00:00
tpm Hook tpm.4 manual to build. 2010-08-13 04:00:35 +00:00
trm
twa
twe
tws Add the 9750 SATA+SAS 6Gb/s RAID controller card driver, tws(4). Many 2011-10-04 21:40:25 +00:00
tx
txp
uart Compensate for the replacement of uart_cpu_{amd64|i386}.c with 2012-04-18 17:44:05 +00:00
ubsec
ubser
uchcom
ucycom
udf
udf_iconv
ufs Retire opt_ffs_broken_fixme.h. 2011-03-20 21:05:09 +00:00
unionfs
usb Merging of projects/armv6, part 5 2012-08-15 04:03:55 +00:00
utopia
vesa
vge
viawd Add watchdog support for VIA south bridge chipset. 2011-12-12 09:50:33 +00:00
virtio Import virtio base, PCI front-end, and net/block/balloon drivers. 2011-11-18 05:43:43 +00:00
vkbd
vpo
vr
vte Add driver for DM&P Vortex86 RDC R6040 Fast Ethernet. 2010-12-31 00:21:41 +00:00
vx MFtbemd: 2010-08-23 06:13:29 +00:00
vxge Exar driver for X3100 10GbE Server/Storage adapters 2011-04-28 14:33:15 +00:00
wb
wbwd Provide wbwd(4), a driver for the watchdog timer found on various 2012-03-06 18:44:52 +00:00
wi Fix 'make depend'. 2012-02-16 21:57:50 +00:00
wlan Fix 'make depend'. 2012-02-16 21:57:50 +00:00
wlan_acl
wlan_amrr
wlan_ccmp
wlan_rssadapt
wlan_tkip
wlan_wep
wlan_xauth
wpi Fix make depend 2012-06-03 12:19:16 +00:00
wpifw Update firmware for wpi(4) from version 2.14.4 to 15.32.2.9. 2010-12-19 11:37:44 +00:00
wtap Tidy-up. 2012-01-17 18:20:34 +00:00
x86bios Do not build real mode emulator for i386. We use VM86 again since r210877. 2010-08-08 06:18:05 +00:00
xe
xfs Partially revert r239959, after actually fixing most of the clang 2012-09-02 14:46:18 +00:00
xl - Follow the lead of dcphy(4) and pnphy(4) and move the reminder of the PHY 2011-10-08 12:33:10 +00:00
zfs Add TRIM support. 2012-09-23 19:40:58 +00:00
zlib
Makefile Integrate nvme(4) and nvd(4) into the amd64 and i386 builds. 2012-09-17 19:26:33 +00:00
Makefile.inc