Skip to content

Commit

Permalink
range_tree: convert remaining range_* defs to zfs_range_*
Browse files Browse the repository at this point in the history
Signed-off-by: Rob Norris <[email protected]>
  • Loading branch information
robn committed Feb 10, 2025
1 parent 68c8c24 commit 7a3edae
Show file tree
Hide file tree
Showing 16 changed files with 126 additions and 124 deletions.
7 changes: 4 additions & 3 deletions cmd/zdb/zdb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1646,7 +1646,7 @@ dump_metaslab_stats(metaslab_t *msp)
"segments", zfs_btree_numnodes(t), "maxsize", maxbuf,
"freepct", free_pct);
(void) printf("\tIn-memory histogram:\n");
dump_histogram(rt->rt_histogram, RANGE_TREE_HISTOGRAM_SIZE, 0);
dump_histogram(rt->rt_histogram, ZFS_RANGE_TREE_HISTOGRAM_SIZE, 0);
}

static void
Expand Down Expand Up @@ -1769,7 +1769,8 @@ dump_metaslab_groups(spa_t *spa, boolean_t show_special)
(void) printf("%3llu%%\n",
(u_longlong_t)mg->mg_fragmentation);
}
dump_histogram(mg->mg_histogram, RANGE_TREE_HISTOGRAM_SIZE, 0);
dump_histogram(mg->mg_histogram,
ZFS_RANGE_TREE_HISTOGRAM_SIZE, 0);
}

(void) printf("\tpool %s\tfragmentation", spa_name(spa));
Expand All @@ -1778,7 +1779,7 @@ dump_metaslab_groups(spa_t *spa, boolean_t show_special)
(void) printf("\t%3s\n", "-");
else
(void) printf("\t%3llu%%\n", (u_longlong_t)fragmentation);
dump_histogram(mc->mc_histogram, RANGE_TREE_HISTOGRAM_SIZE, 0);
dump_histogram(mc->mc_histogram, ZFS_RANGE_TREE_HISTOGRAM_SIZE, 0);
}

static void
Expand Down
4 changes: 2 additions & 2 deletions include/sys/metaslab_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ struct metaslab_class {
uint64_t mc_deferred; /* total deferred frees */
uint64_t mc_space; /* total space (alloc + free) */
uint64_t mc_dspace; /* total deflated space */
uint64_t mc_histogram[RANGE_TREE_HISTOGRAM_SIZE];
uint64_t mc_histogram[ZFS_RANGE_TREE_HISTOGRAM_SIZE];

/*
* List of all loaded metaslabs in the class, sorted in order of most
Expand Down Expand Up @@ -290,7 +290,7 @@ struct metaslab_group {
uint64_t mg_allocations;
uint64_t mg_failed_allocations;
uint64_t mg_fragmentation;
uint64_t mg_histogram[RANGE_TREE_HISTOGRAM_SIZE];
uint64_t mg_histogram[ZFS_RANGE_TREE_HISTOGRAM_SIZE];

int mg_ms_disabled;
boolean_t mg_disabled_updating;
Expand Down
50 changes: 25 additions & 25 deletions include/sys/range_tree.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
extern "C" {
#endif

#define RANGE_TREE_HISTOGRAM_SIZE 64
#define ZFS_RANGE_TREE_HISTOGRAM_SIZE 64

typedef struct zfs_range_tree_ops zfs_range_tree_ops_t;

Expand Down Expand Up @@ -72,34 +72,34 @@ typedef struct zfs_range_tree {
* rt_histogram[i], contains the number of ranges whose size is:
* 2^i <= size of range in bytes < 2^(i+1)
*/
uint64_t rt_histogram[RANGE_TREE_HISTOGRAM_SIZE];
uint64_t rt_histogram[ZFS_RANGE_TREE_HISTOGRAM_SIZE];
} zfs_range_tree_t;

