Home
I/O Grind
This is the start of an I/O simulator & rendering tool. To get an
instant idea of what iogrind can show you type:$ ./autogen.sh
$ make demoHowever, in order to use it in anger, you need several things:
first a trace of your file-system (you only require this once),
requires read access to the raw device, either get in the ‘disk’
group, or run this as root:$ ext2dump /dev/sda1 > sda1.xml # for example
Then you need to take a trace of your target application(s)
using the valgrind iogrind plugin. This requires building a patched
valgrind, follow the steps in valgrind/README first, then:$ valgrind —tool=iogrind —log-file-exactly=/tmp/test.prf <test-app>
Now you can see what is going on in your app:
$ mono iogrind-gui.exe —fsmodel=sda1.xml /tmp/test.prf
And have a poke around.
Caveat Investor: Beware – iogrind presents an approximation, not an
accurate picture, it can be helpful in some cases, but don’t believe
everything you read, YMMV, don’t spend hours optimising, without
sanity checking what you’re doing.
Mailing list:
iogrind-dev@lists.go-oo.org
http://lists.go-oo.org/listinfo.cgi/iogrind-dev-go-oo.orgWiki
http://live.gnome.org/iogrind
Git repository:
http://www.gnome.org/~michael/git/iogrind.git/
http://www.gnome.org/~michael/git/valgrind.git/Future plans
checkout doc/notes.txt for wild ideas.
- Other people’s code
We include the source for: DiskSim:
+ http://www.pdl.cmu.edu/DiskSim/
Since it appears un-maintained.
- Hacking notes:
** Coding style
Code committed here should be formatted according to the Microsoft guidelines:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconclassnamingguidelines.asp
As summarised here:
http://blogs.msdn.com/brada/articles/361363.aspx
With the following elaborations:
+ all instance member access should
use 'this.<member>' to disambiguate.
** To hack happily in the tree you need to do this in the toplevel.
export IOGRIND_HACKER=1
export DISKSIM_PATH=pwd/disksim-3.0/valid
export LD_LIBRARY_PATH=pwd/disksim-3.0/src/.libs/
- Howto git:
git-push git@gitorious.org:iogrind/mainline.git master

