Lines Matching +full:2 +full:kb

14  * 2. Redistributions in binary form must reproduce the above copyright
58 uint32_t error; /* 2C error code or 0 */
76 * are always 64KB. Logical file buffers are typically 16KB. All data
85 * to optimize storage efficiency. The minimum fragment size is 1KB.
86 * Since allocations are in powers of 2 fragments must also be sized in
87 * powers of 2 (1024, 2048, ... 65536).
90 * which is 2^16. Larger extents may be supported in the future. Smaller
94 * A full indirect block use supports 512 x 128-byte blockrefs in a 64KB
95 * buffer. Indirect blocks down to 1KB are supported to keep small
98 * A maximally sized file (2^64-1 bytes) requires ~6 indirect block levels
99 * using 64KB indirect blocks (128 byte refs, 512 or radix 9 per indblk).
108 #define HAMMER2_RADIX_MIN 10 /* minimum allocation size 2^N */
110 #define HAMMER2_RADIX_MAX 16 /* maximum allocation size 2^N */
165 * <= 512KB. Up to 4 directory entries can be referenced from a directory
168 * Indirect blocks are typically either 4KB (64 blockrefs / ~4MB represented),
169 * or 64KB (1024 blockrefs / ~64MB represented).
171 #define HAMMER2_SET_RADIX 2 /* radix 2 = 4 entries */
189 * A 4MB segment is reserved at the beginning of each 2GB zone. This segment
197 * 0 volume header (for the first four 2GB zones)
199 * 2 level2 FREEMAP_NODE (256 x 128B indirect block per 256GB)
243 * The first four 2GB zones contain volume headers and volume header backups.
247 * Note that each FREEMAP_LEAF or FREEMAP_NODE uses 32KB out of 64KB slot.
262 * blockrefs representing another 2 bits, giving us a total 64 bits of
265 * The Level 0 64KB block represents 1GB of storage represented by 32KB
267 * and has a 512 bit bitmap, using 2 bits to represent a 16KB chunk of
268 * storage. These 2 bits represent the following states:
275 * One important thing to note here is that the freemap resolution is 16KB,
276 * but the minimum storage allocation size is 1KB. The hammer2 vfs keeps
278 * the entire 16KB of a partially allocated block will be considered fully
311 #define HAMMER2_ZONE_BYTES64 (2LLU * 1024 * 1024 * 1024)
360 #define HAMMER2_ZONEFM_LEVEL3 2 /* 64TB indmap */
367 * 32KB indirect block for freemap (LEVELN_PSIZE below).
370 * bitmap, 2-bits per entry. So course bitmap item represents 16KB.
417 * 16KB bitmap granularity (x2 bits per entry).
424 * bitmap[] structure. 2 bits per HAMMER2_FREEMAP_BLOCK_SIZE.
426 * 8 x 64-bit elements, 2 bits per block.
490 * to as a power of 2. The theoretical minimum radix is thus 6 (The space
492 * minimum allocation chunk size is 1KB (a radix of 10), so HAMMER2 sets
493 * HAMMER2_RADIX_MIN to 10. The maximum radix is currently 16 (64KB), but
559 uuid_t pfs_clid; /* 20-2F copy target must match this uuid */
755 #define HAMMER2_BREF_TYPE_INDIRECT 2
778 #define HAMMER2_CHECK_ISCSI32 2
801 #define HAMMER2_COMP_LZ4 2
825 * (2) The blockrefs in a set can shortcut multiple levels of indirections
835 * Indirect blocks are typically 4KB (64 entres) or 64KB (1024 entries) and
861 * a LEVEL0 (4MB) block of storage. The storage is managed in 256 x 16KB
869 * linear - A BYTE linear allocation offset used for sub-16KB allocations
871 * if 16KB-aligned (i.e. force bitmap scan), otherwise may be
872 * used to sub-allocate within the 16KB block (which is already
875 * Sub-allocations need only be 1KB-aligned and do not have to be
876 * size-aligned, and 16KB or larger allocations do not update this
881 * desire to support sector sizes up to 16KB (so H2 only issues
882 * I/O's in multiples of 16KB anyway).
892 * bitmap - Two bits per 16KB allocation block arranged in arrays of
912 uint32_t reserved20[8]; /* 20-3F 256 bits manages 128K/1KB/2-bits */
1075 #define HAMMER2_OBJTYPE_REGFILE 2
1139 #define HAMMER2_PFSSUBTYPE_AUTOSNAP 2 /* automatic snapshot */
1157 * Note that the minimum chunk size is 1KB so we could theoretically have
1294 * icrc_sects[5] - Sector 2
1308 * sector #2-7
1354 * The whole volume block (64KB) has an iCRC covering all but the last 4 bytes,
1373 #define HAMMER2_VOL_VERSION_WIP 2