[LEDE-DEV] Xen PVHVM drivers

Luiz Angelo Daros de Luca luizluca at gmail.com
Thu Jul 6 19:53:58 PDT 2017


2017-07-06 21:36 GMT-03:00 W. Michael Petullo <mike at flyn.org>:
> I have been using OpenWrt to build HVM DomU guests under Xen for some
> time. From what I can tell, Xen's PVHVM drivers (namely, netfront and
> blkfront) are not available on my OpenWrt DomU guests, and thus the
> guests rely on the slower QEMU-based drivers. As a result, the network
> and disk performance of these DomU guests is not optimal.
>
> I did notice that Felix removed the Xen DomU subtarget in January.
> Would it be possible to return support for Xen's front-end virtual device
> drivers for use with HVM guests?
>
> --
> Mike

Mike,

I'm also a user of OpenWRT as Xen DomU. However, I didn't try it with
LEDE (yet).

AFAIK, there is no need for a kernel-xen variation. So, no need for a
special target (that got removed).
Xen only needs a kernel with pv-ops (generically support for different
hypervisors) and xen drivers in order
to run it as DomU or HVM.

I just checked the last kernel I built for x86/generic (not x86/64)
and looking at kernel config (inside builddir), I have, by default:

CONFIG_PARAVIRT=y
CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PVHVM=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_DEBUG_FS=y
CONFIG_PCI_XEN=y
CONFIG_XEN_PCIDEV_FRONTEND=y
CONFIG_XEN_BLKDEV_FRONTEND=y
CONFIG_XEN_SCSI_FRONTEND=y
CONFIG_XEN_NETDEV_FRONTEND=y
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y
CONFIG_HVC_XEN=y
CONFIG_HVC_XEN_FRONTEND=y
CONFIG_XEN_WDT=y
CONFIG_XEN_FBDEV_FRONTEND=y
CONFIG_XEN_BALLOON=y
CONFIG_XEN_SCRUB_PAGES=y
CONFIG_XEN_DEV_EVTCHN=y
CONFIG_XENFS=y
CONFIG_XEN_COMPAT_XENFS=y
CONFIG_XEN_SYS_HYPERVISOR=y
CONFIG_XEN_XENBUS_FRONTEND=y
CONFIG_XEN_GNTDEV=y
CONFIG_XEN_GRANT_DEV_ALLOC=y
CONFIG_SWIOTLB_XEN=y
CONFIG_XEN_PRIVCMD=y
CONFIG_XEN_ACPI_PROCESSOR=y
CONFIG_XEN_HAVE_PVMMU=y
CONFIG_XEN_AUTO_XLATE=y
CONFIG_XEN_ACPI=y
CONFIG_XEN_SYMS=y
CONFIG_XEN_HAVE_VPMU=y

I also checked modules.builtin:

kernel/drivers/block/xen-blkfront.ko
kernel/drivers/input/misc/xen-kbdfront.ko
kernel/drivers/net/xen-netfront.ko
kernel/drivers/pci/xen-pcifront.ko
kernel/drivers/scsi/xen-scsifront.ko
kernel/drivers/video/fbdev/xen-fbfront.ko
kernel/drivers/watchdog/xen_wdt.ko
kernel/drivers/xen/xen-evtchn.ko
kernel/drivers/xen/xen-gntdev.ko
kernel/drivers/xen/xen-gntalloc.ko
kernel/drivers/xen/xen-privcmd.ko
kernel/drivers/xen/xen-acpi-processor.ko
kernel/drivers/xen/xenbus/xenbus_probe_frontend.ko
kernel/drivers/xen/xenfs/xenfs.ko

So, it seems that all needed xen drivers are, not only compiled, but
built into the kernel.
So, no module (or package) is needed. As LEDE does not use initrd, at
least blkdev frontend must be
builtin. Other drivers like net might also work as modules.

LEDE even selects CONFIG_XEN_DOM0, which would allow it to host other
domU. It would be
an interesting use for LEDE though. However, LEDE does not compile the
net/blk backend
drivers nor xen-tools that are normally needed for domUs.

As I said, I did not tested current LEDE kernel with Xen. Please,
check your dmesg.
It normally shows xen drivers getting loaded and activating (or
deactivating when not running under xen).

x86/64 target might be better for a xen domU. Since xen 4.3, the
hypervisor requires x86_64. So, you are probably
running on a x86_64 machine. However, I only saw xen config here:

https://github.com/lede-project/source/blob/master/target/linux/x86/generic/config-default

not here:

https://github.com/lede-project/source/blob/master/target/linux/x86/64/config-default

x86/generic might work out of box. x86/64 lacks drivers, that might be
your problem right now.

Regads,

---
     Luiz Angelo Daros de Luca, Me.
            luizluca at gmail.com



More information about the Lede-dev mailing list