OpenBSD Journal

A Week of OpenBSD Hacking In Slovenia: Developers Report From s2k11 (Part 3)

Contributed by pitrh on from the roomful of puffies dept.

s2k11 T-shirt design For a few days in September (16th through 23rd), the Slovenian capital Ljubljana was also the World Capital of OpenBSD hacking, hosting the s2k11: General hackathon, with 25 developers participating. We asked each of the the developers to send us a short summary of what happened at s2k11 as soon as they'd caught up on sleep, and several of them obliged quickly.

We published a small selection in Part 1 and Part 2 of this series, here we present the third and final installment, with insights into the development process and previews of features that may soon appear in -current and snapshots before they make it into an upcoming release.

As expected, Henning Brauer (henning@) put in considerable effort on the highly anticiptated new traffic shaping code in pf(4):

henning@ debating Not much to report since I didn't finish it, but I wrote bandwidth shaping stuff, to replace altq cbq & hfsc. It is using hfsc. The diff is 3000 lines by now (without removing any altq yet) and there are probably about 500 missing - I do have all the low layer stuff, I do have the pfctl(8) parts, I need to write the glue in between, namely the ioctl(2)s, the code betwee the ioctls and the engine setup/config, and pfctl parse.y -> ioctl. And docs. Not too much left but more than a quick thing in between.

USB guru Yojiro UO (yuo@) reports on some exciting driver work:

yuo@ talking I was working on the usb related hacks at the s2k11. In the first two days, I spent most of time to merge a new device driver with usps(4) and to overhaul the sensor framework. This device driver supports "FX-5204PS smart power strip" which can measure the per port electricity consumption and voltage and the frequency of the power source.

After that, I started to hack the usb3.0 related cords. I spent the rest of the hackathon for the task, but I still need more and more work to finish.

I would like to say thanks to Mitja and all other people who work for this hackathon.

Meanwhile, Paul Irofti (pirofti@) got a lot done in compat_linux as well as contributing both to kernel locking granularity and fledgling port:

irofiti@ at the ports table On the first part of the week I worked on compat_linux. Mainly commiting the futex diff I had since c2k11, but also adding other 2.6 specific system calls needed by modern applications.

After a lot of changes suggested by guenther@ and lots of testing and hair loss most of the stuff is in. The futex implementation could benefit a lot from Philip's rentrant rwlocks and from some of Ariane's that will remove the ``private futex only'' policy we have now.

Tired and fed up with Linux, for the second part of the hackathon I hacked on the Itanium port. I managed to figure out, with a lot of help from kettenis@, jsing@ and miod@, how to finally get a cross-gcc for ia64 and thus started putting together a stub kernel for it. Slowly I ran into a lot of interesting issues related to MI-MD glue, me and config(8) got to know each other better and I finally had the AT&T syntax revealed to me (by deraadt@).

This was probably the best part of the hackathon, as I learned a lot about the system and lots of fuzzy areas from the kernel cleared up in my head because of that. But, there's still plenty of darnkess to go by in my head, so no worries there.

Peter Hessler (phessler@) contributed code that makes the OpenBSD routing domains even more awesome:

I was able to finally finish up rdomain support in ntpd. For most daemons, we recommend that you run multiple daemons in the appropriate rdomain using `route -T5 exec /usr/sbin/sshd`. However, when you do that with ntpd, each ntpd thinks they are in sole control of the clock, and they each try to skew the time. Hilarity ensues.

This change essentially added "rtable 5" support to "listen on", "server", and "servers". A server admin can mix-and-match any amount of interfaces in their configuration. Upstream servers in one rdomain, and serving time to a differnt rdomain, etc, etc.

Christian Weisgerber (naddy@) gave several important pieces of the developent toolchain a brush-up:

naddy@ talking to stsp@ By now people assume that I will spend part of each hackathon updating devel/gettext, but this was the second hackathon in a row where I didn't--simply because there hasn't been a new release.

In base, I contributed a number of LP64 fixes to tcpdump(8). I also pushed through kurt@'s work to switch gcc's thread model to POSIX on our remaining GCC3 architectures (alpha, landisk). This reduces the differences between GCC3 and GCC4 archs and means more ports will successfully built on the GCC3 platforms.

In ports, the GCC3 change meant that I could remove a number of workarounds from devel/boost. I imported devel/libevent2 in a way that won't clash with the old libevent1 in base, and this allowed the frequently requested update of net/transmission. As usual, I also committed various minor maintenance updates to a number of ports.

