![]() | |||||||||||||
Messages in this thread |
On Wed, 2 June 2004 16:20:24 -0700, Davide Libenzi wrote: > > Think at file_operations as very simple example, and try to find out what > is actually called when somewhere the code does f_op->*(). How would you > build the graph down there. You'd have to record all the functions that > have been assigned to such method throughout the code, and nest *all* > their graph in place. And this will eventually trigger false positives. Bad example, I can deal with that just fine. :) Any code calling f_op->read must not break for any f_op->read. So it is perfectly sane to assume that all get called. I build the graph by turning f_op->read into a pseudo-function that calls all functions ever assigned to f_op->read. > Similar thing with functions that accepts callbacks, either directly or > inside structures. Those I only handle, if the callbacks are inside structures, true. Will fix it when I find the time for it. > And this doesn't even start to take aliasing into > account. What exactly do you call aliasing? Do you have an example? > Hunting stack hungry functions is very good, and having a tool > that is maybe 60% precise in detecting loops is fine too. But requiring > metadata to be maintained to support such tool is IMO wrong. Since Linus feels that said metadata is still useful without any tools, I'll just ignore this objection. ;) Still, some of the complaints were valid, thanks a bunch! My todo list has grown again. Jörn -- Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface. -- Doug MacIlroy - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-03-22 14:03 [from the cache] ©2003-2008 | |||||||||||||