Dhaval Giani, an Oracle Linux kernel developer and development manager, shares some of his thoughts and insights from Linux Plumbers Conference 2018.
This is my report from LPC 2018 held in Vancouver, BC on November 13-15, 2018.
Oracle had a strong presence at LPC this year. I counted at least 20 of us (so ~4% of the conference attendees).
Like last year, I organized the Testing and Fuzzing microconference. It was a popular microconference (I counted over 100 attendees at peak times).
Highlights of the testing microconference:
The Automated Testing Summit (ATS) this year was co-located with ELCE. Kevin Hilman provided a report about events at the summit. There was a push to standardize testing procedures, starting with how testing is done, to defining various terms. There was a strong embedded presence this year but the summit organizers would like to expand it to include more distributions and server folks. A big goal going forward is to unify all the secret sauces which various companies have. LWN has covered this talk, and I highly recommend reading about it here.
KernelCI was another important topic. The goal of this project is to test non-x86 platforms. The original success criteria used to be a successful compile on the platform. Now, we have reached a point where more often than not, we have a successful boot. This is great work by the kernel community, and kernelCI is only going to get more and more important as we reach a point where we will actually be able to run test suites for more than a few references platforms. KernelCI will soon be a Linux Foundation project. LWN has covered this as well.
Our own Knut Omang talked about his new make runchecks which helps to improve code quality by running a bunch of automated checks (such as checkpatch, smatch, sparse, checkdoc, Coccinelle). The tool aims to categorize errors so that users can filter on them. The talk was quite well received, with a lot of "this is a cool idea" being heard around the room.
Dmitry Vyukov from Google talked about syzkaller and syzbot. These projects are working very well to automate a lot of kernel fuzzing and reporting a number of issues (some of them having security implications). Around 70% of the bugs reported by syzkaller/syzbot are getting fixed upstream. There is also a lot of future automation being worked on.
Matthew Wilcox from Oracle talked about his kernel testing in userspace. Matthew has extracted some kernel code into a library which can then be built into a user space test suite, but also be run as part of kernel test suites. At this point, it only works for Matthew but if he gets some collaborators, he believes it can be made more generic. Steven Rostedt implemented an ftrace probe filter to inject allocation failures during this talk. This was an enjoyable discussion.
Finally Dan Carpenter, also from Oracle, talked about smatch. Smatch had quite some success in finding issues in the kernel with many of them having security implications. It was a great talk on how smatch worked and what new features were coming. One notable moment was Dan's work with detecting spectre v1 issues, and confirming if something was a real issue or not. Matthew Wilcox stated that the issue Dan highlighted was real and even created a patch for it.
This was an excellent session, and I loved the interaction we had. There was talk about expanding ATS next year to get more coverage. Stay tuned to hear more about it.
I also attended an old favourite of mine, Real Time Scheduling microconference. That was also a fantastic microconference. I have been following the PREEMPT_RT project for many years now, and it is getting close to being all in mainline. Talks have shifted from, when will we get to mainline, to what do we do after it is mainline (more testing seemed to the theme). Oracle's Prakash Sangappa talked about real-time inside namespaces, which led to a spirited discussion. Once missing bandwidth inheritance comes into place, we will be able to allow real-time inside namespaces which would make namespaces (and by extension containers) very useful.
Daniel Jordan from Oracle organized the Scalability microconference. This was another exciting microconference, with a lot of great problems being discussed. Steven Sistare and Subhra Mazumdar from Oracle talked about improving the scheduler's load balancer. One of the key issues coming up now is, does the scheduler scale well on both the higher end (big iron) as well as the lower end (embedded and mobile) at the same time. Is it time to start bringing in tunables. Oracle is currently one of the very few participants looking to improve the high end performance. We will be keeping a close eye to maintain and improve performance characteristics of Linux in general and the scheduler in particular. There was talk about how to improve hugepages by Mike Kravetz, an Oracle kernel developer (along with Christoph Lameter) , and on ktask by Daniel Jordan. This was also a very interactive microconference that I enjoyed greatly.
The rest of my time at the conference was spent in the hallway track, meeting old friends and discussing crazy ideas. We talked about how it is time now for cgroups v3 (just kidding!), and in general about the various other problems people are trying to solve across the stack.
The Linux Plumbers Conference 2018 website located here has a link for the detailed conference schedule which has clickable links for each session. This year sessions were video taped so you can watch the presentations as well as the discussions that occurred. Also, the etherpads have all the notes from each session available.
Finally, no report of LPC is complete without a mention of the social events. We got to meet a lot of old friends and made new ones. One key takeaway I had was that our push to get patches accepted upstream, and increasing participation is getting noticed. It is good to see Oracle's contribution to Linux and open source being acknowledged by other developers.
I would like to thank Oracle for sponsoring my travel and the LPC organizing committee for organizing another great edition of the conference.