From: Wu Fengguang Print file names on their first read-ahead, for tracing file access patterns. Signed-off-by: Wu Fengguang Signed-off-by: Andrew Morton --- mm/readahead.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff -puN mm/readahead.c~readahead-debug-traces-showing-accessed-file-names mm/readahead.c --- a/mm/readahead.c~readahead-debug-traces-showing-accessed-file-names +++ a/mm/readahead.c @@ -1049,6 +1049,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_new(ra)], mapping->host->i_ino, ra->la_index, _