STRUCT CEPH_SUBVOLUME_METRICS_TRACKER(9)
struct ceph_subvolume_metrics_tracker(9) π
okay so this is the Kernel API Manual, bestie, and today's main character is a struct that literally keeps receipts on your per-subvolume I/O. no cap, it's giving accounting-department-but-make-it-glam. β¨
πΈ NAME πΈ
struct ceph_subvolume_metrics_tracker β tracks per-subvolume I/O metrics π
π¦ SYNOPSIS π¦
struct ceph_subvolume_metrics_tracker {
spinlock_t lock;
struct rb_root_cached tree;
u32 nr_entries;
bool enabled;
atomic64_t snapshot_attempts;
atomic64_t snapshot_empty;
atomic64_t snapshot_failures;
atomic64_t record_calls;
atomic64_t record_disabled;
atomic64_t record_no_subvol;
atomic64_t total_read_ops;
atomic64_t total_read_bytes;
atomic64_t total_write_ops;
atomic64_t total_write_bytes;
};
like, look at her. so organized. so many counters. she's booked and busy π
π Members π
lockβ the bouncer at the door π«Ά protectstreeandnr_entriesduring concurrent access, so nobody's out here writing while someone else is reading. we love a safety queen.treeβ a red-black tree of per-subvolume entries, keyed bysubvolume_id. literally the whole point of the struct, she holds everyone's little folder πnr_entriesβ the number of entries currently intree. simple. iconic. a headcount.enabledβ whether collection is enabled (and yeah, it requires MDS feature support β no feature, no vibes π).snapshot_attemptsβ debug counter: totalceph_subvolume_metrics_snapshotcalls. she be counting attempts fr fr.snapshot_emptyβ debug counter: snapshots that found no data to report. the "nothing to see here" count πsnapshot_failuresβ debug counter: snapshots that failed to allocate memory. π the sad ones.record_callsβ debug counter: totalceph_subvolume_metrics_recordcalls.record_disabledβ debug counter: record calls skipped because disabled. not her fault, she was literally off duty.record_no_subvolβ debug counter: record calls skipped (nosubvolume_id). no id, no entry, that's the rule bestie β¨total_read_opsβ cumulative read ops across all snapshots (never reset β like, ever. periodt.)total_read_bytesβ cumulative bytes read across all snapshots (never reset π )total_write_opsβ cumulative write ops across all snapshots (never reset π₯)total_write_bytesβ cumulative bytes written across all snapshots (never reset π)
ngl the four total_* counters are the real ones β they never reset, so they just keep climbing forever. respect the grind. π
π SEE ALSO π
- Kernel file
./fs/ceph/subvolume_metrics.hstruct ceph_subvol_metric_snapshot(9)
go read those too, iykyk π§
and that's the whole page, bestie! this lil beauty lives in ./fs/ceph and the version vibes are dated October 2026 β see you in the future, mwah! πππ¦πΊπβπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms