[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v7 00/32] Introduce HVM without dm and new boot ABI



This series is split in the following order:

 - Patch 1 is a fix for the compat layer VCPUOP_initialise hypercall.
 - Patches from 2 to 11 switch HVM domain contruction to use the xc_dom_*
   family of functions, like they are used to build PV domains. This batch
   of patches can go in regardless of the status of the rest of the series
   IMHO, and in fact would help me quite a lot with the rebasing.
 - Patches from 12 to 24 allow disabling the devices emulated inside of Xen, 
   with the exception of patch 13 which is a bugfix for the vlapic.
 - Patches from 25 to 32 introduce the creation of HVM guests without a
   device model and without the devices emulated inside of Xen.

This series has been successfully tested on the following hardware:

 - Intel Xeon W3550.
 - AMD Opteron 4184.

With both hap=0 and hap=1 in the configuration file. I've been able to boot
a SMP guest in this mode with a virtual hard drive and a virtual network
card, all working fine AFAICT. Migration/save/restore has also been tested 
with a SMP guest using the FreeBSD kernel provided below.

The series has been compile tested on arm32.

The series can also be found in the following git repo:

git://xenbits.xen.org/people/royger/xen.git branch hvm_without_dm_v7

And for the FreeBSD part:

git://xenbits.xen.org/people/royger/freebsd.git branch new_entry_point_v5

In case someone wants to give it a try, I've uploaded a FreeBSD kernel that
should work when booted into this mode:

https://people.freebsd.org/~royger/kernel_no_dm

This FreeBSD kernel starts the APs in long mode. There are examples for 
starting the APs in other modes in the sys/x86/xen/pv.c file.

The config file that I've used is:

<config>
kernel="/path/to/kernel_no_dm"

builder="hvm"
device_model_version="none"

memory=128
vcpus=2
name = "freebsd"
</config>

Of course if you have a FreeBSD disk already setup it can also be added to
the configuration file, and the following line can be used to point FreeBSD
to the disk:

extra="vfs.root.mountfrom=ufs:/dev/ufsid/<disk_id>"

As usual, each patch has it's own changelog.

  N  01/32 xen/vcpu: add missing dummy_vcpu_info to compat
AW   02/32 libxc: split x86 HVM setup_guest into smaller
AW   03/32 libxc: unify xc_dom_p2m_{host/guest}
AW   04/32 libxc: introduce the notion of a container type
AW   05/32 libxc: introduce a domain loader for HVM guest
AW   06/32 libxc: make arch_setup_meminit a xc_dom_arch hook
AW   07/32 libxc: make arch_setup_boot{init/late} xc_dom_arch
AW   08/32 libxc: rework BSP initialization
AW M 09/32 libxc: introduce a xc_dom_arch for hvm-3.0-x86_32
AW M 10/32 libxl: switch HVM domain building to use xc_dom_*
AW   11/32 libxc: remove dead HVM building code
 W M 12/32 xen/x86: add bitmap of enabled emulated devices
  N  13/32 xen/vlapic: fixes for HVM code when running without
   M 14/32 xen/x86: allow disabling the emulated local apic
A  M 15/32 xen/x86: allow disabling the emulated HPET
   M 16/32 xen/x86: allow disabling the pmtimer
A  M 17/32 xen/x86: allow disabling the emulated RTC
A  M 18/32 xen/x86: allow disabling the emulated IO APIC
A  M 19/32 xen/x86: allow disabling the emulated PIC
   M 20/32 xen/x86: set the vPMU interface based on the
A    21/32 xen/x86: allow disabling the emulated VGA
A    22/32 xen/x86: allow disabling the emulated IOMMU
  N  23/32 xen/x86: make sure the HVM callback vector is
A    24/32 xen/x86: allow disabling all emulated devices inside
AW M 25/32 elfnotes: intorduce a new PHYS_ENTRY elfnote
AW   26/32 libxc: allow creating domains without emulated
   M 27/32 xen/x86: allow HVM guests to use hypercalls to bring *
A    28/32 xenconsole: try to attach to PV console if HVM fails
   M 29/32 libxc/xen: introduce a start info structure for
AW   30/32 libxc: switch xc_dom_elfloader to be used with
A    31/32 libxl: allow the creation of HVM domains without a
   M 32/32 libxl: add support for migrating HVM guests without

A = Acked/Reviewed by Andrew Cooper.
W = Acked/Reviewed by Wei Liu.
N = New in this version.
M = Modified in this version.

* Regarding patch 27/32, with the fixes in order to support the compat layer 
the code is getting quite convoluted, so I think I would rather introduce a 
new VCPUOP_hvm_initialise hypercall, LMKWYT.

Thanks, Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.