History

nilfs2: add tracepoints for analyzing reading and writing metadata files

This patch adds tracepoints for analyzing requests of reading and writing metadata files. The tracepoints cover every in-place mdt files (cpfile, sufile, and datfile). Example of tracing mdt_insert_new_block(): cp-14635 [000] ...1 30598.199309: nilfs2_mdt_insert_new_block: inode = ffff88022a8d0178 ino = 3 block = 155 cp-14635 [000] ...1 30598.199520: nilfs2_mdt_insert_new_block: inode = ffff88022a8d0178 ino = 3 block = 5 cp-14635 [000] ...1 30598.200828: nilfs2_mdt_insert_new_block: inode = ffff88022a8d0178 ino = 3 block = 253

Hitoshi Mitake committed 11 years ago

Commit a9cd2071 parent 83eec5e2 files · +60 −0Browse files

Unified · Split

2 files
  1. fs/nilfs2/mdt.c +6 −0
  2. include/trace/events/nilfs2.h +54 −0
fs/nilfs2/mdt.c+6−0
@@ -33,6 +33,7 @@ · 32 unmodified lines
3333 #include "page.h"
3434 #include "mdt.h"
3535
36+#include <trace/events/nilfs2.h>
3637
3738 #define NILFS_MDT_MAX_RA_BLOCKS (16 - 1)
3839
@@ -68,6 +69,9 @@ nilfs_mdt_insert_new_block(struct inode *inode, unsigned long block, · 29 unmodified lines
6869 set_buffer_uptodate(bh);
6970 mark_buffer_dirty(bh);
7071 nilfs_mdt_mark_dirty(inode);
72+
73+ trace_nilfs2_mdt_insert_new_block(inode, inode->i_ino, block);
74+
7175 return 0;
7276 }
7377
@@ -158,6 +162,8 @@ nilfs_mdt_submit_block(struct inode *inode, unsigned long blkoff, · 84 unmodified lines
158162 get_bh(bh);
159163 submit_bh(mode, bh);
160164 ret = 0;
165+
166+ trace_nilfs2_mdt_submit_block(inode, inode->i_ino, blkoff, mode);
161167 out:
162168 get_bh(bh);
163169 *out_bh = bh;
include/trace/events/nilfs2.h+54−0
@@ -162,6 +162,60 @@ TRACE_EVENT(nilfs2_segment_usage_freed, · 161 unmodified lines
162162 __entry->segnum)
163163 );
164164
165+TRACE_EVENT(nilfs2_mdt_insert_new_block,
166+ TP_PROTO(struct inode *inode,
167+ unsigned long ino,
168+ unsigned long block),
169+
170+ TP_ARGS(inode, ino, block),
171+
172+ TP_STRUCT__entry(
173+ __field(struct inode *, inode)
174+ __field(unsigned long, ino)
175+ __field(unsigned long, block)
176+ ),
177+
178+ TP_fast_assign(
179+ __entry->inode = inode;
180+ __entry->ino = ino;
181+ __entry->block = block;
182+ ),
183+
184+ TP_printk("inode = %p ino = %lu block = %lu",
185+ __entry->inode,
186+ __entry->ino,
187+ __entry->block)
188+);
189+
190+TRACE_EVENT(nilfs2_mdt_submit_block,
191+ TP_PROTO(struct inode *inode,
192+ unsigned long ino,
193+ unsigned long blkoff,
194+ int mode),
195+
196+ TP_ARGS(inode, ino, blkoff, mode),
197+
198+ TP_STRUCT__entry(
199+ __field(struct inode *, inode)
200+ __field(unsigned long, ino)
201+ __field(unsigned long, blkoff)
202+ __field(int, mode)
203+ ),
204+
205+ TP_fast_assign(
206+ __entry->inode = inode;
207+ __entry->ino = ino;
208+ __entry->blkoff = blkoff;
209+ __entry->mode = mode;
210+ ),
211+
212+ TP_printk("inode = %p ino = %lu blkoff = %lu mode = %x",
213+ __entry->inode,
214+ __entry->ino,
215+ __entry->blkoff,
216+ __entry->mode)
217+);
218+
165219 #endif /* _TRACE_NILFS2_H */
166220
167221 /* This part must be outside protection */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t