From 4d0b78f5cbe5249c2e07cdfff38f83554188fd3b Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Tue, 12 May 2020 16:56:06 -0700 Subject: [PATCH] scoutfs: add counters for server commits Add some counters for server commits. Signed-off-by: Zach Brown --- kmod/src/counters.h | 4 ++++ kmod/src/server.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/kmod/src/counters.h b/kmod/src/counters.h index 79da35cc..97b06dd1 100644 --- a/kmod/src/counters.h +++ b/kmod/src/counters.h @@ -105,6 +105,10 @@ EXPAND_COUNTER(radix_merge_empty) \ EXPAND_COUNTER(radix_undo_ref) \ EXPAND_COUNTER(radix_walk) \ + EXPAND_COUNTER(server_commit_hold) \ + EXPAND_COUNTER(server_commit_prepare) \ + EXPAND_COUNTER(server_commit_queue) \ + EXPAND_COUNTER(server_commit_worker) \ EXPAND_COUNTER(trans_commit_data_alloc_low) \ EXPAND_COUNTER(trans_commit_fsync) \ EXPAND_COUNTER(trans_commit_full) \ diff --git a/kmod/src/server.c b/kmod/src/server.c index 4ff46fc6..cb85fb24 100644 --- a/kmod/src/server.c +++ b/kmod/src/server.c @@ -139,6 +139,8 @@ int scoutfs_server_hold_commit(struct super_block *sb) u64 tot; int ret = 0; + scoutfs_inc_counter(sb, server_commit_hold); + down_read(&server->commit_rwsem); while (!server->prepared_commit) { @@ -146,6 +148,7 @@ int scoutfs_server_hold_commit(struct super_block *sb) down_write(&server->commit_rwsem); if (!server->prepared_commit) { + scoutfs_inc_counter(sb, server_commit_prepare); BUG_ON(scoutfs_block_writer_dirty_bytes(sb, &server->wri)); tot = le64_to_cpu(super->core_meta_freed.ref.sm_total); @@ -196,6 +199,7 @@ int scoutfs_server_apply_commit(struct super_block *sb, int err) cw.ret = 0; init_completion(&cw.comp); llist_add(&cw.node, &server->commit_waiters); + scoutfs_inc_counter(sb, server_commit_queue); queue_work(server->wq, &server->commit_work); } @@ -277,9 +281,11 @@ static void scoutfs_server_commit_func(struct work_struct *work) int ret; trace_scoutfs_server_commit_work_enter(sb, 0, 0); + scoutfs_inc_counter(sb, server_commit_worker); down_write(&server->commit_rwsem); + ret = scoutfs_block_writer_write(sb, &server->wri); if (ret) { scoutfs_err(sb, "server error writing btree blocks: %d", ret);