From: Werner Almesberger <wa@almesberger.net>
To: Carl Spalletta <cspalletta@yahoo.com>
Cc: linux-kernel@vger.kernel.org, Horst von Brand <vonbrand@inf.utfsm.cl>
Subject: Re: Linux-tracecalls, a clarification
Date: Sun, 6 Feb 2005 22:20:26 -0300 [thread overview]
Message-ID: <20050206222026.A25338@almesberger.net> (raw)
In-Reply-To: <20050121204422.85137.qmail@web53808.mail.yahoo.com>; from cspalletta@yahoo.com on Fri, Jan 21, 2005 at 12:44:22PM -0800
Carl Spalletta wrote:
> + #The name of an operations structure member, wrongly interpreted by
> + #cscope as the name of an actual function - it should be ignored,
> + #since it has been confused by cscope with the name of some actual
> + #caller. HOWEVER the callbacks are found anyway, under their actual names.
> + #and if any function pointed to by a callback is part of a chain to
> + #our initial target it _will_ be found, the same as any other caller.
Hmm, but it doesn't seem to follow function pointers anyway. Example:
http://www.linuxrd.com/~carl/cgi-bin/lnxtc.pl?file=fs/jbd/transaction.c&func=do_get_write_access
should contain, among many others, this call chain:
fs/read_write.c:sys_read
fs/read_write.c:vfs_read
fs/ext3/file.c:ext3_file_operations.read =
fs/read_write.c:do_sync_read
fs/ext3/file.c:ext3_file_operations.aio_read =
mm/filemap.c:generic_file_aio_read
mm/filemap.c:__generic_file_aio_read
include/linux/fs.h:do_generic_file_read
mm/filemap.c:do_generic_mapping_read
include/linux/fs.h:file_accessed
include/linux/fs.h:touch_atime
fs/inode.c:update_atime
include/linux/fs.h:mark_inode_dirty_sync
fs/fs-writeback.c:__mark_inode_dirty
fs/ext3/super.c:ext3_sops.dirty_inode =
fs/ext3/inode.c:ext3_dirty_inode
include/linux/ext3_jbd.h:ext3_journal_get_write_access
fs/jbd/transaction.c:journal_get_write_access
fs/jbd/transaction.c:do_get_write_access
Note the three functions pointers that were used in this. This kind
of construct is extremely common in the kernel, and it's usually the
main source of confusion that will actually make one want to use a
call chain discovery tool.
I see that you're handling inline functions correctly.
Another thing that seems to be missing are macros. E.g. this query
http://www.linuxrd.com/~carl/cgi-bin/lnxtc.pl?file=include/linux/seqlock.h&func=seqcount_init
should probably have found the reference in fs.h (it's somewhat
obscured by #ifdefs, so, depending on how your tree was set up,
the response may actually be correct). Also, this query should have
returned something:
http://www.linuxrd.com/~carl/cgi-bin/lnxtc.pl?file=include/linux/blkdev.h&func=blk_queue_plugged
Since the call trees fan out very quickly (in either direction), I
think an interactive browser that lets you select which branch(es)
to follow (while remembering the chain you've already visited) would
be more useful than a huge dump that may require significant
post-processing.
It would also be nice to be able to go both ways, from called to
caller, and from caller to called. Again, the tricky bit here are
the function pointers.
I think that a tool that can handle the most common idioms found in
the kernel would be very useful.
- Werner
--
_________________________________________________________________________
/ Werner Almesberger, Buenos Aires, Argentina wa@almesberger.net /
/_http://www.almesberger.net/____________________________________________/
next prev parent reply other threads:[~2005-02-07 1:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-19 19:38 [ANNOUNCE] Linux-tracecalls, a new tool for Kernel development, released Carl Spalletta
2005-01-19 20:37 ` Horst von Brand
2005-01-20 16:51 ` Carl Spalletta
2005-01-21 20:44 ` Linux-tracecalls, a clarification Carl Spalletta
2005-02-07 1:20 ` Werner Almesberger [this message]
2005-05-03 22:12 Carl Spalletta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050206222026.A25338@almesberger.net \
--to=wa@almesberger.net \
--cc=cspalletta@yahoo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=vonbrand@inf.utfsm.cl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®