typedef struct range_seg32 {
typedef struct zfs_range_seg32 {
uint32_t rs_start; /* starting offset of this segment */
uint32_t rs_end; /* ending offset (non-inclusive) */
} range_seg32_t;
} zfs_range_seg32_t;

/*
* Extremely large metaslabs, vdev-wide trees, and dnode-wide trees may
* require 64-bit integers for ranges.
*/
typedef struct range_seg64 {
typedef struct zfs_range_seg64 {
uint64_t rs_start; /* starting offset of this segment */
uint64_t rs_end; /* ending offset (non-inclusive) */
} range_seg64_t;
} zfs_range_seg64_t;

typedef struct range_seg_gap {
typedef struct zfs_range_seg_gap {
uint64_t rs_start; /* starting offset of this segment */
uint64_t rs_end; /* ending offset (non-inclusive) */
uint64_t rs_fill; /* actual fill if gap mode is on */
} range_seg_gap_t;
} zfs_range_seg_gap_t;

/*
* This type needs to be the largest of the range segs, since it will be stack
* allocated and then cast the actual type to do tree operations.
*/
typedef range_seg_gap_t range_seg_max_t;
typedef zfs_range_seg_gap_t zfs_range_seg_max_t;

/*
* This is just for clarity of code purposes, so we can make it clear that a
Expand All @@ -122,11 +122,11 @@ zfs_rs_get_start_raw(const zfs_range_seg_t *rs, const zfs_range_tree_t *rt)
ASSERT3U(rt->rt_type, <=, ZFS_RANGE_SEG_NUM_TYPES);
switch (rt->rt_type) {
case ZFS_RANGE_SEG32:
return (((const range_seg32_t *)rs)->rs_start);
return (((const zfs_range_seg32_t *)rs)->rs_start);
case ZFS_RANGE_SEG64:
return (((const range_seg64_t *)rs)->rs_start);
return (((const zfs_range_seg64_t *)rs)->rs_start);
case ZFS_RANGE_SEG_GAP:
return (((const range_seg_gap_t *)rs)->rs_start);
return (((const zfs_range_seg_gap_t *)rs)->rs_start);
default:
VERIFY(0);
return (0);
Expand All @@ -139,11 +139,11 @@ zfs_rs_get_end_raw(const zfs_range_seg_t *rs, const zfs_range_tree_t *rt)
ASSERT3U(rt->rt_type, <=, ZFS_RANGE_SEG_NUM_TYPES);
switch (rt->rt_type) {
case ZFS_RANGE_SEG32:
return (((const range_seg32_t *)rs)->rs_end);
return (((const zfs_range_seg32_t *)rs)->rs_end);
case ZFS_RANGE_SEG64:
return (((const range_seg64_t *)rs)->rs_end);
return (((const zfs_range_seg64_t *)rs)->rs_end);
case ZFS_RANGE_SEG_GAP:
return (((const range_seg_gap_t *)rs)->rs_end);
return (((const zfs_range_seg_gap_t *)rs)->rs_end);
default:
VERIFY(0);
return (0);
Expand All @@ -156,15 +156,15 @@ zfs_rs_get_fill_raw(const zfs_range_seg_t *rs, const zfs_range_tree_t *rt)
ASSERT3U(rt->rt_type, <=, ZFS_RANGE_SEG_NUM_TYPES);
switch (rt->rt_type) {
case ZFS_RANGE_SEG32: {
const range_seg32_t *r32 = (const range_seg32_t *)rs;
const zfs_range_seg32_t *r32 = (const zfs_range_seg32_t *)rs;
return (r32->rs_end - r32->rs_start);
}
case ZFS_RANGE_SEG64: {
const range_seg64_t *r64 = (const range_seg64_t *)rs;
const zfs_range_seg64_t *r64 = (const zfs_range_seg64_t *)rs;
return (r64->rs_end - r64->rs_start);
}
case ZFS_RANGE_SEG_GAP:
return (((const range_seg_gap_t *)rs)->rs_fill);
return (((const zfs_range_seg_gap_t *)rs)->rs_fill);
default:
VERIFY(0);
return (0);
Expand Down Expand Up @@ -197,13 +197,13 @@ zfs_rs_set_start_raw(zfs_range_seg_t *rs, zfs_range_tree_t *rt, uint64_t start)
switch (rt->rt_type) {
case ZFS_RANGE_SEG32:
ASSERT3U(start, <=, UINT32_MAX);
((range_seg32_t *)rs)->rs_start = (uint32_t)start;
((zfs_range_seg32_t *)rs)->rs_start = (uint32_t)start;
break;
case ZFS_RANGE_SEG64:
((range_seg64_t *)rs)->rs_start = start;
((zfs_range_seg64_t *)rs)->rs_start = start;
break;
case ZFS_RANGE_SEG_GAP:
((range_seg_gap_t *)rs)->rs_start = start;
((zfs_range_seg_gap_t *)rs)->rs_start = start;
break;
default:
VERIFY(0);
Expand All @@ -217,13 +217,13 @@ zfs_rs_set_end_raw(zfs_range_seg_t *rs, zfs_range_tree_t *rt, uint64_t end)
switch (rt->rt_type) {
case ZFS_RANGE_SEG32:
ASSERT3U(end, <=, UINT32_MAX);
((range_seg32_t *)rs)->rs_end = (uint32_t)end;
((zfs_range_seg32_t *)rs)->rs_end = (uint32_t)end;
break;
case ZFS_RANGE_SEG64:
((range_seg64_t *)rs)->rs_end = end;
((zfs_range_seg64_t *)rs)->rs_end = end;
break;
case ZFS_RANGE_SEG_GAP:
((range_seg_gap_t *)rs)->rs_end = end;
((zfs_range_seg_gap_t *)rs)->rs_end = end;
break;
default:
VERIFY(0);
Expand All @@ -243,7 +243,7 @@ zfs_zfs_rs_set_fill_raw(zfs_range_seg_t *rs, zfs_range_tree_t *rt,
zfs_rs_get_start_raw(rs, rt));
break;
case ZFS_RANGE_SEG_GAP:
((range_seg_gap_t *)rs)->rs_fill = fill;
((zfs_range_seg_gap_t *)rs)->rs_fill = fill;
break;
default:
VERIFY(0);
Expand Down
10 changes: 5 additions & 5 deletions include/sys/vdev.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,12 +106,12 @@ extern void vdev_expand(vdev_t *vd, uint64_t txg);
extern void vdev_split(vdev_t *vd);
extern void vdev_deadman(vdev_t *vd, const char *tag);

typedef void vdev_xlate_func_t(void *arg, range_seg64_t *physical_rs);
typedef void vdev_xlate_func_t(void *arg, zfs_range_seg64_t *physical_rs);

extern boolean_t vdev_xlate_is_empty(range_seg64_t *rs);
extern void vdev_xlate(vdev_t *vd, const range_seg64_t *logical_rs,
range_seg64_t *physical_rs, range_seg64_t *remain_rs);
extern void vdev_xlate_walk(vdev_t *vd, const range_seg64_t *logical_rs,
extern boolean_t vdev_xlate_is_empty(zfs_range_seg64_t *rs);
extern void vdev_xlate(vdev_t *vd, const zfs_range_seg64_t *logical_rs,
zfs_range_seg64_t *physical_rs, zfs_range_seg64_t *remain_rs);
extern void vdev_xlate_walk(vdev_t *vd, const zfs_range_seg64_t *logical_rs,
vdev_xlate_func_t *func, void *arg);

extern void vdev_get_stats_ex(vdev_t *vd, vdev_stat_t *vs, vdev_stat_ex_t *vsx);
Expand Down
8 changes: 4 additions & 4 deletions include/sys/vdev_impl.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,8 @@ typedef void vdev_remap_func_t(vdev_t *vd, uint64_t offset, uint64_t size,
* Given a target vdev, translates the logical range "in" to the physical
* range "res"
*/
typedef void vdev_xlation_func_t(vdev_t *cvd, const range_seg64_t *logical,
range_seg64_t *physical, range_seg64_t *remain);
typedef void vdev_xlation_func_t(vdev_t *cvd, const zfs_range_seg64_t *logical,
zfs_range_seg64_t *physical, zfs_range_seg64_t *remain);
typedef uint64_t vdev_rebuild_asize_func_t(vdev_t *vd, uint64_t start,
uint64_t size, uint64_t max_segment);
typedef void vdev_metaslab_init_func_t(vdev_t *vd, uint64_t *startp,
Expand Down Expand Up @@ -616,8 +616,8 @@ extern vdev_ops_t vdev_indirect_ops;
/*
* Common size functions
*/
extern void vdev_default_xlate(vdev_t *vd, const range_seg64_t *logical_rs,
range_seg64_t *physical_rs, range_seg64_t *remain_rs);
extern void vdev_default_xlate(vdev_t *vd, const zfs_range_seg64_t *logical_rs,
zfs_range_seg64_t *physical_rs, zfs_range_seg64_t *remain_rs);
extern uint64_t vdev_default_asize(vdev_t *vd, uint64_t psize, uint64_t txg);
extern uint64_t vdev_default_min_asize(vdev_t *vd);
extern uint64_t vdev_get_min_asize(vdev_t *vd);
Expand Down
10 changes: 5 additions & 5 deletions module/zfs/dsl_scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -1602,8 +1602,8 @@ dsl_scan_should_clear(dsl_scan_t *scn)
* # of extents in exts_by_addr = # in exts_by_size.
* B-tree efficiency is ~75%, but can be as low as 50%.
*/
mused += zfs_btree_numnodes(&queue->q_exts_by_size) *
((sizeof (range_seg_gap_t) + sizeof (uint64_t)) *
mused += zfs_btree_numnodes(&queue->q_exts_by_size) * ((
sizeof (zfs_range_seg_gap_t) + sizeof (uint64_t)) *
3 / 2) + queue->q_sio_memused;
}
mutex_exit(&tvd->vdev_scan_io_queue_lock);
Expand Down Expand Up @@ -5006,7 +5006,7 @@ ext_size_destroy(zfs_range_tree_t *rt, void *arg)
}

