diary
global namespace
hiprofile - HTML interactive profiler, version 1.0
I've recently been doing some performance analysis work on Linux, which requires profiling various applications to see how they perform under load. One of the handy tools for profiling this behaviour is oprofile, but the output can be a little difficult to interpret.
So, I've developed hiprofile, the HTML interactive profiler.
Hiprofile is a small python script to generate HTML reports for oprofile data. Output is broken down into per-program statistics:
The page for each program lists the top 20 (by default) symbols within that function:
Each of the most-hit functions are show with per-instruction profiling data, and each instruction is coloured according to how 'hot' it is. If the source code for the function is available, the output is annotated with the corresponding code:
More info and downloads are on the hiprofile project page.
2.6.26 on a Lenovo x61 thinkpad
It looks like the iwl driver is slightly broken in the 2.6.26 release - connections will drop-out after 10 seconds or so.
The workaround for this is to enable the config option
CONFIG_IWL4965_HT.
spufs git tree on kernel.org
After going through the magical approval process, I now have a spufs git tree published on kernel.org.
If you're looking to try out the latest work on spufs, just do a:
[jk@pokey ~]$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/jk/spufs.git
As with other git repositories on kernel.org, there's a gitweb interface to browse the tree.
Of course, if you have any bug reports/requests/comments about the code in the spufs.git tree, feel free to email me at jk@ozlabs.org, or the Cell/B.E. open source development list at cbe-oss-dev@ozlabs.org.
put your coding pants on...
... because the linux.conf.au 2006 hackfest is coming up soon.
The prizes have just been announced - first prize is a Dual G5, second is a 15" PowerBook, third is a Mac Mini. This year, the hackfest will be run as a single four-hour session, with questions/tasks available at the beginning.
mergefb - dual monitor setup for a linux laptop
I've recently been playing with the mergefb options with the
radeon x.org driver, to allow a semi-hotpluggable external monitor on my
laptop. MergeFB is great - I can now use a larger external monitor when it's
available, and resize the desktop to just the laptop panel when it isn't, all
without having to restart X.
Previously, this used to be a bit of a problem; if I used another display at work (combined with the laptop panel to create a larger desktop), then using the laptop without the monitor left a large chunk of the desktop un-viewable. Because of this, I ended up having to restart X (having to close & reopen all running applications), or not use an external display at all.
There are some (quite technical) details here about the mergefb configuration.
patchwork released
I released the first version (0.1) of Patchwork a few days ago. Patchwork is the new (open source!) version of the patch tracking system originally written for the Linux PPC64 mailing list - it 'catches' patches that have been posted to a mailing list, and lists them on a web page for the project's maintainer to track.
Since then, I've released version 0.2, which has MySQL support (in addition to PostgreSQL) as well as a few parser and documentation improvements.
Check out the setup for linuxppc64-dev over here. Also new: freshmeat.net project page.
scrobbled
I've recently discovered the KDE audio player amaroK (which, by the way, is the freaking business - I won't reiterate why) . One of amaroK's features is integration with audioscrobbler, a music database. In short, amaroK can send your currently-playing track to the audioscrobbler database, and using that data combined with that of others, can link you to other artists/songs that you might like.
The whole thing sounds a little wierd on the privacy side of things, but their website appears to have a decent privacy policy, and the anonymous data is available under a creative commons licence (neat!).
Oh, and here's what I like.
1992: Linux is obsolete
Interesting reading - this usenet thread, from 1992, where Andrew Tanenbaum states that Linux is obsolete, and the microkernel has won.
It's also interesting that a major argument is that the Linux will be limited
by the popularity of the x86, implying that it will be bound to that (failing!)
architecture. ls /lib/modules/$(uname -r)/build/arch shows a
different picture nowadays.
One of the more memorable quotes:
Of course 5 years from now that will be different, but 5 years from now everyone will be running free GNU on their 200 MIPS, 64M SPARCstation-5.It's funny on so many levels.
patch tracking system
I've just set up another instance of my patch tracking system for linuxppc-dev and linuxppc-embedded, to go with the original one for linuxppc64-dev.
Next step is to clean the code up and get IBM approval to release the source
dcop
dcop is KDE's access-to-everything tool, which most KDE apps export some sort of interface to. For example, to ask the KWeatherService the current temperature in Canberra (which has station code 'YSCB'):
[jk@b4 jk]$ dcop KWeatherService WeatherService temperature YSCB
12°C
or to get the currently playing track from noatun:
[jk@b4 jk]$ dcop noatun-8897 Noatun title
[The Aphex Twin] - Polynomial-C
or make kmail check for new mail:
[jk@b4 jk]$ dcop kontact KMailIface checkMail
Handy for scripting!