-----Original Message----- From: kernelnewbies-bounces@kernelnewbies.org [mailto:kernelnewbies- bounces@kernelnewbies.org] On Behalf Of Ruben Safir Sent: Thursday, April 16, 2015 10:09 AM To: kernelnewbies@kernelnewbies.org Subject: Re: Kernel thread scheduling
On 04/16/2015 12:31 PM, Jeff Haran wrote:
From: kernelnewbies-bounces@kernelnewbies.org [mailto:kernelnewbies-bounces@kernelnewbies.org] On Behalf Of Mark P Sent: Thursday, April 16, 2015 8:12 AM To: Ruben Safir Cc: nick; kernelnewbies@kernelnewbies.org Subject: Re: Kernel thread scheduling
I find that the free electrons LXR has the best search capabilities:
http://lxr.free-electrons.com/source/include/linux/rbtree.h#L35 -M
Those interested in kernel source browsers might want to check out the code browser available at https://scan.coverity.com.
Coverity does static code analysis and sells a product to do so, but they do regular scans of popular open source projects. Most of their focus is on finding and reporting defects, but the code browser they have created to do so is far beyond anything else I've found out there. Getting to it is a little awkward, you first need to sign up for an account (I got mine for free), then browse to the linux kernel project and select a defect to get into the browser. But once there, click the folder icon at the top left of the code window and select a source file. All of function names, variable names, structure names and structure field names are hyperlinks. Left click on one of them, click the little down arrow and select from the menu to list definitions, references, etc.
You do need to find a reference to the token in question using some other browser like LXR, Coverity's doesn't seem to have a search button for that, but once located the cross-referencing provided is better than what I've seen in other text matching browsers like LXR, cscope, etc. It's particular good when you are trying to understand how a given field of a structure is used. Say you want to find out how a structure field named "lock" in some structure named "foo" is referenced. Find the definition of struct foo, click on the lock field and list references. It will show all the references to struct foo's lock but NOT show the thousands of references to all of the other fields named "lock" in other structures. That is something no other browser does, at least none that I am aware of.
Jeff Haran
Is it free software? Can I download it?
The web site is free to use. The code that runs it is proprietary.
How is it better than grep and sed? Does it work better than ctags?
Grep, sed, ctags, cscope, etc. can only find references based on text matches. C allows duplicate field names across structure definitions. When using text based browsers to look for references to C structure field names on a large project like linux such searches yield lots of false positives, thousands of them in some cases. Coverity's browser on the other hand seems to understand C syntax. When looking for references so say struct foo's lock field, it won't show you references to struct bar's lock field. Other tools can't tell the difference.
How can I get it to ingrate with vim?
You can't so far as I know.
First off, if it is not available as free Software, then I won't use it.
That is of course your choice to make. Others may come to different conclusions. I use www.google.com on a regular basis even though I can't download it. Jeff Haran