Skip to content

Commit

Permalink
switch to wmsums
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul Dagnelie committed Jan 28, 2025
1 parent eb47f59 commit 0318bd4
Showing 1 changed file with 24 additions and 2 deletions.
26 changes: 24 additions & 2 deletions module/zfs/zio.c
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,33 @@ static zio_stats_t zio_stats = {
{ "gang_multilevel", KSTAT_DATA_UINT64 },
};

#define ZIOSTAT_BUMP(stat) \
atomic_inc_64(&zio_stats.stat.value.ui64);
struct {
wmsum_t ziostat_gang_writes;
wmsum_t ziostat_gang_multilevel;
} ziostat_sums;

#define ZIOSTAT_BUMP(stat) wmsum_add(&ziostat_sums.stat, 1);

static kstat_t *zio_ksp;

static inline void __zio_execute(zio_t *zio);

static void zio_taskq_dispatch(zio_t *, zio_taskq_type_t, boolean_t);

static int
zio_kstats_update(kstat_t *ksp, int rw)
{
zio_stats_t *zs = ksp->ks_data;
if (rw == KSTAT_WRITE)
return (EACCES);

zs->ziostat_gang_writes.value.ui64 =
wmsum_value(&ziostat_sums.ziostat_gang_writes);
zs->ziostat_gang_multilevel.value.ui64 =
wmsum_value(&ziostat_sums.ziostat_gang_multilevel);
return (0);
}

void
zio_init(void)
{
Expand All @@ -173,11 +191,15 @@ zio_init(void)
sizeof (zio_t), 0, NULL, NULL, NULL, NULL, NULL, 0);
zio_link_cache = kmem_cache_create("zio_link_cache",
sizeof (zio_link_t), 0, NULL, NULL, NULL, NULL, NULL, 0);

wmsum_init(&ziostat_sums.ziostat_gang_writes, 0);
wmsum_init(&ziostat_sums.ziostat_gang_multilevel, 0);
zio_ksp = kstat_create("zfs", 0, "zio_stats",
"misc", KSTAT_TYPE_NAMED, sizeof (zio_stats) /
sizeof (kstat_named_t), KSTAT_FLAG_VIRTUAL);
if (zio_ksp != NULL) {
zio_ksp->ks_data = &zio_stats;
zio_ksp->ks_update = zio_kstats_update;
kstat_install(zio_ksp);
}

Expand Down

0 comments on commit 0318bd4

Please sign in to comment.