| /freebsd/sys/contrib/openzfs/module/zfs/ |
| H A D | zap_fat.c | 52 #include <sys/zap.h> 57 * If zap_iterate_prefetch is set, we will prefetch the entire ZAP object 73 * Given that the ZAP entries aren't returned in a specific order, the only 87 * Enable ZAP shrinking. When enabled, empty sibling leaf blocks will be 94 static uint64_t zap_allocate_blocks(zap_t *zap, int nblocks); 111 fzap_upgrade(zap_t *zap, dmu_tx_t *tx, zap_flags_t flags) in fzap_upgrade() argument 113 ASSERT(RW_WRITE_HELD(&zap->zap_rwlock)); in fzap_upgrade() 114 zap->zap_ismicro = FALSE; in fzap_upgrade() 116 zap->zap_dbu.dbu_evict_func_sync = zap_evict_sync; in fzap_upgrade() 117 zap->zap_dbu.dbu_evict_func_async = NULL; in fzap_upgrade() [all …]
|
| H A D | zap_micro.c | 35 #include <sys/zap.h> 114 mze_insert(zap_t *zap, uint16_t chunkid, uint64_t hash) in ZFS_BTREE_FIND_IN_BUF_FUNC() 118 ASSERT(zap->zap_ismicro); in ZFS_BTREE_FIND_IN_BUF_FUNC() 119 ASSERT(RW_WRITE_HELD(&zap->zap_rwlock)); in ZFS_BTREE_FIND_IN_BUF_FUNC() 124 ASSERT3U(MZE_PHYS(zap, &mze)->mze_cd, <=, 0xffff); in ZFS_BTREE_FIND_IN_BUF_FUNC() 125 mze.mze_cd = (uint16_t)MZE_PHYS(zap, &mze)->mze_cd; in ZFS_BTREE_FIND_IN_BUF_FUNC() 126 ASSERT(MZE_PHYS(zap, &mze)->mze_name[0] != 0); in ZFS_BTREE_FIND_IN_BUF_FUNC() 127 zfs_btree_add(&zap->zap_m.zap_tree, &mze); in ZFS_BTREE_FIND_IN_BUF_FUNC() 158 mze_find_unused_cd(zap_t *zap, uint64_t hash) in mze_find_unused_cd() argument 162 zfs_btree_t *tree = &zap->zap_m.zap_tree; in mze_find_unused_cd() [all …]
|
| H A D | zap_impl.c | 36 #include <sys/zap.h> 44 /* Setup/teardown caches. Part of the public interface in zap.h. */ 75 zap_normalize(zap_t *zap, const char *name, char *namenorm, int normflags, in zap_normalize() argument 78 ASSERT(!(zap_getflags(zap) & ZAP_FLAG_UINT64_KEY)); in zap_normalize() 91 zap_name_alloc(zap_t *zap, boolean_t longname) in zap_name_alloc() argument 96 zn->zn_zap = zap; in zap_name_alloc() 102 zap_name_alloc_str(zap_t *zap, const char *key, matchtype_t mt) in zap_name_alloc_str() argument 105 zap_name_t *zn = zap_name_alloc(zap, (key_len > ZAP_MAXNAMELEN)); in zap_name_alloc_str() 114 zap_name_alloc_uint64(zap_t *zap, const uint64_t *key, int numints) in zap_name_alloc_uint64() argument 118 ASSERT0(zap->zap_normflags); in zap_name_alloc_uint64() [all …]
|
| H A D | zap.c | 36 #include <sys/zap.h> 229 zap_t *zap; in zap_lookup_norm_by_dnode() local 232 zap_lock_by_dnode(dn, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_lookup_norm_by_dnode() 236 zap_name_t *zn = zap_name_alloc_str(zap, name, mt); in zap_lookup_norm_by_dnode() 238 zap_unlock(zap, FTAG); in zap_lookup_norm_by_dnode() 242 if (!zap->zap_ismicro) { in zap_lookup_norm_by_dnode() 257 MZE_PHYS(zap, mze)->mze_value; in zap_lookup_norm_by_dnode() 260 MZE_PHYS(zap, mze)->mze_name, in zap_lookup_norm_by_dnode() 263 *ncp = mzap_normalization_conflict(zap, in zap_lookup_norm_by_dnode() 270 zap_unlock(zap, FTAG); in zap_lookup_norm_by_dnode() [all …]
|
| H A D | ddt_zap.c | 34 #include <sys/zap.h> 201 * We don't want to prefetch the entire ZAP object, because in ddt_zap_walk() 204 * scrub I/Os for each ZAP block that we read in, so in ddt_zap_walk() 205 * reading the ZAP is unlikely to be the bottleneck. in ddt_zap_walk() 245 "zap", 259 "DDT ZAP leaf blockshift"); 261 "DDT ZAP indirect blockshift");
|
| /freebsd/usr.sbin/makefs/zfs/ |
| H A D | zap.c | 64 unsigned long chunks; /* count of chunks needed for fat ZAP */ 65 bool micro; /* can this be a micro ZAP? */ 117 zfs_zap_t *zap; in zap_alloc() local 119 zap = ecalloc(1, sizeof(*zap)); in zap_alloc() 120 STAILQ_INIT(&zap->kvps); in zap_alloc() 121 zap->hashsalt = ((uint64_t)random() << 32) | random(); in zap_alloc() 122 zap->micro = true; in zap_alloc() 123 zap->kvpcnt = 0; in zap_alloc() 124 zap->chunks = 0; in zap_alloc() 125 zap->dnode = dnode; in zap_alloc() [all …]
|
| /freebsd/sys/contrib/openzfs/include/sys/ |
| H A D | zap_impl.h | 35 #include <sys/zap.h> 46 #define FZAP_BLOCK_SHIFT(zap) ((zap)->zap_f.zap_block_shift) argument 76 #define MZE_PHYS(zap, mze) \ argument 77 (&zap_m_phys(zap)->mz_chunk[(mze)->mze_chunkid]) 80 * The (fat) zap is stored in one object. It is an array of 103 #define ZAP_EMBEDDED_PTRTBL_SHIFT(zap) (FZAP_BLOCK_SHIFT(zap) - 3 - 1) argument 108 * word number (1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap)). 110 #define ZAP_EMBEDDED_PTRTBL_ENT(zap, idx) \ argument 111 ((uint64_t *)zap_f_phys(zap)) \ 112 [(idx) + (1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap))] [all …]
|
| H A D | zap.h | 34 * ZAP - ZFS Attribute Processor 36 * The ZAP is a module which sits on top of the DMU (Data Management 40 * A "zapobj" is a DMU object which the ZAP uses to stores attributes. 41 * Users should use only zap routines to access a zapobj - they should 54 * The ZAP routines are thread-safe. However, you must observe the 64 * The ZAP is intended to operate most efficiently on attributes with 66 * the microzap will be used. The ZAP should be efficient enough so 69 * The ZAP's locking scheme makes its routines thread-safe. Operations 74 * the ZAP uses per-block locking - more than 128 * (number of cpus) 93 * Specifies matching criteria for ZAP lookups. [all …]
|
| H A D | zap_leaf.h | 30 #include <sys/zap.h> 36 struct zap; 113 /* Public to ZAP */ 130 * ZAP_LEAF_HASH_NUMENTRIES(zap) entries. The hash table is 131 * followed by an array of ZAP_LEAF_NUMCHUNKS(zap) 178 /* Set by zap_leaf and public to ZAP */ 213 extern int zap_entry_read_name(struct zap *zap, const zap_entry_handle_t *zeh, 240 struct zap_name *zn, const char *name, struct zap *zap); 249 extern void zap_leaf_stats(struct zap *zap, zap_leaf_t *l,
|
| H A D | dmu.h | 176 DMU_OT_OBJECT_DIRECTORY, /* ZAP */ 192 DMU_OT_DSL_DIR_CHILD_MAP, /* ZAP */ 193 DMU_OT_DSL_DS_SNAP_MAP, /* ZAP */ 194 DMU_OT_DSL_PROPS, /* ZAP */ 200 DMU_OT_DIRECTORY_CONTENTS, /* ZAP */ 201 DMU_OT_MASTER_NODE, /* ZAP */ 202 DMU_OT_UNLINKED_SET, /* ZAP */ 205 DMU_OT_ZVOL_PROP, /* ZAP */ 209 DMU_OT_ZAP_OTHER, /* ZAP */ 211 DMU_OT_ERROR_LOG, /* ZAP */ [all …]
|
| /freebsd/sys/contrib/openzfs/tests/zfs-tests/tests/functional/vdev_zaps/ |
| H A D | vdev_zaps_004_pos.ksh | 24 # 1. Create a pool with one disk. Verify that it has a top and leaf ZAP. 27 # 4. Verify that the newly-attached disk has a leaf ZAP. 58 # Ensure top-level ZAP was transferred successfully. 61 log_fail "Top-level ZAP wasn't transferred successfully on attach." 64 # Ensure leaf ZAP of original disk was transferred successfully. 67 log_fail "$DISK used to have leaf-level ZAP $orig_leaf, now has "\ 70 # Ensure original disk no longer has top-level ZAP. 72 [[ -n "$dsk1_top" ]] && log_fail "$DISK has top-level ZAP, but is only leaf." 74 # Ensure attached disk got a leaf-level ZAP but not a top-level ZAP. 77 [[ -n "$dsk2_top" ]] && log_fail "Attached disk $disk2 has top ZAP." [all …]
|
| H A D | vdev_zaps_003_pos.ksh | 25 # 2. Verify that mirror has top ZAP but no leaf ZAP. 26 # 3. Verify that each disk has a leaf ZAP but no top ZAP. 46 [[ -n "$top_zap" ]] && log_fail "Leaf vdev $DISK has top-level ZAP."
|
| H A D | vdev_zaps_005_pos.ksh | 60 [[ "$new_top" -ne "$orig_top" ]] && log_fail "Top ZAP ($new_top) after "\ 61 "import does not match top ZAP before export ($orig_top)" 62 [[ "$new_leaf" -ne "$orig_leaf" ]] && log_fail "Leaf ZAP ($new_leaf) after "\ 63 "import does not match leaf ZAP before export ($orig_leaf)"
|
| /freebsd/sys/contrib/openzfs/tests/unit/ |
| H A D | README.md | 23 zap.mock_microzap_sanity [ OK ] [ 0.00001088 / 0.00000939 CPU ] 24 zap.mock_fatzap_sanity [ OK ] [ 0.00004281 / 0.00004257 CPU ] 25 zap.zap_basic 34 $ make unit T=zap 78 $ make unit-coverage T=zap 81 zap.mock_microzap_sanity [ OK ] [ 0.00000941 / 0.00000834 CPU ] 82 zap.mock_fatzap_sanity [ OK ] [ 0.00005782 / 0.00005766 CPU ] 84 zap.cursor_release_one 91 module/zfs/zap.c | 33.9% 610 207 | 31.1% 238 74 | 23.0% 74 17 103 $ make unit-coverage-html T=zap [all …]
|
| /freebsd/sys/contrib/openzfs/tests/zfs-tests/tests/functional/dedup/ |
| H A D | dedup_legacy_fdt_upgrade.ksh | 73 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 75 # should be just one DDT ZAP in the MOS 76 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 1 92 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-duplicate:.*entries=4'" 96 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 2 109 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 0 119 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 125 # with one ZAP inside 126 log_must test $(zdb -dddd $TESTPOOL $obj | grep DDT-sha256-zap- | wc -l) -eq 1
|
| H A D | dedup_legacy_fdt_mixed.ksh | 73 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-skein-zap-unique:.*entries=4'" 75 # should be just one DDT ZAP in the MOS 76 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-.*-zap- | wc -l) -eq 1 92 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-blake3-zap-unique:.*entries=4'" 94 # two entries in the MOS: the legacy skein DDT ZAP, and the containing dir for 96 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-.*-zap- | wc -l) -eq 1 99 # containing object has one ZAP inside 101 log_must test $(zdb -dddd $TESTPOOL $obj | grep DDT-.*-zap- | wc -l) -eq 1
|
| H A D | dedup_legacy_import.ksh | 65 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 67 # should be just one DDT ZAP in the MOS 68 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 1 88 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 0 98 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 100 # should be just one DDT ZAP in the MOS 101 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 1
|
| H A D | dedup_zap_shrink.ksh | 33 # check that the DDT zap was shrunk. Use zdb to check that the zap object 40 "Ensure DDT ZAP object shrank after removing entries." 44 # entries appear in the DDT ZAP 68 zap_obj=$(zdb -DDD $TESTPOOL | grep "DDT-sha256-zap-unique" | sed -n 's/.*object=//p') 88 log_pass "ZAP object shrank after removing entries."
|
| H A D | dedup_legacy_create.ksh | 65 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 67 # should be just one DDT ZAP in the MOS 68 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 1 75 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-duplicate:.*entries=4'" 79 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 2 92 log_must test $(zdb -dddd $TESTPOOL 1 | grep DDT-sha256-zap- | wc -l) -eq 0
|
| H A D | dedup_fdt_import.ksh | 72 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 78 # with only one ZAP inside 79 log_must test $(zdb -dddd $TESTPOOL $obj | grep DDT-sha256-zap- | wc -l) -eq 1 109 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 115 # with only one ZAP inside 116 log_must test $(zdb -dddd $TESTPOOL $obj | grep DDT-sha256-zap- | wc -l) -eq 1
|
| H A D | dedup_bclone.ksh | 49 # Flush DDT log every TXG so entries appear in the ZAP immediately. 79 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 87 "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-duplicate:.*entries=4'" 95 "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-duplicate:.*entries=4'" 103 "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-duplicate:.*entries=4'" 110 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'"
|
| H A D | dedup_fdt_create.ksh | 72 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-unique:.*entries=4'" 78 # with only one ZAP inside 79 log_must test $(zdb -dddd $TESTPOOL $obj | grep DDT-sha256-zap- | wc -l) -eq 1 86 log_must eval "zdb -D $TESTPOOL | grep -q 'DDT-sha256-zap-duplicate:.*entries=4'" 90 log_must test $(zdb -dddd $TESTPOOL $obj | grep DDT-sha256-zap- | wc -l) -eq 2
|
| /freebsd/stand/libsa/zfs/ |
| H A D | zfsimpl.c | 2562 * Compare a name with a zap leaf entry. Return non-zero if the name 2594 * Extract a uint64_t value from a zap leaf entry. 2632 * Extract a array from a zap leaf entry. 2700 zap_get_leaf_byblk(fat_zap_t *zap, uint64_t blk, zap_leaf_t **lp) in zap_get_leaf_byblk() argument 2702 int bs = FZAP_BLOCK_SHIFT(zap); in zap_get_leaf_byblk() 2716 err = dnode_read(zap->zap_spa, zap->zap_dnode, blk << bs, (*lp)->l_phys, in zap_get_leaf_byblk() 2725 zap_table_load(fat_zap_t *zap, zap_table_phys_t *tbl, uint64_t idx, in zap_table_load() argument 2728 int bs = FZAP_BLOCK_SHIFT(zap); in zap_table_load() 2734 buf = malloc(1 << zap->zap_block_shift); in zap_table_load() 2737 rc = dnode_read(zap->zap_spa, zap->zap_dnode, (tbl->zt_blk + blk) << bs, in zap_table_load() [all …]
|
| /freebsd/usr.sbin/makefs/ |
| H A D | zfs.c | 486 zfs_zap_t *zap; in pool_init_objdir() local 491 zap = zap_alloc(zfs->mos, objdir); in pool_init_objdir() 492 pool_init_objdir_config(zfs, zap); in pool_init_objdir() 493 pool_init_objdir_bplists(zfs, zap); in pool_init_objdir() 494 pool_init_objdir_feature_maps(zfs, zap); in pool_init_objdir() 495 pool_init_objdir_dsl(zfs, zap); in pool_init_objdir() 496 pool_init_objdir_poolprops(zfs, zap); in pool_init_objdir() 497 zap_write(zfs, zap); in pool_init_objdir() 507 * object directory (ZAP) 516 * |-> DSL child directory (ZAP) [all …]
|
| /freebsd/sys/contrib/device-tree/src/arm64/qcom/ |
| H A D | sc7180-el2.dtso | 10 /* We can't and don't need to use zap shader in EL2 as linux can zap the gpu on it's own. */ 12 zap-shader {
|