addicted to Free Software Development

Archiv für September 2008

I spent the last week in Portland, Oregon, at the Linux Plumbers Conference. Since several people asked, here is my travel report:

Tuesday

This was not an official conference day yet, I just arrived early due to flights being cheaper.

I spent the entire day with the LinuxFoundation driver backports work group, with Ram Pai (IBM), Jon Masters (Red Hat), and Andreas Gruenberger (Novell). Novell’s orginal member (Susanne Oberhauser) works on other projects now, so we gave a quick summary of the status quo, and the results from Austin to Andreas. We discussed some outstanding questions and the next steps, including

various problems in drivers why they can’t/wouldn’t use the standard KBuild system

we finally need to get some whitepapers written to provide an end-to-end vision/tutorial about the entire driver workflow

The afternoon was spent on hacking on the online device DB, which we almost, but not quite, got to talk correctly with Jockey.

Wednesday

I met a lot of people in the morning and had some casual chatting.

The keynote was done by Greg KH about an overview of the Linux ecosystem, which was by and large how many patches various contributors got into Linux, binutils, gcc, and other low-level stuff (e. g. dbus was already too high in the stack to be considered), and half of his presentation was bashing Canonical for how they not submit patches upstream. According to some critical questions from the audience, they took it with the right grain of salt. Nothing technically interesting here really, and the matter has been discussed at length in public now.

In the morning I attended half of the audio track. Lennart Poettering started with an overview of the current audio APIs and Pulseaudio, which was a nice summary. That was followed by a presentation of Takashi Iwai about current problems and plans in ALSA, and a following discussion; this was pretty much over my head, so I returned to the main room. Had some interesting one-to-one discussion there, amongst it with Simon McVittie about a dbus-glib bug which has annoyed me a looong time and is a major blocker for Jockey/PackageKit integration. We did not find an easy workaround, unfortunately.

In the afternoon I listened to the presentation of various tracing and debugging technologies in current and future Linux. Roland McGrath pointed out why ptrace() is both badly written and hard to maintain, as well as not very convenient and flexible for userspace programs, and thus should get a replacement. He introduced “utrace”, a low-level kernel API which provides an abstraction of hardware capabilities and register access, and other low-level basics for tracing engines. It is not a replacement for ptrace itself; quoting him, “utrace is for a new tracing engine like the block device layer for file systems; it makes writing the latter tractable”. Next talk demonstrated improvements in “dynamic ftrace”, for run-time instrumentation of code to track kernel syscalls without measurable overhead; veeery deeply technical and utterly fast (time pressure), so it was very hard to follow. The following systemtap was more interesting for non-kernel-hackers like me; it is a very powerful system to track down bugs, which would probably help us in lots of situations (if only it would work out of the box on Ubuntu, we need to fix that).

In the early evening I listened to Linus Torvald’s git tutorial, mostly because it happened in the main hall and I hoped to understand some of the rather weir^Wunique design concepts. It was quite helpful for git noobs like me, who just have used git for and entire three commits so far. Honestly, this just reinforced my love to bzr, though.

After that we went to the Portland Art Museum for a cocktail/dinner party.

Thursday

Thursday’s keynote started off with Jonathan Corbet giving a summary of recent kernel development. Was nice to start us up in the morning, although nothing surprising here.

The following “boot and init” miniconf was really great. It started off with Arjan van de Ven demonstrating how to boot a netbook with Linux and XFCE in just 5 seconds. His general approach is fairly generic, although of course he has an advantage there by being able to make assumptions about the hardware, partitioning, and use cases. He was followed by a talk of Kyle McMartin who looked in to optimizing various stages of the current general disto boot process, which was very applicable to Ubuntu as well. There was a great amount of discussion going on, inter-distro cooperation at its finest

It is nice to see that work and those talks fall into a time when we want to massively clean/speed up Ubuntu’s boot process as well.

I followed half of the afternoon session about power management on the OLPC in particular and Linux in general, but stopped when the more intricate implementation discussion happens. I rather had some random conversations and did some email catchup.

In the evening we had a dinner with us Canonical folks in an old brewery, which I enjoyed a lot.

Friday

Conference wise this only was a half day, which I spent in the desktop plumbing track. This consisted of William McCann introducing session management and the challenges of the ancient PAM/VT/NSS layers we still have to deal with, which resulted in some discussion of use cases and possible replacements. Scott followed with a mixed presentation/discussion session about upstart’s design goals, current status, and current ideas, which was received very well. In the end Marcel Holtman surprised me quite a bit with his annoucement of his work about integrating the D-BUS protocol and server functionality into the kernel itself, which would both help latency, ease implementation on the userspace side, and makes it more appropriate to rely on it even in upstart itself.

In the afternoon I met with Ram Pai again to work on the driver database. I got it up to the point where it would actually succeed in talking to Jockey \o/.

Conclusion

Although the conf was interesting for me, I could not contribute much, and the outcome/effort ratio was not too good for me personally. So next year I’ll most probably not go again, and rather concentrate on the LF collaboration summit, which I found much more productive for the things I am working on. Seems that this is much more a home for people like Scott, who had a wealth of discussions and contributions.

Meeting my colleagues and other Linux hackers in person again was great, though, we had a good time together (including the jet boat tour on the Willamette river on Saturday ).

I just released the first beta release of Jockey 0.5, which fixes a ton of bugs compared to the first Alpha from two weeks ago. Compared to 0.4, it grew quite a lot of new features:

Split program into a privileged system D-BUS backend (access controlled by PolicyKit), and unprivileged frontend. This provides a cleaner design, gets rid of ugly distribution specific hacks and makes the program more portable.

New Driver DBs can now added dynamically at run time through a D-BUS call (such as adding an XMLRPC compatible DB on a new server).

Upstream OSLib now uses PackageKit’s “pkcon” for query operations, so that distributions which support packagekit do not need to implement their custom functions for it. (Package installation/removal does not use packagekit yet, due to a bug in dbus-glib, but it is planned).

Provide a session D-BUS interface so that applications like system-config-printer can call Jockey through an abstract interface for looking for a driver for a particular device. This will search for a driver in all databases, ask the user for confirmation, and install it.

Add support for “recommended” driver versions, in case several different versions of a driver are available (which is e. g. the case with the proprietary NVidia driver, or lots of drivers from openprinting.org).

GTK and KDE user interface got some usability and workflow improvements. They also show the license and support status now: