Xen 4.5 RC1 test instructions: Difference between revisions
Rcpavlicek (talk | contribs) m (→Getting RC1) |
(RPMs) |
||
(24 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
= DRAFT DRAFT = |
|||
= What needs to be tested = |
= What needs to be tested = |
||
Line 19: | Line 17: | ||
git clone git://xenbits.xen.org/xen.git ; cd xen ; git checkout 4.5.0-rc1 |
git clone git://xenbits.xen.org/xen.git ; cd xen ; git checkout 4.5.0-rc1 |
||
* '''tarball''': here it is a 4.5.0 RC1 [http://bits.xensource.com/oss-xen/release/4.5.0-rc1/xen-4.5.0-rc1.tar.gz tarball] (and its [http://bits.xensource.com/oss-xen/release/4.5.0-rc1/xen-4.5.0-rc1.tar.gz.sig signature]) |
* '''tarball''': here it is a 4.5.0 RC1 [http://bits.xensource.com/oss-xen/release/4.5.0-rc1/xen-4.5.0-rc1.tar.gz tarball] (and its [http://bits.xensource.com/oss-xen/release/4.5.0-rc1/xen-4.5.0-rc1.tar.gz.sig signature]) |
||
* '''RPMS''': Michael Young graciously provided temporary Xen 4.5.0-rc4 RPMs for both Fedora 20 and Fedora 21. They are at [http://koji.fedoraproject.org/koji/taskinfo?taskID=8400960 Koji Fedora 20 temporary build] or [http://koji.fedoraproject.org/koji/taskinfo?taskID=8401296 Koji Fedora 21 build]. You can use [http://people.redhat.com/mikeb/scripts/download-scratch.py an scratch downloader to get all the RPMs] and its command line would be: <code>./download-scratch.py -t 8400960</code>. Since ALL 'virt-manager','virsh' and 'qemu-system-x86' are built against Xen 4.4, you will have dependency problems. You can use [http://koji.fedoraproject.org/koji/taskinfo?taskID=8401579 xen-compat-libs] if you want to re-install back the old Xen libraries. |
|||
* '''RPM Packages:''' there is a temporary build of 4.5.0-RC1 RPMs, for Fedora 21 (thanks to Michael Young for doing this): XYZ |
|||
== Building == |
== Building == |
||
Instructions are available for building Xen on [[Compiling_Xen_From_Source|Linux]], [[Compiling_Xen_From_Source_on_NetBSD|NetBSD]], and [[FreeBSD_Dom0|FreeBSD]] |
Instructions are available for building Xen on [[Compiling_Xen_From_Source|Linux]], [[Compiling_Xen_From_Source_on_NetBSD|NetBSD]], and [[FreeBSD_Dom0|FreeBSD]] |
||
= Known issues = |
|||
== Systemd integration == |
|||
Affects CentOS7, SLES12, Fedora Core 21 and Debian Jessie. Xen source contains systemd files that can be used to configure the various run-time services. In the past the distributions would carry their own version of it - but now we host them. This is not yet complete - [http://lists.xenproject.org/archives/html/xen-devel/2014-10/msg03064.html patches] for this are being worked on for RC2. |
|||
== Stubdomains build issues == |
|||
The stubdomains will not build. Fix is in staging (and will make RC2) or [http://lists.xen.org/archives/html/xen-devel/2014-10/msg02925.html stubdom/Makefile should use QEMU_TRADITIONAL_LOC] |
|||
== Building against libxl (outside code) == |
|||
If you are building against libxl for any APIs before Xen 4.5 you will encounter building errors. |
|||
Patch for [http://lists.xen.org/archives/html/xen-devel/2014-10/msg02022.html this issue] will be in RC2. |
|||
== Migrating large Windows guests can cause WMI service to hang == |
|||
Patch is in 'staging' and will be in RC2. |
|||
== pygrub parsing grub1 problems == |
|||
pygrub (Python code) has problems parsing grub.cfg file and hence cannot boot PV guests. |
|||
= Test instructions = |
= Test instructions = |
||
Line 44: | Line 65: | ||
Follow |
Follow |
||
[[Xen_ARM_with_Virtualization_Extensions]] |
|||
[[Xen_ARMv7_with_Virtualization_Extensions]] |
|||
http://wiki.xen.org/wiki/Xen_ARMv7_with_Virtualization_Extensions |
|||
=== MMIO passthrough === |
|||
To allow auto-translated domains to directly access specific hardware |
|||
I/O memory pages pertaining a device that is not IOMMU-protected, use the |
|||
iomem configuration option, whose usage is described in the following paragraph. |
|||
<pre> |
|||
iomem=[ "IOMEM_START,NUM_PAGES[@GFN]", "IOMEM_START,NUM_PAGES[@GFN]", ... ] |
|||
</pre> |
|||
IOMEM_START is a physical page number. NUM_PAGES is the number of pages |
|||
beginning with START_PAGE> to allow access to. GFN specifies the guest frame |
|||
number where the mapping will start in the domU's address space. If GFN is |
|||
not specified, the mapping will be performed using IOMEM_START as a start |
|||
in the domU's address space, therefore performing an 1:1 mapping as default. |
|||
All of these values must be given in hexadecimal. |
|||
== Specific x86 Test Instructions == |
== Specific x86 Test Instructions == |
||
=== |
=== PVH === |
||
Xen 4.4 added support to run certain PV guests in PVH mode. This requires the operating system to support a subset of PV ABI, as such only two exist: |
Xen 4.4 added support to run certain PV guests in PVH mode. This requires the operating system to support a subset of PV ABI, as such only two exist: |
||
* [[Linux_PVH|Linux 3.18-rc1]] and later (The previous versions of Linux had an ABI violation so they do not work), |
* [[Linux_PVH|Linux 3.18-rc1]] and later (The previous versions of Linux had an ABI violation so they do not work), |
||
* [[FreeBSD_PVH|FreeBSD guest]] wiki. |
|||
* [[FreeBSD_Dom0|FreeBSD]] out of Roger's branch (based on stable/10 snapshot). |
|||
* [[FreeBSD_Dom0|FreeBSD initial domain support]] out of Roger's branch (based on stable/10 snapshot). |
|||
In Xen 4.5 we also added the support to run those guests as the initial domain (dom0). Unfortunately the work to make this work on AMD did not make, so it only works on Intel. To use this an extra parameter on Xen command line is |
In Xen 4.5 we also added the support to run those guests as the initial domain (dom0). Unfortunately the work to make this work on AMD did not make, so it only works on Intel. To use this an extra parameter on Xen command line is |
||
required: '''dom0pvh=1'''. |
|||
=== Fedora === |
=== Fedora === |
||
Line 62: | Line 101: | ||
test-case: |
test-case: |
||
* |
* [https://fedoraproject.org/wiki/QA:Testcase_Boot_Methods_Xen_Para_Virt QA Testcases for PV guests] |
||
Note that the RPM mentioned above has conflicts with the 'virt' type tools in Fedora 21 (as they are built against Xen 4.4). One workaround is to do after installing the RPMs: |
|||
=== EFI === |
|||
<pre> |
|||
Xen 4.3 and later can be built as EFI binaries. Fedora 20 and later, if installed |
|||
cd /usr/lib64 |
|||
as EFI will provide those in /boot/EFI/Fedora directory as "xen-x.y.z.efi". |
|||
ln -s libxenlight.so.4.5 libxenlight.so.4.4 |
|||
ln -s libxenctrl.so.4.5 libxenctrl.so.4.4 |
|||
</pre> |
|||
After that restart libvirtd: |
|||
<pre> |
|||
systemctl restart libvirtd |
|||
</pre> |
|||
Your launch of guests might still not work with libvirt, and you can export the configuration to the |
|||
Or you can built it by hand using GCC crosstool chain (hard) |
|||
native format and use '''xl''' to launch the guests: |
|||
(TODO LINKL) |
|||
<pre> |
|||
* Explain how to put xen.efi and xen.cfg in /EFI/boot/ directory |
|||
[root@localhost ~]# virsh -c xen:/// dumpxml F21-PV-32 > F21-PV-32.xml |
|||
* Explain how to use grub2 chainloader [EFI -> GRUB2 -> [pass EFI data] -> Xen.efi [loads vmlinuz and initramfs] |
|||
[root@localhost ~]# virsh -c xen:/// domxml-to-native xen-xm F21-PV-32.xml |
|||
* Explain multiboot2 (EFI -> GRUB2 -> [passes data in multibootv2+EFI] -> Xen.gz -> Linux & initramfs] |
|||
name = "F21-PV-32" |
|||
uuid = "3c2c560f-61d3-42d3-9152-77f13de80686" |
|||
maxmem = 1024 |
|||
memory = 1024 |
|||
vcpus = 1 |
|||
bootloader = "/usr/bin/pygrub" |
|||
localtime = 0 |
|||
on_poweroff = "destroy" |
|||
on_reboot = "restart" |
|||
on_crash = "restart" |
|||
vfb = [ "type=vnc,vncunused=1,keymap=en-us" ] |
|||
vif = [ "mac=00:16:3e:ad:cc:c6,bridge=xenbr0,script=vif-bridge" ] |
|||
disk = [ "phy:/dev/g/F21-PV-32,xvda,w" ] |
|||
[root@localhost ~]# virsh -c xen:/// domxml-to-native xen-xm F21-PV-32.xml > F21-PV-32.xm |
|||
[[http://lists.xenproject.org/archives/html/xen-devel/2013-10/msg01645.html]] |
|||
[root@localhost ~]# xl create F21-PV-32.xm |
|||
Parsing config from F21-PV-32.xm |
|||
libxl: warning: libxl_bootloader.c:415:bootloader_disk_attached_cb: bootloader='/usr/bin/pygrub' is deprecated; use bootloader='pygrub' instead |
|||
</pre> |
|||
=== EFI === |
|||
Xen 4.3 and later can be built as EFI binaries. Xen 4.5 can be built as an EFI under ARM. |
|||
=== libvirt === |
|||
Instruction on how to build Xen as EFI and boot under it can be found [[Xen_EFI|here]]. |
|||
[[http://wiki.xenproject.org/wiki/DomU_Install_with_Virt-Install]] |
|||
=== libvirt === |
|||
libvirt is usually shipped by the distro. You would need to use ''libvirt-daemon-driver-xen'' to manage your Xen instances. If you are building from scratch, follow [http://libvirt.org/compiling.html Libvirt compiling HOWTO] |
|||
=== FreeBSD PVH === |
|||
For instructions on how to install guests, please visit: |
|||
Instruction about how to setup a FreeBSD PVH DomU support can be found at [[FreeBSD_PVH|FreeBSD PVH]] wiki page. |
|||
[http://wiki.xenproject.org/wiki/DomU_Install_with_Virt-Install Guest install using libvirt] |
|||
Instruction about how to setup a FreeBSD PVH Dom0 can be found at [[FreeBSD_Dom0|FreeBSD dom0]] wiki page. |
|||
= Reporting Bugs (& Issues) = |
= Reporting Bugs (& Issues) = |
Latest revision as of 19:44, 17 December 2014
What needs to be tested
General things:
- Making sure that Xen 4.5 compiles and installs properly on different software configurations; particularly on distros
- Making sure that Xen 4.5, along with appropriately up-to-date kernels, work on different hardware.
For more ideas about what to test, please see Testing Xen.
Installing
Getting RC1
- xen: with a recent enough
git
(>= 1.7.8.2) just pull from the proper tag (4.5.0-rc1
) from the main repo directly:
git clone -b 4.5.0-rc1 git://xenbits.xen.org/xen.git
With an older git
version (and/or if that does not work, e.g., complaining with a message like this: Remote branch 4.5.0-rc1 not found in upstream origin, using HEAD instead
), do the following:
git clone git://xenbits.xen.org/xen.git ; cd xen ; git checkout 4.5.0-rc1
- tarball: here it is a 4.5.0 RC1 tarball (and its signature)
- RPMS: Michael Young graciously provided temporary Xen 4.5.0-rc4 RPMs for both Fedora 20 and Fedora 21. They are at Koji Fedora 20 temporary build or Koji Fedora 21 build. You can use an scratch downloader to get all the RPMs and its command line would be:
./download-scratch.py -t 8400960
. Since ALL 'virt-manager','virsh' and 'qemu-system-x86' are built against Xen 4.4, you will have dependency problems. You can use xen-compat-libs if you want to re-install back the old Xen libraries.
Building
Instructions are available for building Xen on Linux, NetBSD, and FreeBSD
Known issues
Systemd integration
Affects CentOS7, SLES12, Fedora Core 21 and Debian Jessie. Xen source contains systemd files that can be used to configure the various run-time services. In the past the distributions would carry their own version of it - but now we host them. This is not yet complete - patches for this are being worked on for RC2.
Stubdomains build issues
The stubdomains will not build. Fix is in staging (and will make RC2) or stubdom/Makefile should use QEMU_TRADITIONAL_LOC
Building against libxl (outside code)
If you are building against libxl for any APIs before Xen 4.5 you will encounter building errors. Patch for this issue will be in RC2.
Migrating large Windows guests can cause WMI service to hang
Patch is in 'staging' and will be in RC2.
pygrub parsing grub1 problems
pygrub (Python code) has problems parsing grub.cfg file and hence cannot boot PV guests.
Test instructions
General
- Remove any old versions of Xen toolstack and userspace binaries (including
qemu
). - Download and install the most recent Xen 4.5 RC, as described above. Make sure to check the
README
for changes in required development libraries and procedures. Some particular things to note:- Since Xen 4.4 the default installation path has changed from
/usr
to/usr/local
. Take extra care when removing any old versions to allow for this.
- Since Xen 4.4 the default installation path has changed from
Once you have Xen 4.5 RC installed check that you can install a guest etc and use it in the ways which you normally would, i.e. that your existing guest configurations, scripts etc still work.
In particular if you were using the (deprecated) xm/XEND toolstack it is now REMOVED- hence please do try your normal use cases with the XL toolstack. The XL page has some information on the differences between XEND and XL.
Specific RC1 things
None at this time.
Specific ARM Test Instructions
Follow Xen_ARM_with_Virtualization_Extensions
MMIO passthrough
To allow auto-translated domains to directly access specific hardware I/O memory pages pertaining a device that is not IOMMU-protected, use the iomem configuration option, whose usage is described in the following paragraph.
iomem=[ "IOMEM_START,NUM_PAGES[@GFN]", "IOMEM_START,NUM_PAGES[@GFN]", ... ]
IOMEM_START is a physical page number. NUM_PAGES is the number of pages beginning with START_PAGE> to allow access to. GFN specifies the guest frame number where the mapping will start in the domU's address space. If GFN is not specified, the mapping will be performed using IOMEM_START as a start in the domU's address space, therefore performing an 1:1 mapping as default. All of these values must be given in hexadecimal.
Specific x86 Test Instructions
PVH
Xen 4.4 added support to run certain PV guests in PVH mode. This requires the operating system to support a subset of PV ABI, as such only two exist:
- Linux 3.18-rc1 and later (The previous versions of Linux had an ABI violation so they do not work),
- FreeBSD guest wiki.
- FreeBSD initial domain support out of Roger's branch (based on stable/10 snapshot).
In Xen 4.5 we also added the support to run those guests as the initial domain (dom0). Unfortunately the work to make this work on AMD did not make, so it only works on Intel. To use this an extra parameter on Xen command line is required: dom0pvh=1.
Fedora
If you are using Fedora, you can install the RPMs mentioned above and use this test-case:
Note that the RPM mentioned above has conflicts with the 'virt' type tools in Fedora 21 (as they are built against Xen 4.4). One workaround is to do after installing the RPMs:
cd /usr/lib64 ln -s libxenlight.so.4.5 libxenlight.so.4.4 ln -s libxenctrl.so.4.5 libxenctrl.so.4.4
After that restart libvirtd:
systemctl restart libvirtd
Your launch of guests might still not work with libvirt, and you can export the configuration to the native format and use xl to launch the guests:
[root@localhost ~]# virsh -c xen:/// dumpxml F21-PV-32 > F21-PV-32.xml [root@localhost ~]# virsh -c xen:/// domxml-to-native xen-xm F21-PV-32.xml name = "F21-PV-32" uuid = "3c2c560f-61d3-42d3-9152-77f13de80686" maxmem = 1024 memory = 1024 vcpus = 1 bootloader = "/usr/bin/pygrub" localtime = 0 on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" vfb = [ "type=vnc,vncunused=1,keymap=en-us" ] vif = [ "mac=00:16:3e:ad:cc:c6,bridge=xenbr0,script=vif-bridge" ] disk = [ "phy:/dev/g/F21-PV-32,xvda,w" ] [root@localhost ~]# virsh -c xen:/// domxml-to-native xen-xm F21-PV-32.xml > F21-PV-32.xm [root@localhost ~]# xl create F21-PV-32.xm Parsing config from F21-PV-32.xm libxl: warning: libxl_bootloader.c:415:bootloader_disk_attached_cb: bootloader='/usr/bin/pygrub' is deprecated; use bootloader='pygrub' instead
EFI
Xen 4.3 and later can be built as EFI binaries. Xen 4.5 can be built as an EFI under ARM.
Instruction on how to build Xen as EFI and boot under it can be found here.
libvirt
libvirt is usually shipped by the distro. You would need to use libvirt-daemon-driver-xen to manage your Xen instances. If you are building from scratch, follow Libvirt compiling HOWTO
For instructions on how to install guests, please visit: Guest install using libvirt
Reporting Bugs (& Issues)
- Use Freenode IRC channel #xentest to discuss questions interactively
- Report any bugs / missing functionality / unexpected results.
- Please put [TestDay] into the subject line
- Also make sure you specify the RC number you are using
- Make sure to follow the guidelines on Reporting Bugs against Xen.
Reporting success
We would love it if you could report successes by e-mailing xen-devel@lists.xen.org
, preferably including:
- Hardware: Please at least include the processor manufacturer (Intel/AMD). Other helpful information might include specific processor models, amount of memory, number of cores, and so on
- Software: If you're using a distro, the distro name and version would be the most helpful. Other helpful information might include the kernel that you're running, or other virtualization-related software you're using (e.g., libvirt, xen-tools, drbd, &c).
- Guest operating systems: If running a Linux version, please specify whether you ran it in PV or HVM mode.
- Functionality tested: High-level would include toolstacks, and major functionality (e.g., suspend/resume, migration, pass-through, stubdomains, &c)
The following template might be helpful: should you use Xen 4.5.0-RC1 for testing, please make sure you state that information!
Subject: [TESTDAY] Test report * Hardware: * Software: * Guest operating systems: * Functionality tested: * Comments:
For example:
Subject: [TESTDAY] Test report * Hardware: Dell 390's (Intel, dual-core) x15 HP (AMD, quad-core) x5 * Software: Ubuntu 10.10,11.10 Fedora 17 * Guest operating systems: Windows 8 Ubuntu 12.10,11.10 (HVM) Fedora 17 (PV) * Functionality tested: xl suspend/resume pygrub * Comments: Window 8 booting seemed a little slower than normal. Other than that, great work!