diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-11-02 22:31:16 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-01-01 11:47:39 -0500 |
commit | 56db2429511e14291bdb0105899e02f074885d4d (patch) | |
tree | ecf21df467226727a69bd805a067094d90c61a5e /fs/bcachefs/trace.h | |
parent | c259bd95d1df6a95d6a78b7f6ebc69c8d172126f (diff) | |
download | lwn-56db2429511e14291bdb0105899e02f074885d4d.tar.gz lwn-56db2429511e14291bdb0105899e02f074885d4d.zip |
bcachefs: Improve btree write buffer tracepoints
- add a tracepoint for write_buffer_flush_sync; this is expensive
- fix the write_buffer_flush_slowpath tracepoint
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/trace.h')
-rw-r--r-- | fs/bcachefs/trace.h | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/fs/bcachefs/trace.h b/fs/bcachefs/trace.h index f2e405c359b5..6eced95ce374 100644 --- a/fs/bcachefs/trace.h +++ b/fs/bcachefs/trace.h @@ -1334,21 +1334,38 @@ TRACE_EVENT(write_buffer_flush, __entry->nr, __entry->size, __entry->skipped, __entry->fast) ); +TRACE_EVENT(write_buffer_flush_sync, + TP_PROTO(struct btree_trans *trans, unsigned long caller_ip), + TP_ARGS(trans, caller_ip), + + TP_STRUCT__entry( + __array(char, trans_fn, 32 ) + __field(unsigned long, caller_ip ) + ), + + TP_fast_assign( + strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); + __entry->caller_ip = caller_ip; + ), + + TP_printk("%s %pS", __entry->trans_fn, (void *) __entry->caller_ip) +); + TRACE_EVENT(write_buffer_flush_slowpath, - TP_PROTO(struct btree_trans *trans, size_t nr, size_t size), - TP_ARGS(trans, nr, size), + TP_PROTO(struct btree_trans *trans, size_t slowpath, size_t total), + TP_ARGS(trans, slowpath, total), TP_STRUCT__entry( - __field(size_t, nr ) - __field(size_t, size ) + __field(size_t, slowpath ) + __field(size_t, total ) ), TP_fast_assign( - __entry->nr = nr; - __entry->size = size; + __entry->slowpath = slowpath; + __entry->total = total; ), - TP_printk("%zu/%zu", __entry->nr, __entry->size) + TP_printk("%zu/%zu", __entry->slowpath, __entry->total) ); DEFINE_EVENT(str, rebalance_extent, |