
README for xenner
=================

summary
-------

xenner is a utility which is able to boot xen paravirtualized kernels,
without the xen hypervisor, using kvm instead.

Check USAGE for informations on how to use these bits.


design
------

xenner runs the xen guest kernel and a small xen emulator together as
kvm guest.  The emulator does the bare minimum needed to make the
guest kernel happy.  As we run in a vmx container anyway we don't
bother checking anything unless absolutely needed.  We also don't try
to protect the emulator memory against the kernel.  xenner itself
obviously can't trust the guest and must check things carefully to
make sure the guest can't break out.

Only domU functionality will be implemented.


status
------

CPU emulation works quite well now.  Boots all three x86 variants
(32bit non-pae, 32bit pae and 64bit) of xen paravirtualized kernels.
UP runs fine, SMP is unstable.

event channels are working (implemented as daemon).

faked libxc library exists, redirecting evtchn calls to the daemon,
implementing grant table userspace device functions, making userspace
backend drivers work.  Tested so far:
 * xenstored (well, not really a backend driver ...)
 * xenconsoled
 * xen-sdlfb
 * xen-vncfb
 * "qemu-dm -M xenpv" (replacing xen-*fb in xen 3.2.0).

blkback and netback are working.  Both are implemented as userspace
daemons on top of libxc.  They work with both xenners and Xens version
of the libxc library, i.e. they can also work as userspace backend
drivers for Xen.

Tested on both 32bit and 64bit hosts.

Lots of bugs probably.

Sanity checks might be  missing (see the warning above ...).


enjoy,
  Gerd

-- 
Gerd Hoffmann <kraxel@redhat.com>
