Parent

KVM Mini Summit - 4/6 February 2013

Attendees

name

company

Andre Przywara

Linaro

Andrea Gallo

Linaro

Andrew Wafaa

ARM

Anup Patel

Linaro

Christoffer Dall

Columbia University

Deepak Saxena

Linaro

Fred Konrad

GreenSocs

Geoff Levand

Linaro

Ilias Biris

Linaro

John Rigby

Linaro

Marc Zyngier

ARM

Richard Phelan

ARM

Mark Burton

GreenSocs

Peter Maydell

Linaro

Pranavkumar Sawargaonkar

Linaro

Rob Herring

Calxeda

Serge Broslavsky

Linaro

Agenda

Day 1 - 4 February 2013, 16-17:30 UTC

  1. Current status of the code - perhaps a quick walkthrough of the code itself
    • KVM ARM v7
    • KVM ARM v8
    • IO Virtualization
    • virtio
    • IOMMU support
  2. Current process of maintainership
  3. Outstanding tasks or development on v7 - with priorities
  4. What Linaro can do for development / testing (and by when)

Day 2 - 6 February 2013, 16-17:30 UTC

  1. Still missing something after the day 1?
  2. QEMU - what is missing?
    • ARMv7
    • ARMv8
  3. Requirements for QEMU ARMv8
  4. kvmtool - where does it fit?
  5. Ideas for LCA13

Artifacts

Status of Virtualization components

legend

blocked

not started

work started

good progress

completed

not relevant


component

status

ARM v7

ARM v8

bootloaders

boot kernel in Hyp mode

missing

missing

KVM

core

ready, being pulled into the mainline 3.9 kernel, requires some tricky patch merging in arm-soc tree

prototype in Marc's tree, to be pushed upstream after KVM ARMv7 is accepted; on a feature parity with ARM v7 version; targeting 3.10 kernel

migration

missing: GIC save/restore, cross version, cross hardware (e.g. Cortex A7 <-> A15) migration

missing, including a cross version migration

testing

missing

missing

debugging support

gdb breakpoints are missing

missing

performance profiling and optimization

missing

missing

feature parity with KVM x86

to check

to check

IOMMU virtualization

missing; supported by OMAP5 HW

missing; ARM is working on a model

virtio - kernel side

ready

missing

UEFI support

missing; open

missing

big.LITTLE support

missing

missing

Power Management

missing

missing

run 32/64bit guests

not relevant

missing

support for different page sizes

not relevant

missing

mach-virt

missing

missing

KVM-only QEMU

core

ready, being upstreamed

missing; kvmtool is used meanwhile

virtio-mmio

prerequisites to be relased in QEMU v1.5; implementation work to follow

missing; kvmtool is used meanwhile

kvmtool

status unknown; not needed

maintained by ARM engineers, nothing to be done additionally

QEMU user mode

works

missing

QEMU system mode

core

works

missing

TrustZone support

no demand

no demand

virtualization extensions support

no demand

no demand

Work Items

component

work item

priority

applicable for

ARM v7

ARM v8

KVM

virtio

Work is done in QEMU: we had to do a lot of refactoring on the QEMU side as a prerequisite; this will go upstream in QEMU 1.5; we then have a good base for adding the virtio-mmio support. Need to think about how this should interact with the board level model (probably driven from device tree, or possibly modifying device tree based on command line options).

high

yes

yes

migration

Attack migration related issues (ARMv7, as it’s not blocked): several subparts here, kernel side VGIC and timer save/load is the first part; QEMU side more complicated.

high

yes, CARD-363

yes, CARD-363

UEFI

Interaction with UEFI: should VMs start by booting a UEFI bootrom? Virtio support in UEFI?

medium

maybe

maybe

big.LITTLE

big.LITTLE support (both - running on a b.L host and emulating the b.L guest) and VM power management is uncharted waters at this point...

low

maybe

maybe

different page sizes

Depends on a series of cleanups to KVM/core so code can be shared between ARMv7 and ARMv8. Cleanups will go through Christoffer’s tree, and a review of the v8 patches will follow and is required before an upstream merge.

medium

maybe

yes

other

Investigate - are there any “wider ecosystem” things we need to do (e.g. libvirt or equivalents) to get KVM/ARM working in the software stacks we care about?

high

maybe

maybe

automated testing

Automated testing (LAVA) with regression detection. Here is what Linaro have targeted for 2013.02.

top

yes, CARD-233

yes, CARD-346

QEMU

core

Reach feature parity with existing ARM v7 QEMU.

medium

no

yes, CARD-214

ARM ISA

2 bit instruction emulation cleanup (based on Christoffer’s patches).

medium

no

yes

mach-virt

Need to look at whether this is a better base for the server use case than emulating a versatile express board. Small patch set, but carries same dependencies as VGIC/Timers patches, also targeted for 3.9. An idea is floating around to make mach-virt a generic platform, so the default infrastructure is mach-virt and not something explicitly selected. Arnd has sent some patches to this effect.

medium

yes

yes

bootloaders

Need to get bootloaders patched to support KVM by booting the kernel in Hyp mode. There are patches floating around for Arndale but we should clean them up and get them properly upstream. Similarly we need to get the support for bootloaders for other platforms we want to support. Linaro should provide that at least for Arndale and vexpress. (Linaro images do not use u-boot on vexpress so not sure how to test this.)

top

yes, CARD-361

yes

libvirt

Need to test that libvirt works properly with KVM on ARM for v7 and v8 and fix any problems found.

high

yes, CARD-364

yes, CARD-364

guest images

images

Build Linaro images for guests (requires investigation of bootloader support for guests).

low

maybe

maybe

documentation

Guest image build howto documentation.

low

maybe

maybe

Ideas for Linaro Connect Asia 2013

area

idea

audience

presenter(s)

useful?

Virtualization as a whole

Mini summit on virtualization (morning session)

everyone

Marc Zyngier, Peter Maydell

yes

Architecture/components and the big picture

What's been done and what were the challenges

Ongoing development items

Future development/challenges

VM migration

Live migration - what is required (afternoon session)

engineers

Marc Zyngier, Peter Maydell

very!

KVM code walk through

Source code level details on KVM architecture (afternoon session)

engineers

Marc Zyngier, Peter Maydell

not really

KVM bring-up

How to get KVM on your machine (afternoon session)

engineers

Marc Zyngier, Peter Maydell

not really

LEG/Engineering/Virtualization/201302MiniSummit (last modified 2013-03-13 16:34:01)