Trip report: KVM Forum/LinuxCon NA 2011
KVM Forum is an annual conference; this year it was colocated with LinuxCon NA in Vancouver. There were about 150 attendees; many of them are simply users of KVM and so many of the talks are aimed at KVM users. However it's also an opportunity for the KVM and QEMU developer community to get together, with a number of informal BoF sessions and an all-day hackathon later in the week.
The talk schedule is here, together with the slides for all talks: http://www.linux-kvm.org/page/KVM_Forum_2011
Some brief highlights:
* Keynotes
ARM/Linaro got positive mentions in both keynotes; Avi Kivity said of the ARM/A15 KVM work that he had "every reason to expect it to be very successful". Anthony Liguori's keynote summarising the year in QEMU development included some statistics about commits: Linaro came third in the list of "companies with most commits", behind only Red Hat and IBM; I came top of the "individual authors with most commits" list, being apparently responsible for 7% of all QEMU patches this year :-)
* KVM on POWER/PPC
There were several talks about KVM on PPC architectures; interestingly this is seeing use not just on the server end but also in the embedded/realtime space (including a talk from Freescale where they said they are working on KVM on embedded PPC because of customer demand for KVM). It was also reassuring to see that another architecture has preceded us in shaking out x86-isms from KVM.
* KVM Tool
This has got headlines recently as a potential replacement for the userspace launcher/device model role which QEMU currently plays when starting guest OSes under KVM. It's intended to be minimal and lightweight and only to run Linux guests (with paravirtualised devices for most purposes). The general reaction seemed to be that although the implementation is currently minimal it will become larger and bloatier as they add features off their wishlist. There's also some ill-feeling about the effective namespace grab of calling the userspace binary "kvm". From an ARM-centric point of view we can just wait and see whether it gets much traction. Possibly it may turn into a testbed for technology which is easier to develop on than the 'mature' QEMU which has to deal with backwards compatibility and supporting users.
* QEMU Object Model and Device Model issues and redesign
For me one of the most important strands of conversation at the conference was replacing QEMU's device model abstraction with something better. QEMU's current device model abstraction is "qdev"; this is the (vaguely object-oriented) framework which lets you create devices, configure them and connect them together. It models the world as a tree: a root device exposes a bus, to which child devices can connect; those child devices may expose further buses, and so on. This works quite well in the PC world where mostly you're interested in plugging in USB devices, PCI cards, etc; it is rather less well matched to the embedded board models where things are much less hierarchical. qdev's major flaws include: + insists on bus hierarchy, but not everything is a bus, and in any case there are often several trees (memory transactions, clock, interrupts) which don't necessarily coincide + no support for composition ("device foo is actually devices bar and baz glued into one box") + just barely supports having devices expose signal (gpio/irq) lines and memory regions (typically registers), but doesn't let you give them useful names, so you have to access them by index number We spent just about all of Thursday's hacking session going through this. I felt we got good agreement on the problems, and perhaps 80-90% agreement on Anthony Liguori's proposed new QEMU Object Model as a solution to them; some loose ends still need to be worked through.
* LinuxCon NA
KVM Forum was colocated with LinuxCon NA this year. My opinion (which seemed to be shared with the other Linaro attendees I talked to about it) was that LinuxCon NA suffered from being not very technical and not very focused -- it wasn't clear to me who they thought their target audience was. A few points of interest: + Linus Torvalds' keynote was reported in some places as more complaints about ARM hardware but I actually thought it was pretty positive about the progress we're making in sorting out the issues + Matthew Garrett's talk about x86 platform drivers (those things that deal with LEDs, funny keys, batteries and other odd laptop hardware) revealed that actually PC hardware manufacturers do just as much random non-standard undocumented silliness, it's just that accident of history has limited them to only doing so in the minor bits at the edges...
-- PMM
On Tue, Aug 30, 2011 at 01:14:41PM +0100, Peter Maydell wrote:
We spent just about all of Thursday's hacking session going through this. I felt we got good agreement on the problems, and perhaps 80-90% agreement on Anthony Liguori's proposed new QEMU Object Model as a solution to them; some loose ends still need to be worked through.
Thanks for sending this in. A question about the impact of a transition here: does this require existing platforms to be ported across, or will it live in parallel with qdev?
On 1 September 2011 14:11, Christian Robottom Reis kiko@linaro.org wrote:
On Tue, Aug 30, 2011 at 01:14:41PM +0100, Peter Maydell wrote:
We spent just about all of Thursday's hacking session going through this. I felt we got good agreement on the problems, and perhaps 80-90% agreement on Anthony Liguori's proposed new QEMU Object Model as a solution to them; some loose ends still need to be worked through.
Thanks for sending this in. A question about the impact of a transition here: does this require existing platforms to be ported across, or will it live in parallel with qdev?
The aim would be to port everything across -- qemu has too many half-finished transitions already, and I think that in order to get acceptance the new device model needs to come with a transition plan. (I suspect this may involve some of the ancient and unmaintained platforms getting deleted if nobody steps up to maintain them.)
-- PMM
linaro-toolchain@lists.linaro.org