Finally, I explored the possibility of adding UTF-8 support to our vi(1) or, as NetBSD did, updating directly to the latest nvi 1.81.6 release that includes this capability. However, between the lack of an upstream repository, and lots of gratuitous changes to vi in the OpenBSD and NetBSD trees, I got bogged down, so this hasn't let to any results yet.

And finally, Martin Pieuchot (mpi@) managed to touch a wide array of code for hardware support:

mpi@ concentrating on code First of all, It was my first hackathon and all I can say is that it was quite fun and really well organized.

On my first day, I finished to add support for ALPS touchpads to the psm(4) driver. With the help of matthieu@ I fixed the remaining detection conflicts between synaptics touchpads responding to ALPS queries and vice versa.

After that I had a fight with some Vaio laptops in order to make the acpisony(4) driver really useful. But even with the help of pirofti@ and some aml tracing, I couldn't figure out why some models work and other doesn't.

But I spent most of my time hacking on different parts of the macppc platform. I started to write the missing bits in order to support suspend/resume for G3 and G4 based laptops, and this include:

  • some cleaning of the adb(4) driver to be able to rescan the bus.
  • add the missing PMU command to suspend the system
  • extend the apm(4) driver to use the pmu suspend/resume functions
  • write the routine the put the processor in sleep mode (only for G4 for the moment)
  • start to write the routine to flush caches
  • some driver cleaning to save/restore their state

At this time, none of this have been commited, there is still a huge work to do and I want to test my changes on many machines as possible. This is also why I asked for more macppc hardware on the want.html page.

Then I had a look at some ADB keyboard issues under X11 that macppc users may have noticed: some keys are swapped and others doesn't send the right keycode. Hopefully with the help of matthieu@ and shadchin@ we are now working on the right fixes.

Once more, a huge thank you to all developers and others who contributed. Here's a word from Mitja to all contributors and sponsors:

Let me start by thanking the developers for attending this hackathon in such number, it was beyond what was originally planned more than half a year ago when the seeds of s2k11 were planted. It was a honor and a privilege to host this event, and above that, it was fun! A big thanks also goes to the team at Dijaški dom Tabor for hosting us and some fine Slovenian corporate sponsors: Tavija and Odvetniška pisarna Brecelj in partnerji for contributing the refreshments; a very special thanks goes to Ercigoj Embroidery for donating the faboulous richly embroided event banner and to Xenya for making us the ever important intra-building fiber cable through which the bits flew during the event. Last but not least, a big thank you to all the individuals who have helped us in every possible way - Leon and Janez for the hackroom setup and teardown, Vito for event photos, Andraž and Gregec for hardware asisstance and Janne Johanssen (jj@) for the surprise gift to the hackroom.

s2k11 group photo

Standing: stsp@, mpf@, landry@, ajacoutot@, robert@, henning@, jasper@, arianne@, yuo@

Sitting: deraadt@, mpi@, matthieu@, jsg@, beck@, miod@, claudio@, uwe@, schwarze@, naddy@, bluhm@, jsing@ (mitja crouching)

Missing: kettenis@, sebastia@, phessler@, pirofti@

Photos by Vito Antešič.

(Comments are closed)


Comments
  1. By Simon (simonk) - on

    Always nice to read hackathon reports.
    I really do hope it reminds people to buy more CDs and donate.

    I also love the smell of napalm^Wcvs-mails in the morning during hackathons.

  2. By Paul Irofti (bulibuta) on gopher://sdf.lonestar.org/1/users/bulibuta

    My email addy is pirofti@, mkay?! ;-)

    Comments
    1. By Mitja Muzenic (mitja) on .

      > My email addy is pirofti@, mkay?! ;-)

      Was only trying to protect you from spam harvesters... :)

      Comments
      1. By Paul Irofti (bulibuta) on gopher://sdf.lonestar.org/1/users/bulibuta

        > > My email addy is pirofti@, mkay?! ;-)
        >
        > Was only trying to protect you from spam harvesters... :)


        Just stick to organizing awesome hackathons!

      2. By Miod Vallat (miod) on

        > > My email addy is pirofti@, mkay?! ;-)
        >
        > Was only trying to protect you from spam harvesters... :)

        Just add whitespace. Paul will love it.

  3. By Johan Helsingius (julf) julf@julf.com on

    Ahh, yes, Ljubljana. Still remember the Yugoslav UNIX Systems User Group meeting I was speaking at (hosted by Iskra Delta Computers?) back in 1990 or so...

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]