|
FreeBSD ZFS
The Zettabyte File System
|
Each metaslab's free space is tracked in space map object in the MOS, which is only updated in syncing context. More...
#include <metaslab_impl.h>

Data Fields | |
| kmutex_t | ms_lock |
| metaslab lock | |
| space_map_obj_t | ms_smo |
| synced space map object | |
| space_map_obj_t | ms_smo_syncing |
| syncing space map object | |
| space_map_t | ms_allocmap [TXG_SIZE] |
| allocated this txg | |
| space_map_t | ms_freemap [TXG_SIZE] |
| freed this txg | |
| space_map_t | ms_defermap [TXG_DEFER_SIZE] |
| deferred frees | |
| space_map_t | ms_map |
| in-core free space map | |
| int64_t | ms_deferspace |
| sum of ms_defermap[] space | |
| uint64_t | ms_weight |
| weight vs. | |
| metaslab_group_t * | ms_group |
| metaslab group | |
| avl_node_t | ms_group_node |
| node in metaslab group tree | |
| txg_node_t | ms_txg_node |
| per-txg dirty metaslab links | |
Each metaslab's free space is tracked in space map object in the MOS, which is only updated in syncing context.
Each time we sync a txg, we append the allocs and frees from that txg to the space map object. When the txg is done syncing, metaslab_sync_done() updates ms_smo to ms_smo_syncing. Everything in ms_smo is always safe to allocate.
Definition at line 72 of file metaslab_impl.h.
| space_map_t metaslab::ms_allocmap[TXG_SIZE] |
allocated this txg
Definition at line 76 of file metaslab_impl.h.
| space_map_t metaslab::ms_defermap[TXG_DEFER_SIZE] |
deferred frees
Definition at line 78 of file metaslab_impl.h.
| int64_t metaslab::ms_deferspace |
sum of ms_defermap[] space
Definition at line 80 of file metaslab_impl.h.
| space_map_t metaslab::ms_freemap[TXG_SIZE] |
freed this txg
Definition at line 77 of file metaslab_impl.h.
metaslab group
Definition at line 82 of file metaslab_impl.h.
| avl_node_t metaslab::ms_group_node |
node in metaslab group tree
Definition at line 83 of file metaslab_impl.h.
| kmutex_t metaslab::ms_lock |
metaslab lock
Definition at line 73 of file metaslab_impl.h.
in-core free space map
Definition at line 79 of file metaslab_impl.h.
synced space map object
Definition at line 74 of file metaslab_impl.h.
syncing space map object
Definition at line 75 of file metaslab_impl.h.
per-txg dirty metaslab links
Definition at line 84 of file metaslab_impl.h.
| uint64_t metaslab::ms_weight |
1.7.3