mirror_zfs/include/sys
Etienne Dechamps 0aebd4f9e3 Create threads in detached state in userspace.
Currently, thread_create(), when called in userspace, creates a
joinable (i.e. not detached thread). This is the pthread default.

Unfortunately, this does not reproduce kthreads behavior (kthreads
are always detached). In addition, this contradicts the original
Solaris code which creates userspace threads in detached mode.

These joinable threads are never joined, which leads to a leakage of
pthread thread objects ("zombie threads"). This in turn results in
excessive ressource consumption, and possible ressource exhaustion in
extreme cases (e.g. long ztest runs).

This patch fixes the issue by creating userspace threads in detached
mode. The only exception is ztest worker threads which are meant to be
joinable.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #989
2012-10-03 13:32:48 -07:00
..
fm Remove autotools products 2012-08-27 11:47:44 -07:00
fs Illumos #2703: add mechanism to report ZFS send progress 2012-09-19 13:39:06 -07:00
arc.h Linux 3.1 compat, super_block->s_shrink 2012-01-11 11:46:02 -08:00
avl_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
avl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bplist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
bpobj.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dbuf.h Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
ddt.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dmu_impl.h Illumos #2703: add mechanism to report ZFS send progress 2012-09-19 13:39:06 -07:00
dmu_objset.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dmu_traverse.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dmu_tx.h Add --enable-debug-dmu-tx configure option 2012-03-23 12:25:17 -07:00
dmu_zfetch.h Add missing ZFS tunables 2011-05-04 10:02:37 -07:00
dmu.h Illumos #2703: add mechanism to report ZFS send progress 2012-09-19 13:39:06 -07:00
dnode.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_dataset.h Illumos #2703: add mechanism to report ZFS send progress 2012-09-19 13:39:06 -07:00
dsl_deadlist.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_deleg.h Illumos #1644, #1645, #1646, #1647, #1708 2012-07-31 09:25:30 -07:00
dsl_dir.h Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
dsl_pool.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
dsl_prop.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_scan.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
dsl_synctask.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
efi_partition.h Move partition scanning from userspace to module. 2012-07-17 09:17:31 -07:00
Makefile.am Add .zfs control directory 2012-03-22 13:03:47 -07:00
metaslab_impl.h Illumos #1051: zfs should handle imbalanced luns 2011-08-01 12:09:11 -07:00
metaslab.h Illumos #1051: zfs should handle imbalanced luns 2011-08-01 12:09:11 -07:00
nvpair_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
nvpair.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
refcount.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
rrwlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
sa_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
sa.h Add sa_spill_rele() interface 2012-03-07 16:28:00 -08:00
spa_boot.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
spa_impl.h Illumos #1693: persistent 'comment' field for a zpool 2012-08-08 11:49:37 -07:00
spa.h Switch KM_SLEEP to KM_PUSHPAGE 2012-08-27 12:01:37 -07:00
space_map.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
txg_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
txg.h Add API to wait for pending commit callbacks 2011-02-16 11:20:06 -08:00
u8_textprep_data.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
u8_textprep.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uberblock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uio_impl.h Add basic uio support 2011-02-10 09:21:43 -08:00
unique.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
uuid.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev_disk.h Linux 2.6.x compat, blkdev_compat.h 2011-02-23 12:29:38 -08:00
vdev_file.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
vdev_impl.h Illumos #1948: zpool list should show more detailed pool info 2012-09-19 13:39:05 -07:00
vdev.h Illumos #1949, #1953 2012-07-11 13:33:31 -07:00
xvattr.h Add xvattr support 2011-03-02 11:43:50 -08:00
zap_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zap_leaf.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zap.h Export symbols for the full ZAP API 2011-09-27 16:12:36 -07:00
zfs_acl.h Fix build failures on PaX/GRSecurity patched kernels 2012-07-17 09:22:43 -07:00
zfs_context.h Create threads in detached state in userspace. 2012-10-03 13:32:48 -07:00
zfs_ctldir.h Use ULL suffix in constants 2012-07-10 11:31:55 -07:00
zfs_debug.h Cleanly support debug packages 2012-02-27 14:08:17 -08:00
zfs_dir.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_fuid.h Prototype/structure update for Linux 2011-02-10 09:27:21 -08:00
zfs_ioctl.h Speed up 'zfs list -t snapshot -o name -s name' 2012-06-14 09:49:04 -07:00
zfs_onexit.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_rlock.h Range lock performance improvements 2011-03-08 12:44:06 -08:00
zfs_sa.h Implement SA based xattrs 2011-11-28 15:45:51 -08:00
zfs_stat.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zfs_vfsops.h Add .zfs control directory 2012-03-22 13:03:47 -07:00
zfs_vnops.h Cleanup mmap(2) writes 2011-08-02 10:34:55 -07:00
zfs_znode.h Add .zfs control directory 2012-03-22 13:03:47 -07:00
zil_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zil.h Add ZIL statistics. 2012-06-29 09:56:51 -07:00
zio_checksum.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zio_compress.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zio_impl.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zio.h Pre-allocate vdev I/O buffers 2012-08-27 12:01:37 -07:00
zpl.h Linux 3.3 compat, iops->create()/mkdir()/mknod() 2012-04-30 12:52:38 -07:00
zrlock.h Support custom build directories and move includes 2010-09-08 12:38:56 -07:00
zvol.h Linux 2.6.x compat, blkdev_compat.h 2011-02-23 12:29:38 -08:00