From 250e2ec229ca21f74092a0adbdf2cc905b05175d Mon Sep 17 00:00:00 2001 From: Ivan Shapovalov Date: Tue, 10 Dec 2024 19:28:22 +0400 Subject: [PATCH] zdb: factor out block histogram bin number computation Reviewed-by: Brian Behlendorf Signed-off-by: Ivan Shapovalov Closes #16999 --- cmd/zdb/zdb.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c index 2b64eeb72..62487601d 100644 --- a/cmd/zdb/zdb.c +++ b/cmd/zdb/zdb.c @@ -6254,35 +6254,39 @@ skipped: */ int bin; +#define BIN(size) (highbit64(size) - 1) + switch (block_bin_mode) { - case BIN_PSIZE: bin = highbit64(BP_GET_PSIZE(bp)) - 1; break; - case BIN_LSIZE: bin = highbit64(BP_GET_LSIZE(bp)) - 1; break; - case BIN_ASIZE: bin = highbit64(BP_GET_ASIZE(bp)) - 1; break; + case BIN_PSIZE: bin = BIN(BP_GET_PSIZE(bp)); break; + case BIN_LSIZE: bin = BIN(BP_GET_LSIZE(bp)); break; + case BIN_ASIZE: bin = BIN(BP_GET_ASIZE(bp)); break; case BIN_AUTO: break; default: PANIC("bad block_bin_mode"); abort(); } if (block_bin_mode == BIN_AUTO) - bin = highbit64(BP_GET_PSIZE(bp)) - 1; + bin = BIN(BP_GET_PSIZE(bp)); zcb->zcb_psize_count[bin]++; zcb->zcb_psize_len[bin] += BP_GET_PSIZE(bp); zcb->zcb_psize_total += BP_GET_PSIZE(bp); if (block_bin_mode == BIN_AUTO) - bin = highbit64(BP_GET_LSIZE(bp)) - 1; + bin = BIN(BP_GET_LSIZE(bp)); zcb->zcb_lsize_count[bin]++; zcb->zcb_lsize_len[bin] += BP_GET_LSIZE(bp); zcb->zcb_lsize_total += BP_GET_LSIZE(bp); if (block_bin_mode == BIN_AUTO) - bin = highbit64(BP_GET_ASIZE(bp)) - 1; + bin = BIN(BP_GET_ASIZE(bp)); zcb->zcb_asize_count[bin]++; zcb->zcb_asize_len[bin] += BP_GET_ASIZE(bp); zcb->zcb_asize_total += BP_GET_ASIZE(bp); +#undef BIN + hist_skipped: if (!do_claim) return;