Feature Name
Summary
Dom0 support for pvops-based kernel-xen .
Owner
- Name: EduardoHabkost, MarkMcLoughlin
Others involved: Stephen Tweedie, Chris Wright, Juan Quintela, Markus Armbruster, Glauber Costa, DanielBerrange, ...
Current status
- Targeted release: Fedora 10
- Last updated: 2008-03-17
- Percentage of completion: 30%
Tracker bug for this feature: [1]
i386 Dom0
- Not yet in rawhide kernel-xen
- Boots, though bare metal is now non-functional until hacks are cleaned up
- DMA (and thus real hardware drivers) working (if it doesn't straddle page boundaries)
- Core needs major cleanup
- Status at http://lists.xensource.com/archives/html/xen-devel/2008-02/msg00047.html
- http://lists.xensource.com/archives/html/xen-devel/2008-02/msg00242.html
- No backend drivers yet
- Conflicts with x86_64 DomU patches
x86_64 Dom0
- No active work yet....
Detailed Description
See Features/XenPvops for a rationale. This feature just continues to paravirt_ops Xen effort to bring it back to feature parity with Fedora 8 Xen.
Scope
Work items:
- Clean up and finish Dom0 boot patches (StephenTweedie, JuanQuintela, MarkMcLoughlin)
- Backend drivers blkback/blktap and netback requiring: (StephenTweedie, JuanQuintela, MarkMcLoughlin)
- Some ballooning bits
- Foreign pages (i.e. PAGE_FOREIGN and VM_FOREIGN)
- zap_pte()
- Grant table ops
- Save / restore
- Memory ballooning
- x86_64: (DONE)
- Latest x86.git has useful patches on paravirt_ops pagetable handling
- ia32 emulation support
- SMP support
- Debug other problems that may appear
- Cleanup of code for inclusion upstream
- Some code need to be changed to be enabled at runtime if running under xen, instead of being enabled at compile time (pvops infra-structure may need to be extended to make it possible, on some cases)
Merged kernel: (DONE)
- Merge kernel-xen into 'kernel' RPM (MarkMcLoughlin)
- Make bzImage bootable so the same kernel can boot on Xen and bare-metal
- Patches for DomU bzImage boot are in xen-unstable and x86.git
- Adding Dom0 bzImage boot to the HV is a bit harder
- Remove images/xen/{initrd,vmlinux} from install trees (JeremyKatz ?)
- Make 'new-kernel-pkg' aware of HYPERVISOR setting in /etc/sysconfig/xen (DanielBerrange)
- Make virt-install use images/pxeboot/{initrd,vmlinux} for DomU installs (DanielBerrange)
- Make 'xen' SRPM build a xen-hypervisor containing the HV (DanielBerrange)
Nice to have:
- CPU hotplug
- Migration support
- 32-on-64 support (both DomU and Dom0)
- LiveCD with pvops enabled kernel as DomU ?
- Kexec on pvops dom0
Unlikely to get: (ie feature regressions)
- PCI device passthrough to DomU
Finished items:
- x86_64 support upstream (see above)
- Merged kernel (see above)
- First-cut of Dom0 boot (StephenTweedie, JuanQuintela, MarkMcLoughlin)
- ACPI
- ioremap
- IRQ routing
- DMA/contiguous pages
- MTRR
- privcmd interface, other /proc/xen bits, /sys/hypervisor, /dev/evtchn (MarkMcLoughlin)
Test Plan
- Install a Fedora 10 host/Dom0 system
- Turn on Xen Hypervisor by setting 'HYPERVISOR=/boot/xen-3.2.gz' in /etc/sysconfig/kernel and running some tool (TBD)
- Turn on Xen Userspace by running 'chkconfig xend on'
- Reboot
- Observe presence of Xen via /sys/hypervisor/
- Run 'xm list' and observe Domain-0
- Use virt-install to deploy a Fedora 9/10 paravirt guest
- Use virt-install to deploy a Fedora 8 paravirt guest
- Use virt-install to deploy a Fedora 8 fullyvirt guest
- Use 'virsh' to save & restore a PV guest and HVM guest
- Balloon down memory of a guest with virsh.
User Experience
- Xen-ified kernel has same version as bare metal kernel
- All kernel updates support Xen
- All hardware that works in baremetal works in Xen Dom0
- No separate kernel RPM required for Xen DomU or Dom0
- Can enable/disable use of HV via a /etc/sysconfig setting
Dependencies
- Update to anaconda to not build a 'images/xen/' directory anymore
- Update to 'new-kernel-pkg' to know how to install HV
Contingency Plan
If Dom0 support is still not ready for Fedora 10 GA, the options are:
- Continue to ship with only DomU support
- Drop Xen support altogether