Linux Plumbers 2015 finished up last Friday. Another great conference. The focus of Plumbers is supposed to be more problem solving/discussion and less talking/lecturing. To really get the most out of Plumbers, you need to be an active participant and asking questions or giving input. Plumbers was co-located with the group of conferences now run by the Linux Foundation. The fist day of Plumbers overlapped with the last day of Linux Con. This day was as bit more lecture focused like a regular conference. Even if Plumbers is typically a discussion conference, the talks I went to were all great. Highlights:

  • Not officially part of plumbers, but I went to the talk from the former Outreachy interns and mentors. I love hearing their experiences and stories. I get excited when others are talking about what makes them excited. I think most of it boils down to mentorship. If you want to become part of a community, having a mentor to guide you makes all the difference in the world. It’s a shame that mentorship doesn’t scale since there are always more people who want mentoring than time available from mentors.

  • Steven Rostedt gave a nice overview of the state of the RT patch. This patch has been forked off of the mainline kernel for years and the developers have been slowly working to get parts of it in. Major features have merged thanks to the RT patch (High Resolution Timers, lockdep etc.). Linux mainline now runs better in a real time environment because of the work that’s been done. Many use cases that once required the RT patches no longer need them (think about this the next time you think you need the RT patches in Fedora) Those working on the mainlining are dedicated to not introducing any regressions; if the changes are going to go in they need to be right. The RT features that are left are very fidly (wait queues among other things) so there’s lots of design and discussion happening. Really fun sounding work happening there.

  • Talk on ACPI 6. Another year, another update. Lots of work on CPU domains. Always more abstractions. Standards will save us all!

  • seccomp talk. I had heard about seccomp before and knew what it was at a high level but this was the first time I ever heard about it in depth. seccomp uses Berkeley Packet Filtering to filter system calls. My first thoughts when this was presented were roughly in order “That’s amazing”, “That’s terrifying”, “I wonder if this could be formally verified via a proof mechanism” (the answer to the last seems like it should be yes although the only item I’ve found it someone doing BPF with Coq wrappers) The talk gave a great overview of how to use it to write some filters and a few best practices. Abstract virtual machines are the best machines.

The next two days were the more traditional plumbers talks/discussion. I bounced around quite a bit

  • A good chunk of my time was spent in discussion on Ion, the android memory manager. Ion has been part of staging for almost 2 years now. The focus was to try and figure out how to make progress in either moving Ion out of staging or deleting it. I gave a talk at Plumbers 2014 about Ion and cache operations (spoiler: it’s terrifying) and Sumit Semwal gave the follow up this year. The conclusion was that Ion is mostly okay as is and with a few “minor” fixes Ion could be moved out as a self contained framework. We’ll see what happens.

  • I spent more time than I realized at Android and Mobile related tracks. I’m not working on this on a day to day basis anymore but I still like being involved in the communities as I can. Embedded hacks 4lyfe.
    • Android code is slowly getting merged out of staging as features are replaced or deprecated. Nothing quite as dramatic as the binder pull out from last year. A big problem is features that are available outside of staging but aren’t quite ready for primetime. Maybe one day the low memory killer will actually go away. There is hope for getting rid of Ashmem yet.

    • There was a lot of discussion this year on running mainline on cell phones. It’s hard not to be cynical sometimes so it really is great to see milestones like booting up on Sony phones. The biggest obstacle to getting anything is mainline is caring. If nobody cares it will not happen. Throwing money at the problem won’t help if there aren’t people given time and support to do so. There’s still going to be fragmentation between what’s actually on a shipping phone and what’s in mainline as well. I’m happy there are great people working on making this a reality.

    • Rob Landley gave a talk on toybox for Android. The history of why toybox exists at all is tied up with a lot of FOSS philosophy and license problems. From the technical side, the project is a good improvement over the existing similar programs in Android.

    • I caught the tail end of some of the devicetree discussion. Yay for more tooling. Frank Rowland gave a talk at Linuxcon as well about DT debugging which I missed due to conflicts. I do hope that some standard (EPAPR or whatnot) gets updated for all the work that’s been done on DT. Standards don’t fix anything but it is nice to have something to refer back to when discussing besides just screaming “Devicetree describes the hardware”. From a formal language background, a compiler implementation shouldn’t dictate the direction of new features either. The people who work on devicetree regularly know more about all this than I do though.

    • John Stultz gave a talk about vendor AOSP repos. The question is, is it possible to build a community around getting really good Android userspace repos? The short answer is that building a community is hard and it’s difficult to get vendors to care. Documentation and education are two big issues to making the repos easier to work with. It’s certainly a good idea but it goes back to the upstreaming idea: if you don’t have people who feel supported and have time to do so and have the passion, you won’t make change happen. It’s certainly a good goal and I hope that the community can come up with something.

  • I went to the first part of the persistent memory discussion. Most of what I heard was similar to what I knew from MM summit back in March. Persistent memory is designed to have the persistence of storage but the byte addressability of regular RAM. The biggest issues boil down to how do you make sure clients who need persistent memory get it and how does persistent memory behave differently than regular memory. A good example of the latter: what happens if you use msync on a persistent memory region to force a sync? The answer seemed to mostly revolve around how msync was being used incorrectly. Yay standards and how those standards are actually used. Most of this work is early and experimental even for Fedora but that’s supposed to be the point of plumbers: unsolved problems.

  • I attended the plumbers ‘meta’ talk which was about how to improve plumbers in future years. Plumbers is a great conference but it hits attendance cap every year. There was some discussion about how to make sure it stays true to the discussion format while also getting more people involved. Plumbers isn’t necessarily supposed to be kernel focused but it ends up like that. The spontaneous nature is also great for discussion and development. Lots of balancing and choices for the planning committee next year.

Overall, Plumbers was a fun and successful conference. I’m always sorry I don’t get to talk to more people when I’m there. Coming off a previous conference, I retreated into “I should go say hi to people but instead I’ll sit over here by myself” mode much faster than usual.

Now back to doing actual work.