Comparing and evaluating epoll(), select() and poll() by Louay Gammo. Turns out it’s actually someone else talking. Using a 1-byte payload and a very simple HTTP-server, the event-handling mechanisms are compared. Turns out that there’s more gains in application code (optimize handling of incoming connections), rather than in kernel space. Most alternatives (poll, select, epoll, used in level- and edge-triggered fashion, vectored epoll) do not differ in a significant enough fashion.
new development model / kobjects & krefs by Greg Kroah-Hartmann. Two presentations for the price of one. First dealing with the “new development model”. Meaning that 2.7 will not be opened for a long time, and that 2.6 will keep accepting new features. This is how things have been working lately, and they have indeed been working well. There’s a good description of the process at lwn.net, as well as plenty of discussion on lkml and news sites (such as kerneltrap.org). Slides available at Greg’s homepage.
The other topic, reference counting in kernel data structures was far more technical, and shorter. Still uses Big Kernel Lock, but that’s not seen to be a major issue, even with regard to performance. Slides available at Greg’s homepage.
Xen and the Art of Virtualization by Ian Pratt. Lots of good material available at the project’s home page. Xen has advanced with leaps and bounds since the last peek inside, and especially performance-wise seems to be a very credible implementation indeed. It uses the hardware protection features of the x86-CPU to a large extent to provide trusted hypervisor environment in which the “guest operating systems” (Linux, BSD variants, Windows XP) run (in a slightly less priviledged mode). The biggest omission right now is the SMP-incapability of the guest operating systems. Implemented as a separate architecture in the source tree to keep the code clean.
TIPC: Providing Communication for Linux Clusters by Jon Maloy. Another “no big news” presentation. Ericsson’s TIPC has evolved a lot, and nowadays even looks like kernel code. On surface looks like a good TCP/UDP replacement: connectionless/connection-oriented, reliable/unreliable, single node/cluster. Until the “not routable” feature comes into play. TIPC is usable in small environments (ie. perfect for intra-cluster messaging), but in the big picture it has problems.
The World of Open Office by Michael Meeks. Rather annoying presentation style. Ingratiating, yet at times very interesting. Open office has grown up. And it has also grown big. The building process is scary and has consumed many spirited hackers. OO is very C++-version specific, and used to be shipped with a lot of redundancy in the libraries to provide the correct ones in the environment used. Nowadays things are better.
BoF: Linux Kernel Scalability and Tradeoffs led by Dipankar Sarma. Yet more IBM-led birds of a feather sessions. Mainly dealing with locking issues (a presentation in the following morning by the same person). Rapidly descends into the very precise questions (is RCU good for soft IRQs or not).
BoF: RAS: Efficient Data Transfer led by Richard J. Moore. RelayFS, a simple method for shipping vast amounts of data in/out the kernel is not in 2.6. Has a chicken & egg problem, and needs good stories to convince the powers that be to include it. Key reason for not including is its similarity with netlink. Which does bear similarity, but couple of key features (zero copy) are missing from the latter. Would benefit from true benchmarking between the two. Also, providing rFS as a loadable module would give people ability to mess with it without patching their kernel.