A couple of weeks ago I went to Copenhagen to attend Linaro Connect and Ubuntu Developer Summit for the first time. I was really impressed by the size of the conference, I wasn’t expecting so many people, it certainly rivals LinuxCon in terms of attendance.
All the best minds in the ARM world together in the same hotel for a week: the list of attendees includes Arnd Bergmann (Linaro), Olof Johansson (Google), Grant Likely (Linaro), David Rusling (Linaro), Jon Masters (Red Hat) and many others. You can imagine the level of technical discussions that was going on.
The most interesting topic for me was the standardization of the boot process: the goal is being able to build a single kernel binary that is able to boot on multiple different ARM platforms. In the x86 world people are used to the idea of being able to install their favourite Linux distributions on their servers (and maybe their laptops) without any significant problems. However in the ARM world this is still a new concept. Up to few months ago it wasn’t even possible to build a Linux kernel that would boot on multiple ARM SoC (System on Chip). Thanks to the work that Linaro and ARM are putting into it, Linux 3.7 is going to be the first Linux kernel capable of supporting multiple ARM platforms out of the box (people usually refer to this feature as “ARM multiplatform“). The idea is that all the ARM platforms that the kernel supports are described using the same hardware description format: Device Tree. This way Linux can discover what hardware is available at run time; it doesn’t need to be built for a specific SoC anymore.
At Linaro Connect we discussed the other components that need to be standardized in order to achieve the goal of a single image: the bootloader and the BIOS. Regarding the former, everybody agreed that having grub2 on ARM is a good idea. Considering that grub2 already supports the multiboot specification (that Xen uses to boot on x86 machines), it is certainly a good news from my perspective.
From the BIOS point of view, we talked about UEFI for ARM, that while incomplete at the moment, is on track for becoming the common booting firmware on ARMv8 systems. I am not a great fan of UEFI but if it is going to help create a standard platform, then I am OK with it. The real problem is that UEFI usually comes with ACPI, in fact it is pretty clear that Windows 8 requires both UEFI and ACPI on ARM devices in order to boot successfully. ACPI is a technology I would gladly avoid: it adds a lot of complexity for very little benefit from my point of view. Just to give you an idea of what I am talking about, the ACPI parser in Linux is a little over 110000 lines of code, while the Device Tree parser isa bit less than 5000 lines of code.
Do you see the problem now?
I would rather avoid having to deal with 105000 lines of additional code. While ACPI on ARM was discussed at Linaro Connect, I was very pleased to hear that Device Tree is here to stay. The majority of OEMs are expected to bring to market servers with Device Tree support, while only few machines would support ACPI in addition to Device Tree. Therefore we shouldn’t have any problems relying only on Device Tree in Xen for the moment.
Neither the deep technical discussions nor the sheer size of the conference were the thing that impressed me the most from Linaro Connect: all the most important players in the industry were there, announcing plans around ARM and showing demos. We saw one of the first Samsung Chromebooks in the hands of the Google devs that wrote Chrome OS and a prototype of a server based on Calxeda cards built by HP. Speaking about the Chromebooks, I received my first one after Linaro Connect and we are getting Xen running on it as we speak! Once this is done, we’ll have a new device, widely available for a modest price, that everybody can use to try out Xen and get involved in the project. Up to now it hasn’t been very easy to find hardware people could buy to hack on Xen on ARM, so this is an important step in the right direction. I am also very pleased that we received so many questions about our work on ARM: it is clear that many people were interested in our project and liked to engage with us in deep technical discussions about our architectural choices!
Finally we were a bit taken by surprise by the momentum and excitement around ARMv8 and ARM based servers. This was the topic everybody was talking about. In effect ARMv8 hardware will be available sooner than expected. Luckily Ian Campbell has started the ARMv8 port for Xen and is making good progress so you can still count on Xen to be ready on time!