]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bcachefs: bch2_fs_usage_base_to_text()
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 23 Feb 2024 22:23:41 +0000 (17:23 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 14 Jul 2024 23:00:13 +0000 (19:00 -0400)
Helper to show raw accounting in sysfs, mainly for debugging.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/sysfs.c

index 88800f111d9eaab63bd1ab2dada9be51282489a1..1c0d1fb20276aa801fd00fac8d75a991ea94612c 100644 (file)
@@ -204,6 +204,7 @@ read_attribute(disk_groups);
 read_attribute(has_data);
 read_attribute(alloc_debug);
 read_attribute(accounting);
+read_attribute(usage_base);
 
 #define x(t, n, ...) read_attribute(t);
 BCH_PERSISTENT_COUNTERS()
@@ -303,6 +304,20 @@ static void bch2_gc_gens_pos_to_text(struct printbuf *out, struct bch_fs *c)
        prt_printf(out, "\n");
 }
 
+static void bch2_fs_usage_base_to_text(struct printbuf *out, struct bch_fs *c)
+{
+       struct bch_fs_usage_base b = {};
+
+       acc_u64s_percpu(&b.hidden, &c->usage->hidden, sizeof(b) / sizeof(u64));
+
+       prt_printf(out, "hidden:\t\t%llu\n",    b.hidden);
+       prt_printf(out, "btree:\t\t%llu\n",     b.btree);
+       prt_printf(out, "data:\t\t%llu\n",      b.data);
+       prt_printf(out, "cached:\t%llu\n",      b.cached);
+       prt_printf(out, "reserved:\t\t%llu\n",  b.reserved);
+       prt_printf(out, "nr_inodes:\t%llu\n",   b.nr_inodes);
+}
+
 SHOW(bch2_fs)
 {
        struct bch_fs *c = container_of(kobj, struct bch_fs, kobj);
@@ -392,6 +407,9 @@ SHOW(bch2_fs)
        if (attr == &sysfs_accounting)
                bch2_fs_accounting_to_text(out, c);
 
+       if (attr == &sysfs_usage_base)
+               bch2_fs_usage_base_to_text(out, c);
+
        return 0;
 }
 
@@ -606,6 +624,7 @@ struct attribute *bch2_fs_internal_files[] = {
        &sysfs_disk_groups,
        &sysfs_alloc_debug,
        &sysfs_accounting,
+       &sysfs_usage_base,
        NULL
 };