Dropping Like Flies

General Comments Off on Dropping Like Flies

LCA was good in general. I wasn’t super impressed by the quality of talks I attended, but at least there was a broad mix of topics. Left Dunedin early on Saturday morning for a cricket match which we won by 9 wickets, sweet!

Went to bed early Saturday night, but had a pretty restless night. That was the beginning of possibly the worst 24 hours of my life that I can remember being sick. Seemingly I, along with many other delegates, picked up a bug/food poisoning which meant that most of Sunday was spent worshiping a toilet bowl. Was getting pretty worried because I was losing a serious amount of water from my body, and couldn’t get much fluid down. On top of that was achy joints, a headache and a temperature. It’s now a couple of hours since I’ve had a puke so at least one half of my body wants to keep in the water [grin].

Isn’t it strange though that when your body needs sleep, it’s the last thing you can do? I keep having this recurring dream and waking up every 30 minutes. After a week of activity at LCA, I could kill for a good sleep.

Update: Apparently this could be the norovirus, and mentioned in this article.

Profiling

General Comments Off on Profiling

Federico, any of the examples I’ve been posting to my blog really only touch the surface of what’s possible – even with the best tools, you still have to analyse the data to see what’s going on, and I personally have other projects that I need to be spending my time on. FWIW, I’d still prefer not having to recompile my kernel to get this data.

As an exercise, I wrote another script that shows what files are being opened, and started it before GDM [since I’m not too interested in boot time]. You can see the output here, which basically ticks through each second telling me what programs have been started, what files they’re opening, and a count at the end of how many times the file was opened.

From The Tact Department

General Comments Off on From The Tact Department

Let’s stop beating around the bush. I’ve finally uploaded my OpenSolaris flickr tshirt image.

Opening Up GNOME

General Comments Off on Opening Up GNOME

One of the DTrace examples that I gave during my talk at the GNOME mini conf was something that Bryan showed us in the recent Solaris Desktop summit. A simple script showing what files were being opened –

#!/usr/sbin/dtrace -s

syscall::open*:entry {
    /* Store the first argument of the open()
     * call in a thread local variable
     */
    self->filename = arg0;
}

syscall::open*:return
/self->filename != NULL/ {
    /* Get the filename string and put it into
     * a clause local variable
     */
    this->filename = copyinstr(self->filename);
    self->filename = NULL;
    /* Aggregate on the number of times this filename is opened */
    @[this->filename == NULL ? "" : this->filename] = count();
}

Pretty simple, huh? Now we need to run the script – let’s see what zenity does by simply opening up the about dialog, and then closing it –

 /usr/sbin/dtrace -Z -s fileopen.d -c 'zenity --about' 

Let’s not forget what this dialog looks like – a simple window with a couple of buttons, and a couple of icons –

and DTrace gives us the following output –

  /.pangorc                                                         1
  /etc/fonts/fonts.conf                                             1
  /etc/gtk-2.0/gdk-pixbuf.loaders                                   1
  /etc/pango/pango.modules                                          1
  /etc/pango/pangorc                                                1
  /export/home/gman/.Xauthority                                     1
  /export/home/gman/.Xdefaults-rampage                              1
  /export/home/gman/.fonts.cache-1                                  1
....
  /proc/14473/psinfo                                                2
  /usr/lib/iconv/alias                                              2
  /usr/openwin/lib/locale/locale.dir                                2
  /usr/share/zenity/zenity.png                                      2
  /usr/openwin/lib/locale/locale.alias                              3
  /proc/14473/auxv                                                 19
  /proc/14473/map                                                  19

Pretty neat in many respects. Alarming in others considering the simplicity of the screenshot above.

Roadtrip Photos

General Comments Off on Roadtrip Photos

And now the roadtrip photos are live!.

New Zealand vs Rest of the World

General Comments Off on New Zealand vs Rest of the World

We had the linux.conf.au cricket match tonight – a really close knit affair. Lots of fun out underneath the beautiful evening sun on Logan park as the Kiwis [or token Kiwis as the case may be] take on the might of the Aussies, Indians and god only knows who else. Great fun, and really wonderful to get to know a bunch of delegates on a social basis. New Zealand won by 4 runs over 20 or so overs. There’s talk of a rematch already!

Aussie, Aussie, Aussie. Sh*te, sh*te, sh*te!

Linux Conf Australia ^W ^W ^W New Zealand

General Comments Off on Linux Conf Australia ^W ^W ^W New Zealand

