FreeBSD src
Go to file
Brian Behlendorf 57f5a2008e Fix txg_quiesce thread deadlock
A deadlock was accidentally introduced by commit e95853a which
can occur when the system is under memory pressure.  What happens
is that while the txg_quiesce thread is holding the tx->tx_cpu
locks it enters memory reclaim.  In the context of this memory
reclaim it then issues synchronous I/O to a ZVOL swap device.
Because the txg_quiesce thread is holding the tx->tx_cpu locks
a new txg cannot be opened to handle the I/O.  Deadlock.

The fix is straight forward.  Move the memory allocation outside
the critical region where the tx->tx_cpu locks are held.  And for
good measure change the offending allocation to KM_PUSHPAGE to
ensure it never attempts to issue I/O during reclaim.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #1274
2013-04-26 14:42:36 -07:00
cmd Trivial spelling fix 2013-04-19 15:43:16 -07:00
config Set RPM_DEFINE_COMMON options 2013-04-24 16:18:55 -07:00
dracut Refresh dracut module setup 2013-03-21 12:51:06 -07:00
etc Possibility to disable (not start) zfs at bootup. 2013-04-24 16:18:44 -07:00
include build: resolve orthographic and other grammatical errors 2013-04-02 10:44:52 -07:00
lib Illumos #3422, #3425 2013-04-12 09:01:36 -07:00
man Man page updates for SMB 2013-04-02 10:36:25 -07:00
module Fix txg_quiesce thread deadlock 2013-04-26 14:42:36 -07:00
patches Adding grub2 mkconfig support patch 2012-07-30 16:17:23 -07:00
rpm Fix various generic kmod RPM spec issues. 2013-04-24 16:18:42 -07:00
scripts build: resolve orthographic and other grammatical errors 2013-04-02 10:44:52 -07:00
udev Retire zpool_id infrastructure 2013-01-29 12:23:17 -08:00
.gitignore Ignore *.{deb,rpm,tar.gz} files in the top directory. 2013-04-24 16:18:59 -07:00
AUTHORS Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
autogen.sh build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
configure.ac Automake 1.10.1 compat: AM_SILENT_RULES 2013-04-02 16:05:45 -07:00
copy-builtin Consistent menuconfig name 2012-08-26 13:49:37 -07:00
COPYRIGHT Refresh links to web site 2013-03-06 15:46:41 -08:00
DISCLAIMER Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
Makefile.am build: do not call boilerplate ourself 2013-04-02 10:55:20 -07:00
META Tag zfs-0.6.1 2013-03-26 08:50:29 -07:00
OPENSOLARIS.LICENSE Add CDDL license file 2008-12-01 14:49:34 -08:00
README.markdown Fix minor typos and update marketing copy. 2013-03-21 12:51:06 -07:00
zfs-script-config.sh.in Retire zpool_id infrastructure 2013-01-29 12:23:17 -08:00
zfs.release.in Move zfs.release generation to configure step 2012-07-12 12:22:51 -07:00

Native ZFS for Linux!

ZFS is an advanced file system and volume manager which was originally developed for Solaris and is now maintained by the Illumos community.

ZFS on Linux, which is also known as ZoL, is currently feature complete. It includes fully functional and stable SPA, DMU, ZVOL, and ZPL layers.

Full documentation for installing ZoL on your favorite Linux distribution can be found at: http://zfsonlinux.org