|
FreeBSD ZFS
The Zettabyte File System
|
#include <sys/dsl_pool.h>#include <sys/dsl_dataset.h>#include <sys/dsl_prop.h>#include <sys/dsl_dir.h>#include <sys/dsl_synctask.h>#include <sys/dsl_scan.h>#include <sys/dnode.h>#include <sys/dmu_tx.h>#include <sys/dmu_objset.h>#include <sys/arc.h>#include <sys/zap.h>#include <sys/zio.h>#include <sys/zfs_context.h>#include <sys/fs/zfs.h>#include <sys/zfs_znode.h>#include <sys/spa_impl.h>#include <sys/dsl_deadlist.h>#include <sys/bptree.h>#include <sys/zfeature.h>#include <sys/zil_impl.h>
Go to the source code of this file.
Functions | |
| SYSCTL_DECL (_vfs_zfs) | |
| TUNABLE_INT ("vfs.zfs.no_write_throttle",&zfs_no_write_throttle) | |
| SYSCTL_INT (_vfs_zfs, OID_AUTO, no_write_throttle, CTLFLAG_RDTUN,&zfs_no_write_throttle, 0,"") | |
| TUNABLE_INT ("vfs.zfs.write_limit_shift",&zfs_write_limit_shift) | |
| SYSCTL_INT (_vfs_zfs, OID_AUTO, write_limit_shift, CTLFLAG_RDTUN,&zfs_write_limit_shift, 0,"2^N of physical memory") | |
| SYSCTL_DECL (_vfs_zfs_txg) | |
| TUNABLE_INT ("vfs.zfs.txg.synctime_ms",&zfs_txg_synctime_ms) | |
| SYSCTL_INT (_vfs_zfs_txg, OID_AUTO, synctime_ms, CTLFLAG_RDTUN,&zfs_txg_synctime_ms, 0,"Target milliseconds to sync a txg") | |
| TUNABLE_QUAD ("vfs.zfs.write_limit_min",&zfs_write_limit_min) | |
| SYSCTL_UQUAD (_vfs_zfs, OID_AUTO, write_limit_min, CTLFLAG_RDTUN,&zfs_write_limit_min, 0,"Minimum write limit") | |
| TUNABLE_QUAD ("vfs.zfs.write_limit_max",&zfs_write_limit_max) | |
| SYSCTL_UQUAD (_vfs_zfs, OID_AUTO, write_limit_max, CTLFLAG_RDTUN,&zfs_write_limit_max, 0,"Maximum data payload per txg") | |
| TUNABLE_QUAD ("vfs.zfs.write_limit_inflated",&zfs_write_limit_inflated) | |
| SYSCTL_UQUAD (_vfs_zfs, OID_AUTO, write_limit_inflated, CTLFLAG_RDTUN,&zfs_write_limit_inflated, 0,"") | |
| TUNABLE_QUAD ("vfs.zfs.write_limit_override",&zfs_write_limit_override) | |
| SYSCTL_UQUAD (_vfs_zfs, OID_AUTO, write_limit_override, CTLFLAG_RDTUN,&zfs_write_limit_override, 0,"") | |
| int | dsl_pool_open_special_dir (dsl_pool_t *dp, const char *name, dsl_dir_t **ddp) |
| static dsl_pool_t * | dsl_pool_open_impl (spa_t *spa, uint64_t txg) |
| int | dsl_pool_init (spa_t *spa, uint64_t txg, dsl_pool_t **dpp) |
| int | dsl_pool_open (dsl_pool_t *dp) |
| void | dsl_pool_close (dsl_pool_t *dp) |
| dsl_pool_t * | dsl_pool_create (spa_t *spa, nvlist_t *zplprops, uint64_t txg) |
| void | dsl_pool_mos_diduse_space (dsl_pool_t *dp, int64_t used, int64_t comp, int64_t uncomp) |
| Account for the meta-objset space in its placeholder dsl_dir. | |
| static int | deadlist_enqueue_cb (void *arg, const blkptr_t *bp, dmu_tx_t *tx) |
| void | dsl_pool_sync (dsl_pool_t *dp, uint64_t txg) |
| void | dsl_pool_sync_done (dsl_pool_t *dp, uint64_t txg) |
| int | dsl_pool_sync_context (dsl_pool_t *dp) |
| TRUE if the current thread is the tx_sync_thread or if we are being called from SPA context during pool initialization. | |
| uint64_t | dsl_pool_adjustedsize (dsl_pool_t *dp, boolean_t netfree) |
| int | dsl_pool_tempreserve_space (dsl_pool_t *dp, uint64_t space, dmu_tx_t *tx) |
| void | dsl_pool_tempreserve_clear (dsl_pool_t *dp, int64_t space, dmu_tx_t *tx) |
| void | dsl_pool_memory_pressure (dsl_pool_t *dp) |
| void | dsl_pool_willuse_space (dsl_pool_t *dp, int64_t space, dmu_tx_t *tx) |
| static int | upgrade_clones_cb (spa_t *spa, uint64_t dsobj, const char *dsname, void *arg) |
| void | dsl_pool_upgrade_clones (dsl_pool_t *dp, dmu_tx_t *tx) |
| static int | upgrade_dir_clones_cb (spa_t *spa, uint64_t dsobj, const char *dsname, void *arg) |
| void | dsl_pool_upgrade_dir_clones (dsl_pool_t *dp, dmu_tx_t *tx) |
| void | dsl_pool_create_origin (dsl_pool_t *dp, dmu_tx_t *tx) |
| taskq_t * | dsl_pool_vnrele_taskq (dsl_pool_t *dp) |
| void | dsl_pool_clean_tmp_userrefs (dsl_pool_t *dp) |
| Walk through the pool-wide zap object of temporary snapshot user holds and release them. | |
| void | dsl_pool_user_hold_create_obj (dsl_pool_t *dp, dmu_tx_t *tx) |
| Create the pool-wide zap object for storing temporary snapshot holds. | |
| static int | dsl_pool_user_hold_rele_impl (dsl_pool_t *dp, uint64_t dsobj, const char *tag, uint64_t *now, dmu_tx_t *tx, boolean_t holding) |
| int | dsl_pool_user_hold (dsl_pool_t *dp, uint64_t dsobj, const char *tag, uint64_t *now, dmu_tx_t *tx) |
| Add a temporary hold for the given dataset object and tag. | |
| int | dsl_pool_user_release (dsl_pool_t *dp, uint64_t dsobj, const char *tag, dmu_tx_t *tx) |
| Release a temporary hold for the given dataset object and tag. | |
Variables | |
| int | zfs_no_write_throttle = 0 |
| int | zfs_write_limit_shift = 3 |
| 1/8th of physical memory | |
| int | zfs_txg_synctime_ms = 1000 |
| target millisecs to sync a txg | |
| uint64_t | zfs_write_limit_min = 32 << 20 |
| min write limit is 32MB | |
| uint64_t | zfs_write_limit_max = 0 |
| max data payload per txg | |
| uint64_t | zfs_write_limit_inflated = 0 |
| uint64_t | zfs_write_limit_override = 0 |
| kmutex_t | zfs_write_limit_lock |
| static pgcnt_t | old_physmem = 0 |
Definition at line 361 of file dsl_pool.c.
| uint64_t dsl_pool_adjustedsize | ( | dsl_pool_t * | dp, |
| boolean_t | netfree | ||
| ) |
Definition at line 586 of file dsl_pool.c.
| void dsl_pool_clean_tmp_userrefs | ( | dsl_pool_t * | dp | ) |
Walk through the pool-wide zap object of temporary snapshot user holds and release them.
Definition at line 863 of file dsl_pool.c.
| void dsl_pool_close | ( | dsl_pool_t * | dp | ) |
Definition at line 238 of file dsl_pool.c.
| dsl_pool_t* dsl_pool_create | ( | spa_t * | spa, |
| nvlist_t * | zplprops, | ||
| uint64_t | txg | ||
| ) |
Definition at line 279 of file dsl_pool.c.
| void dsl_pool_create_origin | ( | dsl_pool_t * | dp, |
| dmu_tx_t * | tx | ||
| ) |
Definition at line 832 of file dsl_pool.c.
| int dsl_pool_init | ( | spa_t * | spa, |
| uint64_t | txg, | ||
| dsl_pool_t ** | dpp | ||
| ) |
Definition at line 134 of file dsl_pool.c.
| void dsl_pool_memory_pressure | ( | dsl_pool_t * | dp | ) |
Definition at line 658 of file dsl_pool.c.
| void dsl_pool_mos_diduse_space | ( | dsl_pool_t * | dp, |
| int64_t | used, | ||
| int64_t | comp, | ||
| int64_t | uncomp | ||
| ) |
Account for the meta-objset space in its placeholder dsl_dir.
Definition at line 349 of file dsl_pool.c.
| int dsl_pool_open | ( | dsl_pool_t * | dp | ) |
Definition at line 150 of file dsl_pool.c.
| static dsl_pool_t* dsl_pool_open_impl | ( | spa_t * | spa, |
| uint64_t | txg | ||
| ) | [static] |
Definition at line 104 of file dsl_pool.c.
| int dsl_pool_open_special_dir | ( | dsl_pool_t * | dp, |
| const char * | name, | ||
| dsl_dir_t ** | ddp | ||
| ) |
Definition at line 89 of file dsl_pool.c.
| void dsl_pool_sync | ( | dsl_pool_t * | dp, |
| uint64_t | txg | ||
| ) |
Definition at line 372 of file dsl_pool.c.
| int dsl_pool_sync_context | ( | dsl_pool_t * | dp | ) |
TRUE if the current thread is the tx_sync_thread or if we are being called from SPA context during pool initialization.
Definition at line 579 of file dsl_pool.c.
| void dsl_pool_sync_done | ( | dsl_pool_t * | dp, |
| uint64_t | txg | ||
| ) |
Definition at line 560 of file dsl_pool.c.
| void dsl_pool_tempreserve_clear | ( | dsl_pool_t * | dp, |
| int64_t | space, | ||
| dmu_tx_t * | tx | ||
| ) |
Definition at line 651 of file dsl_pool.c.
| int dsl_pool_tempreserve_space | ( | dsl_pool_t * | dp, |
| uint64_t | space, | ||
| dmu_tx_t * | tx | ||
| ) |
Definition at line 609 of file dsl_pool.c.
| void dsl_pool_upgrade_clones | ( | dsl_pool_t * | dp, |
| dmu_tx_t * | tx | ||
| ) |
Definition at line 763 of file dsl_pool.c.
| void dsl_pool_upgrade_dir_clones | ( | dsl_pool_t * | dp, |
| dmu_tx_t * | tx | ||
| ) |
Definition at line 806 of file dsl_pool.c.
| int dsl_pool_user_hold | ( | dsl_pool_t * | dp, |
| uint64_t | dsobj, | ||
| const char * | tag, | ||
| uint64_t * | now, | ||
| dmu_tx_t * | tx | ||
| ) |
Add a temporary hold for the given dataset object and tag.
Definition at line 943 of file dsl_pool.c.
| void dsl_pool_user_hold_create_obj | ( | dsl_pool_t * | dp, |
| dmu_tx_t * | tx | ||
| ) |
Create the pool-wide zap object for storing temporary snapshot holds.
Definition at line 893 of file dsl_pool.c.
| static int dsl_pool_user_hold_rele_impl | ( | dsl_pool_t * | dp, |
| uint64_t | dsobj, | ||
| const char * | tag, | ||
| uint64_t * | now, | ||
| dmu_tx_t * | tx, | ||
| boolean_t | holding | ||
| ) | [static] |
Definition at line 905 of file dsl_pool.c.
| int dsl_pool_user_release | ( | dsl_pool_t * | dp, |
| uint64_t | dsobj, | ||
| const char * | tag, | ||
| dmu_tx_t * | tx | ||
| ) |
Release a temporary hold for the given dataset object and tag.
Definition at line 953 of file dsl_pool.c.
| taskq_t* dsl_pool_vnrele_taskq | ( | dsl_pool_t * | dp | ) |
Definition at line 853 of file dsl_pool.c.
| void dsl_pool_willuse_space | ( | dsl_pool_t * | dp, |
| int64_t | space, | ||
| dmu_tx_t * | tx | ||
| ) |
Definition at line 675 of file dsl_pool.c.
| SYSCTL_DECL | ( | _vfs_zfs | ) |
| SYSCTL_DECL | ( | _vfs_zfs_txg | ) |
| SYSCTL_INT | ( | _vfs_zfs_txg | , |
| OID_AUTO | , | ||
| synctime_ms | , | ||
| CTLFLAG_RDTUN | , | ||
| & | zfs_txg_synctime_ms, | ||
| 0 | , | ||
| "Target milliseconds to sync a txg" | |||
| ) |
| SYSCTL_INT | ( | _vfs_zfs | , |
| OID_AUTO | , | ||
| no_write_throttle | , | ||
| CTLFLAG_RDTUN | , | ||
| & | zfs_no_write_throttle, | ||
| 0 | , | ||
| "" | |||
| ) |
| SYSCTL_INT | ( | _vfs_zfs | , |
| OID_AUTO | , | ||
| write_limit_shift | , | ||
| CTLFLAG_RDTUN | , | ||
| & | zfs_write_limit_shift, | ||
| 0 | , | ||
| "2^N of physical memory" | |||
| ) |
| SYSCTL_UQUAD | ( | _vfs_zfs | , |
| OID_AUTO | , | ||
| write_limit_max | , | ||
| CTLFLAG_RDTUN | , | ||
| & | zfs_write_limit_max, | ||
| 0 | , | ||
| "Maximum data payload per txg" | |||
| ) |
| SYSCTL_UQUAD | ( | _vfs_zfs | , |
| OID_AUTO | , | ||
| write_limit_override | , | ||
| CTLFLAG_RDTUN | , | ||
| & | zfs_write_limit_override, | ||
| 0 | , | ||
| "" | |||
| ) |
| SYSCTL_UQUAD | ( | _vfs_zfs | , |
| OID_AUTO | , | ||
| write_limit_min | , | ||
| CTLFLAG_RDTUN | , | ||
| & | zfs_write_limit_min, | ||
| 0 | , | ||
| "Minimum write limit" | |||
| ) |
| SYSCTL_UQUAD | ( | _vfs_zfs | , |
| OID_AUTO | , | ||
| write_limit_inflated | , | ||
| CTLFLAG_RDTUN | , | ||
| & | zfs_write_limit_inflated, | ||
| 0 | , | ||
| "" | |||
| ) |
| TUNABLE_INT | ( | "vfs.zfs.txg.synctime_ms" | , |
| & | zfs_txg_synctime_ms | ||
| ) |
| TUNABLE_INT | ( | "vfs.zfs.no_write_throttle" | , |
| & | zfs_no_write_throttle | ||
| ) |
| TUNABLE_INT | ( | "vfs.zfs.write_limit_shift" | , |
| & | zfs_write_limit_shift | ||
| ) |
| TUNABLE_QUAD | ( | "vfs.zfs.write_limit_min" | , |
| & | zfs_write_limit_min | ||
| ) |
| TUNABLE_QUAD | ( | "vfs.zfs.write_limit_override" | , |
| & | zfs_write_limit_override | ||
| ) |
| TUNABLE_QUAD | ( | "vfs.zfs.write_limit_inflated" | , |
| & | zfs_write_limit_inflated | ||
| ) |
| TUNABLE_QUAD | ( | "vfs.zfs.write_limit_max" | , |
| & | zfs_write_limit_max | ||
| ) |
| static int upgrade_clones_cb | ( | spa_t * | spa, |
| uint64_t | dsobj, | ||
| const char * | dsname, | ||
| void * | arg | ||
| ) | [static] |
Definition at line 686 of file dsl_pool.c.
| static int upgrade_dir_clones_cb | ( | spa_t * | spa, |
| uint64_t | dsobj, | ||
| const char * | dsname, | ||
| void * | arg | ||
| ) | [static] |
Definition at line 774 of file dsl_pool.c.
pgcnt_t old_physmem = 0 [static] |
Definition at line 61 of file dsl_pool.c.
| kmutex_t zfs_write_limit_lock |
Definition at line 59 of file dsl_pool.c.
1.7.3