It’s been a fun, but utterly manic couple of days. Collected Jeff and Pia from the airport and pretty much headed on a roadtrip around New Zealand. Because they arrived quite late in the week, I had pretty much decided that we had to skip the hot pools, and instead, we headed towards the west coast through Arthur’s Pass and the Energy Center of the Universe, Castle Hill, which many people will have seen in the recent Narnia film. Finally ended up staying in Hokitika that night, a town famous for the Wild Foods Festival each year, but also for an amazingly unimpressive collection of glow worms.

The next day we headed down the coast to catch the Franz-Joseph glacier in less than impressive weather. We didn’t even see Fox or Mount Cook from the usual Lake Matheson view which was disappointing too, but ended our day in the wonderful Wanaka, watching the Worlds Fastest Indian in the homely cinema there – after driving a couple of hundred kilometers, we obviously had to spend the evening in the morris minor that was parked towards the front.

Sunday was entirely more energetic, with the morning spent in Puzzling World [wonderful maze, but slightly Pukey in the weird angle room], shooting targets in a nearby archery range [embarassing photo withheld….seriously], and then river surfing with the Frogz river company near Queenstown – photos to follow.

And LCA hasn’t been too bad either. We had the GNOME mini-conf today and it was wonderful to meet Callum and John for the first time, along with many, many others. My DTrace talked kinda sucked, but hopefully everyone got the gist of it. Anyone who wants a personal demo feel free to ask me – it’ll be a lot less relaxed and informative. We did a rad little brainstorming session of all the things that sucked and rocked in GNOME, so we’ll blog about those things a little later.

The Roadtrip

General Comments Off on The Roadtrip

Hooray, it’s Friday and I’m about to pick Jeff and Pia from the airport, the first stepping stone towards a monster road trip on the way down to Dunners for LCA.nz. We’re planning on hitting the hotpools, the pancake rocks, the glaciers, the wonders of Queenstown and just about anything else that passes our fancy. But YES, THERE WILL BE PIES!

Anyone know what crack Jeff was smoking this morning? Maybe it’s a subtle reference to our roadtrip, which is going to be BATSHIT INSANE!

John Saves My Ass

General Comments Off on John Saves My Ass

When upgrading to a newer version of Nevada b31, I forgot to backup my xorg configuration file. Normally this hasn’t been a problem because it’s generates a file in /etc/X11/.xorg.conf which I can copy over, and tweak where necessary. But it hasn’t this time, and power management regularly hoses the xserver to the extent that I have to do a hard reset.

Occasionally things go wrong when you hard reset, which is rather understandable really, and on consecutive booting into Nevada it would just reboot the moment I left the grub screen. This time I couldn’t figure out what I had to do and anything I did try was failing miserably. The horror stories of your machine going down before a major conference were becoming true. Fortunately John came in to save my ass with the following incantations –

 touch /a/platform/i86pc/kernel/unix bootadm update-archive -R /a 

Apparently updating the boot archive should take some time. Useful stuff to know.

I Need a Build Machine

General Comments Off on I Need a Build Machine

I think I need a faster build machine, especially for building our conglomerate SUNWgnome-base-libs package, which is a collection of glib, cairo, atk, pango, gtk+, libglade, libart_lgpl and libgnomecanvas. That’s probably cause for concern enough, but what’s really worrying is the time it takes to build all the API documentation [yeah, I should use –disable-gtk-doc, but that’s not the point]. With a simple script –

#!/usr/sbin/dtrace -s
pid22909:libxml2.so::entry {
    @[probefunc] = count();
}

tick-1sec {
    printa(@);  cleara();
} 

it basically aggregates how many times functions in libxml2.so are called for the process id that corresponds to the xsltproc which does the doc generation. It then prints the totals out each second. Some sample output is here, and here for functions in libxslt.so. At one point, it was doing a staggering 15,000 xmlXPathCompOpEval calls a second while building the index pages.

DTrace is nice to be able to waste away the hours rather than looking at the build output….and of course I have absolutely no idea how to interpret these numbers – unfortunately DTrace can’t really help there, or whether this is anyway significant. I just wanted to see what was going on and you’d probably need to start looking at how long you spend in each function with the following script –

#!/usr/sbin/dtrace -s

pid6562:libxml2.so::entry {
    self->ts = timestamp; 
}

pid6562:libxml2.so::return
/self->ts !=0/ {
    @cnt[probefunc] = count();
    @time[probefunc] = sum(timestamp - self->ts);
}

tick-1sec {
    printf("%30s %15s %15s\n", "FUNC", "TIMES RAN", "TOTAL TIME");
    setopt("aggsortpos", "2");
    printa("%30s %15@d %15@d\n", @cnt, @time);
    printf("\n");
}   

Unfortunately I haven’t got a new enough build on my laptop to be able to run the script above. Next time.

« Previous Entries Next Entries »