static uint64_t
ext_size_value(zfs_range_tree_t *rt, range_seg_gap_t *rsg)
ext_size_value(zfs_range_tree_t *rt, zfs_range_seg_gap_t *rsg)
{
(void) rt;
uint64_t size = rsg->rs_end - rsg->rs_start;
Expand All @@ -5021,7 +5021,7 @@ ext_size_add(zfs_range_tree_t *rt, zfs_range_seg_t *rs, void *arg)
{
zfs_btree_t *size_tree = arg;
ASSERT3U(rt->rt_type, ==, ZFS_RANGE_SEG_GAP);
uint64_t v = ext_size_value(rt, (range_seg_gap_t *)rs);
uint64_t v = ext_size_value(rt, (zfs_range_seg_gap_t *)rs);
zfs_btree_add(size_tree, &v);
}

Expand All @@ -5030,7 +5030,7 @@ ext_size_remove(zfs_range_tree_t *rt, zfs_range_seg_t *rs, void *arg)
{
zfs_btree_t *size_tree = arg;
ASSERT3U(rt->rt_type, ==, ZFS_RANGE_SEG_GAP);
uint64_t v = ext_size_value(rt, (range_seg_gap_t *)rs);
uint64_t v = ext_size_value(rt, (zfs_range_seg_gap_t *)rs);
zfs_btree_remove(size_tree, &v);
}

Expand Down
Loading

0 comments on commit 7a3edae

Please sign in to comment.