attilio rao [email protected] freebsd developers summit 2012 freebsd xen status update

13
Attilio Rao [email protected] FreeBSD developers summit 2012 FreeBSD Xen status update

Upload: dorthy-nicholson

Post on 29-Dec-2015

232 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

Attilio [email protected]

FreeBSD developers summit 2012

FreeBSD Xen status update

Page 2: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

XEN

Xen is an hypervisor running in place of the operating system running multiple guest operating systems concurrently. Xen three main components are:• Xen hypervisor• Dom0, privileged domain accessing hw and managing the guest domains• DomU, guest domains

Guest domains can run as:• Paravirtualized guests (PV guests)• HVM guests with hardware help (Hardware Virtual Machine)• PVHVM guests – HVM guests running paravirtualized drivers: faster performance

Page 3: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

XEN 4.2

Release plan:• http://lists.xen.org/archives/html/xen-devel/2012-03/msg00793.html • 19 March -- TODO list locked down• 2 April -- Feature Freeze• Mid/Late April -- First release candidate• Weekly -- RCN+1 until it is ready (likely 8 RCs)

Page 4: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

XEN 4.2

New features xentools:• xl used by default (replacing xend)• oxenstored: xenstored written in ocaml (improved scalability)• libvchan support (cross domain byte-stream comms library)• Remus compression for memory images

Page 5: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

XEN 4.2

New features hypervisor:• Multiple PCI segment support• AMD SVM "DecodeAssist" support• Scheduler timeslice_ms and ratelimit_us• EFI support for HVM• Per-device interrupt remapping• Support for pvhvm guest direct pirq injection• Improvements to paging and sharing, enabling higher VM density for VDI use-cases

Page 6: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

Current FreeBSD support:• i386 DomU PV support• i386 DomU HVM support• amd64 DomU HVM support

Developers working on Xen support so far: cpercival, gibbs, kenm, kmacy, peter, rrs, rwatson et al.

FreeBSD Xen support: current

Page 7: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

Missing:• Complete Dom0 support (amd64, i386, arm?)• XEN hypervisor integration in FreeBSD (toolstack, ring0, etc.)• amd64 DomU PV support• Improvements to existing PV (architecture agnostic) drivers• HVM and PVHVM performance improvements

Cherry Mathew (cherry@) being sponsored by SpectraLogic for further enhachements .Justin Gibbs (gibbs@) main contributor in the last months.

FreeBSD Xen support: current

Page 8: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

Code developed on external, private repositories and merged in FreeBSD subversion branch from time to time:svn://svn.freebsd.org/base/projects/amd64_xen_pv/

Milestones:• Booting amd64 PV guest single-user mode (with full debugger support on)• Booting amd64 PV guest only UP• Booting amd64 PV guest in full SMP mode

Already completed (amd64 pv):• Kernel bootstrap operations (locore.s, machdep.c, etc.)• Base x86 state structures (interrupts/IDT, trap mappings, GDT and MMU initialization)

FreeBSD Xen support: amd64 PV

Page 9: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

In order to fully support UP guests:• Implementing events subsystem• Implementing console driver on top of the events• Adding debugger support using the console• Pmap support rework:

Give the kernel its own address space rather than sharing with the userland (running at the same ring) Override direct mapping because the hypervisor cannot guarantee >4k pages

• More MD glue (examples: scheduler support, cpu_switch())

Current code needs more reviews!

FreeBSD Xen support: amd64 PV

Page 10: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

In order to fully support SMP guests:• MP CPUs probing and configuration• tls support• ipi implementation• Derive event, timer and IPI framework from HVM (unified implementation)• More front-end drivers to increase PV performance:

PV timer PV SCSI PV USB PCI-passthrough Net frontend driver (requires special care) others

FreeBSD Xen support: amd64 PV

Page 11: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

Once amd64 fully supports PV the Dom0 necessary work is summarized as:• backend drivers (blk, net, pci)• dom0 bootup (handling mappings of sharedinfo in guests)• messaging conventions between DomU and Dom0 (NetBSD can be helpful)• making a port of the Xen hypervisor to live in ports tree

Citrix is already working in making toolstack less Linux-centric by getting rid of udev legacy

FreeBSD Xen support: Dom0

Page 12: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

Performance Enhancements• HVM PV Optimized Timer and Event Channel support is up and running

Avoids ~4 VMEXIT traps per-interrupt PV and HVM PV implementations need to be merged

• HVM PV IPI and MSI support is coming soon Avoids ~2 VMEXIT traps per-interrupt

• Benefits: Per-CPU high resolution event timer source. More accurate time keeping.  Clock drift has been eliminated. Reduced CPU overhead and latency in physical interrupt delivery Better SMP scalability Full PV interrupt code will be SMP capable/safe.

FreeBSD Xen support: PVHVM

Page 13: Attilio Rao attilio@FreeBSD.org FreeBSD developers summit 2012 FreeBSD Xen status update

Please consider developing a PV driver and start hacking!

FreeBSD Xen support: contribute