mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 10:37:35 +03:00
BRT: Make BRT block sizes configurable
Similar to DDT make BRT data and indirect block sizes configurable via module parameters. I am not sure what would be the best yet, but similar to DDT 4KB blocks kill all chances of compression on vdev with ashift=12 or more, that on my tests reaches 3x. While here, fix documentation for respective DDT parameters. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #15967
This commit is contained in:
committed by
Brian Behlendorf
parent
457e62d7ca
commit
c94f730078
+11
-11
@@ -248,7 +248,7 @@ static kmem_cache_t *brt_pending_entry_cache;
|
||||
/*
|
||||
* Enable/disable prefetching of BRT entries that we are going to modify.
|
||||
*/
|
||||
int zfs_brt_prefetch = 1;
|
||||
static int brt_zap_prefetch = 1;
|
||||
|
||||
#ifdef ZFS_DEBUG
|
||||
#define BRT_DEBUG(...) do { \
|
||||
@@ -260,8 +260,8 @@ int zfs_brt_prefetch = 1;
|
||||
#define BRT_DEBUG(...) do { } while (0)
|
||||
#endif
|
||||
|
||||
int brt_zap_leaf_blockshift = 12;
|
||||
int brt_zap_indirect_blockshift = 12;
|
||||
static int brt_zap_default_bs = 12;
|
||||
static int brt_zap_default_ibs = 12;
|
||||
|
||||
static kstat_t *brt_ksp;
|
||||
|
||||
@@ -458,8 +458,7 @@ brt_vdev_create(brt_t *brt, brt_vdev_t *brtvd, dmu_tx_t *tx)
|
||||
|
||||
brtvd->bv_mos_entries = zap_create_flags(brt->brt_mos, 0,
|
||||
ZAP_FLAG_HASH64 | ZAP_FLAG_UINT64_KEY, DMU_OTN_ZAP_METADATA,
|
||||
brt_zap_leaf_blockshift, brt_zap_indirect_blockshift, DMU_OT_NONE,
|
||||
0, tx);
|
||||
brt_zap_default_bs, brt_zap_default_ibs, DMU_OT_NONE, 0, tx);
|
||||
VERIFY(brtvd->bv_mos_entries != 0);
|
||||
BRT_DEBUG("MOS entries created, object=%llu",
|
||||
(u_longlong_t)brtvd->bv_mos_entries);
|
||||
@@ -1363,7 +1362,7 @@ brt_prefetch(brt_t *brt, const blkptr_t *bp)
|
||||
|
||||
ASSERT(bp != NULL);
|
||||
|
||||
if (!zfs_brt_prefetch)
|
||||
if (!brt_zap_prefetch)
|
||||
return;
|
||||
|
||||
brt_entry_fill(bp, &bre, &vdevid);
|
||||
@@ -1680,9 +1679,10 @@ brt_unload(spa_t *spa)
|
||||
}
|
||||
|
||||
/* BEGIN CSTYLED */
|
||||
ZFS_MODULE_PARAM(zfs_brt, zfs_brt_, prefetch, INT, ZMOD_RW,
|
||||
"Enable prefetching of BRT entries");
|
||||
#ifdef ZFS_BRT_DEBUG
|
||||
ZFS_MODULE_PARAM(zfs_brt, zfs_brt_, debug, INT, ZMOD_RW, "BRT debug");
|
||||
#endif
|
||||
ZFS_MODULE_PARAM(zfs_brt, , brt_zap_prefetch, INT, ZMOD_RW,
|
||||
"Enable prefetching of BRT ZAP entries");
|
||||
ZFS_MODULE_PARAM(zfs_brt, , brt_zap_default_bs, UINT, ZMOD_RW,
|
||||
"BRT ZAP leaf blockshift");
|
||||
ZFS_MODULE_PARAM(zfs_brt, , brt_zap_default_ibs, UINT, ZMOD_RW,
|
||||
"BRT ZAP indirect blockshift");
|
||||
/* END CSTYLED */
|
||||
|
||||
Reference in New Issue
Block a user