2006-03-19 02:35:01

by Wu Fengguang

[permalink] [raw]
Subject: [PATCH 22/23] readahead: debug traces showing accessed file names

Print file names on their first read-ahead, for tracing file access patterns.

Signed-off-by: Wu Fengguang <[email protected]>
---

mm/readahead.c | 14 ++++++++++++++
1 files changed, 14 insertions(+)

--- linux-2.6.16-rc6-mm2.orig/mm/readahead.c
+++ linux-2.6.16-rc6-mm2/mm/readahead.c
@@ -1229,6 +1229,20 @@ static int ra_dispatch(struct file_ra_st
ra_account(ra, RA_EVENT_IO_CACHE_HIT, ra_size - actual);
ra_account(ra, RA_EVENT_READAHEAD, actual);

+ if (!ra->ra_index && filp->f_dentry->d_inode) {
+ char *fn;
+ static char path[1024];
+ unsigned long size;
+
+ size = (i_size_read(filp->f_dentry->d_inode)+1023)/1024;
+ fn = d_path(filp->f_dentry, filp->f_vfsmnt, path, 1000);
+ if (!IS_ERR(fn))
+ ddprintk("ino %lu is %s size %luK by %s(%d)\n",
+ filp->f_dentry->d_inode->i_ino,
+ fn, size,
+ current->comm, current->pid);
+ }
+
dprintk("readahead-%s(ino=%lu, index=%lu, ra=%lu+%lu-%lu) = %d\n",
ra_class_name[ra_class],
mapping->host->i_ino, ra->la_index,

--