Store Halfword Byte-Reverse Indexed

A Power Technical Blog 2016: A set of brief thoughts

Recently most of us attended LCA2016. This is one set of reflections on what we heard and what we've thought since. (Hopefully not the only set of reflections that will be posted on this blog either!)

LCA was 2 days of miniconferences plus 3 days of talks. Here, I've picked some of the more interesting talks I attended, and I've written down some thoughts. If you find the thoughts interesting, you can click through and watch the whole talk video, because LCA is awesome like that.

Life is better with Rust's community automation

This talk is probably the one that's had the biggest impact on our team so far. We were really impressed by the community automation that Rust has: the way they can respond to pull requests from new community members in a way that lets them keep their code quality high and be nice to everyone at the same time.

The system that they've developed is fascinating (and seems fantastic). However, their system uses pull requests, while we use mailing lists. Pull requests are easy, because github has good hook support, but how do we link mailing lists to an automatic test system?

As it turns out, this is something we're working on: we already have Patchwork, and Jenkins: how do we link them? We have something brewing, which we'll open source real soon now - stay tuned!

Usable formal methods - are we there yet?

I liked this talk, as I have a soft spot for formal methods (as I have a soft spot for maths). It covers applying a bunch of static analysis and some of the less intrusive formal methods (in particular cbmc) to an operating system kernel. They were looking at eChronos rather than Linux, but it's still quite an interesting set of results.

We've also tried to increase our use of static analysis, which has already found a real bug. We're hoping to scale this up, especially the use of sparse and cppcheck, but we're a bit short on developer cycles for it at the moment.

Adventures in OpenPower Firmware

Stewart Smith - another OzLabber - gave this talk about, well, OpenPOWER firmware. This is a large part of our lives in OzLabs, so it's a great way to get a picture of what we do each day. It's also a really good explanation of the open source stack we have: a POWER8 CPU runs open-source from the first cycle.

What Happens When 4096 Cores All Do synchronize_rcu_expedited()?

Paul McKenney is a parallel programming genius - he literally 'wrote the book' (or at least, wrote a book!) on it. His talk is - as always - a brain-stretching look at parallel programming within the RCU subsystem of the Linux kernel. In particular, the tree structure for locking that he presents is really interesting and quite a clever way of scaling what at first seems to be a necessarily global lock.

I'd also really recommed RCU Mutation Testing, from the kernel miniconf, also by Paul.

What I've learned as the kernel docs maintainer

As an extra bonus: I mention this talk, just to say "why on earth have we still not fixed the Linux kernel README"?!!?