Contributed by phessler on from the budapest-strikes-back dept.
I spent some time trying to add support for the Realtek RTS5209 card reader. This is a non-standard SD/XD/MS host controller chip which sdhc(4) won't attach to. I've been working on a new driver for this chip for a couple of weeks now and it is almost complete. The driver already supports reading 512 byte sectors at a time, however because of some bug it doesn't yet correctly support reading multiple sectors at once. Our sdmmc(4) stack will issue such read requests so they need to be supported for proper operation. Also, I haven't tried writing sectors yet, but the difference between reading and writing is very small. Useful hardware documentation does not seem to be available. The only reference I have is a Linux driver which contains 20624 lines of code. Luckily it seems to be very feature complete, so it is an exhaustive reference, albeit slightly inaccessible due to its sheer size and complexity. I've emailed the author of the Linux driver for help and he has been very responsive and helpful. So I hope I'll get the outstanding bugs fixed soon so that the driver can be committed in time for the 5.3 release (it has already missed 5.2, sorry). If anyone has this card reader and would like to help test the driver, please email me and I'll send you a diff to test once I've got the driver working on my hardware.
I've also spent time trying to improve stability of the ral(4) driver. Some ral(4) cards can get stuck under certain conditions, requiring users to run "ifconfig ral0 down up" to recover. This is huge nuisance in hostap mode as access points usually run unattended. edd@ brought a slow soekris machine with a ral(4) interface to the hackathon which he uses as an access point at home. This machine was a great test bed since it was constantly overloaded with the huge amount of wireless traffic in the hackroom, mostly from other offices in the same building. We could fix things up to the point where Edd's machine was happy and quite stable. I went looking through commits by Sepherosa Ziehau from DragonflyBSD, who had fixed some related issues in Dragonfly's version of the ral(4) driver. Some of his changes were ported back to OpenBSD, some of his commits provided insight into problems that I ended up fixing in a different way. I also made some fixes in the generic net80211 code which all wireless drivers can benefit from. Sadly, when I got home and tried my changes on my own ral(4)-based access point the results were disappointing. While the changes I had made fixed some problems, they also introduced new problems on my own machine at home. So I had to revert some of my changes and am currently working on fixes that will hopefully make ral(4) run reliably on all machines, not just Edd's ;)
Bret Lambert(blambert@) spent some time peering at some ugly code:
I had been staring at the current routing table implementation for some time, wondering how it could be banged into shape, since it's a) ugly, and b) in the way of doing fun things like dropping in a spiffy new routing table implementation to replace the radix tree, which is famously horrible to read (indeed, Stevens devoted about a page to it, since it appears even he didn't want to look at it!). After drool^H^H^H^H entering a zen state, I finally was rewarded with enough clarity to see which portions of the code needed to be killed with fire so that we could start rebuilding from a reasonable starting point. I have some "totally legit" diffs being passed around and tested that should get committed shortly after 5.2.
Along the way, I was shanghaied by haesbaert@ into thinking about lock ordering issues, and learned that guenther@ can solve all issues he introduces by just going around and touching the affected machines; poof! problem not replicable!
I'm hoping that I'll have a cycle where I can have started adding the cowbell (e.g., new routing table implementation, route pointer caching in pf, etc.) at g2k12 and finish it up this fall at n2k12.
Big ups to robert@, not only for being a fine Hung Aryan, but for doing the legwork to get this off the ground.
This (yet-another) week in Budapest was very productive for me. Thanks to mpi@ fixing a couple of bugs in our LibGL I was able to update clutter to the latest release as well as import missing ports that dependended on it (mx and mash) and that gnome-shell required. jasper@ was then able to import gnome-shell and I finished the big GNOME 3 work by importing gnome-documents, sushi and caribou. AFAIK OpenBSD is the first BSD system to support a full GNOME 3 experience; systems that have support for drm(4) (hardware accelerated 3D support) will be able to use gnome-shell starting from the upcoming 5.2 release. Of course, the fallback Desktop is still available for unsupported video chipsets.
I have also updated GNUTls to a new major release: 3.0.21. There was some fallout that I needed to take care of after this commit, but on and on it was pretty straighforward.
At last and probably the most important part of my work was to add an obviously missing category to the net/gnaughty port... this commit was dedicated to mlarkin@ ;-)
As usual, this hackathon was awesome -- Robert knows how to host things for sure and Budapest is such a fantastic city! Thanks to all involved in making this event possible, even after all these years I am still amazed at the amount of progress that is made during hackathons...
Joerg Zinke(zinke@) made OpenBSD/PF ready for The Cloud:
We know it is late being published, but the editors at Undeadly would like to thank all of the OpenBSD developers that participated at our hackathons, and especially thank Robert for his work in organizing another hackathon in the wonderful city of Budapest.
During g2k12 I was working on finishing the implementation of another well known load balancing algorithm into PF: Weighted Least States (WLS). Previously Weighted Round-Robin (WRR) and Least States (LS) were already commited during/post c2k11. So everything was already prepared with help from henning@ and mcbride@ and the final commit happened earlier in the week.
Afterwards I worked on updating and importing several ports, especially suckless.org ports I more or less use on a daily basis: x11/tabbed, www/surf, x11/dwm, x11/st, x11/sselp and the tiny but shiny net/sic. Finally I imported text/cloc for some funny counting in /usr/src :)
(Comments are closed)