Difference between revisions of "Xen Project Release Features"

From Xen
m (Overview)
 
(54 intermediate revisions by 5 users not shown)
Line 1: Line 1:
  +
{{InfoLeft|Note that for Xen 4.10or newer this information is in the SUPPORT.md file in the source tree and tarball. A generated web-page for 4.10 or newer can be found [https://xenbits.xen.org/docs/unstable/support-matrix.html here].}}
  +
 
__TOC__
 
__TOC__
   
  +
''Legend:''
''Legend:'' {{Tick}}: Feature {{HalfDone}}: Partial {{NotDone}}: Removed
 
  +
* {{Tick}}: Feature
  +
* {{HalfDone}}: Partial
  +
* {{NotDone}}: Removed
  +
* For definitions of experimental, preview, supported and deprecated see [[Xen Project Release Features/Definitions|here]]
  +
  +
== Xen 4.10 or Newer ==
  +
The matrix is generated with the relevant tree, aka
  +
* [https://xenbits.xen.org/docs/unstable/support-matrix.html unstable/support-matrix.html]
  +
* [https://xenbits.xen.org/docs/unstable-staging/support-matrix.html unstable-staging/support-matrix.html]
  +
* Etc.
  +
  +
== Archive ==
  +
To make the table more usable, we have archived information related to older releases in
  +
* [[Archived/Xen Project Release Features 4.0 to 4.3]]
   
 
== Overview ==
 
== Overview ==
{|class="prettytable" style="text-align: left;" valign="top"
+
{|class="prettytable" style="text-align: left; width: 100%" valign="top"
!style="width: 28%;"|
+
!style="width: 40%;"|
!style="width: 8%;"|Xen 4.0
+
!style="width: 10%;"|Xen 4.4
!style="width: 8%;"|Xen 4.1
+
!style="width: 10%;"|Xen 4.5
!style="width: 8%;"|Xen 4.2
+
!style="width: 10%;"|Xen 4.6
!style="width: 8%;"|Xen 4.3
+
!style="width: 10%;"|Xen 4.7
!style="width: 8%;"|Xen 4.4
+
!style="width: 10%;"|Xen 4.8
!style="width: 8%;"|Xen 4.5
+
!style="width: 10%;"|Xen 4.9
!style="width: 8%;"|Xen 4.6
 
!style="width: 8%;"|Xen 4.7
 
!style="width: 8%;"|Xen 4.8
 
 
|-
 
|-
 
|Initial Release
 
|Initial Release
|7 April 2010
 
|25 March 2011
 
|17 Sept 2012
 
|9 July 2013
 
 
|10 March 2014
 
|10 March 2014
 
|15 Jan 2015
 
|15 Jan 2015
Line 26: Line 35:
 
|20 June 2016
 
|20 June 2016
 
|5 Dec 2016
 
|5 Dec 2016
  +
|28 June 2017
 
|-
 
|-
 
|[[Xen Project Maintenance Releases|Supported until]]
 
|[[Xen Project Maintenance Releases|Supported until]]
  +
|<span style="color: red">Sept 2015</span>
|???<sup>[ [[#Foot21|21]] ]</sup>
 
  +
|<span style="color: red">July 2016</span>
|???<sup>[ [[#Foot21|21]] ]</sup>
 
  +
|<span style="color: red">April 2017</span>
|???<sup>[ [[#Foot21|21]] ]</sup>
 
  +
|<span style="color: red">Dec 2017</span>
|Jan 2015
 
  +
|<span style="color: red">June 2018</span>
|Sept 2015
 
  +
|<span style="color: red">Jan 2019</span>
|July 2016
 
|April 2017
 
|Dec 2018
 
|June 2018
 
 
|-
 
|-
 
|[[Xen Project Maintenance Releases|Security support until]]
 
|[[Xen Project Maintenance Releases|Security support until]]
  +
|<span style="color: red">March 2017</span>
|???<sup>[ [[#Foot21|21]] ]</sup>
 
  +
|<span style="color: red">Jan 2018</span>
|???<sup>[ [[#Foot21|21]] ]</sup>
 
  +
|<span style="color: red">Oct 2018</span>
|Sept 2015
 
  +
|<span style="color: red">June 2019</span>
|July 2016
 
  +
|<span style="color: red">Dec 2019</span>
|March 2017
 
  +
|July 2020
|Jan 2018
 
|Oct 2018
 
|June 2019
 
|Dec 2019
 
 
|-
 
|-
 
|Feature List
 
|Feature List
|
 
|
 
|[[Xen 4.2 Feature List|FL 4.2]]
 
|[[Xen 4.3 Feature List|FL 4.3]]
 
 
|[[Xen 4.4 Feature List|FL 4.4]]
 
|[[Xen 4.4 Feature List|FL 4.4]]
 
|[[Xen_Project_4.5_Feature_List|FL 4.5]]
 
|[[Xen_Project_4.5_Feature_List|FL 4.5]]
Line 59: Line 59:
 
|[[Xen_Project_4.7_Feature_List|FL 4.7]]
 
|[[Xen_Project_4.7_Feature_List|FL 4.7]]
 
|[[Xen_Project_4.8_Feature_List|FL 4.8]]
 
|[[Xen_Project_4.8_Feature_List|FL 4.8]]
  +
|[[Xen_Project_4.9_Feature_List|FL 4.9]]
 
|-
 
|-
 
|Release Notes
 
|Release Notes
|[[Xen_4.0_Release_Notes|RN 4.0]]
 
|[[Xen 4.1 Release Notes|RN 4.1]]
 
|[[Xen 4.2 Release Notes|RN 4.2]]
 
|[[Xen 4.3 Release Notes|RN 4.3]]
 
 
|[[Xen 4.4 Release Notes|RN 4.4]]
 
|[[Xen 4.4 Release Notes|RN 4.4]]
 
|[[Xen Project 4.5 Release Notes|RN 4.5]]
 
|[[Xen Project 4.5 Release Notes|RN 4.5]]
Line 70: Line 67:
 
|[[Xen Project 4.7 Release Notes|RN 4.7]]
 
|[[Xen Project 4.7 Release Notes|RN 4.7]]
 
|[[Xen Project 4.8 Release Notes|RN 4.8]]
 
|[[Xen Project 4.8 Release Notes|RN 4.8]]
  +
|[[Xen Project 4.9 Release Notes|RN 4.9]]
 
|-
 
|-
 
!colspan="10"|<big>Supported Mainline Architectures for the hypervisor (Host)</big>
 
!colspan="10"|<big>Supported Mainline Architectures for the hypervisor (Host)</big>
|-
 
|[http://en.wikipedia.org/wiki/IA-32 IA-A32]
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{NotDone}}<small>removed</small>
 
|
 
|
 
 
|-
 
|-
 
|[http://en.wikipedia.org/wiki/X86-64 X86-64]
 
|[http://en.wikipedia.org/wiki/X86-64 X86-64]
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 91: Line 78:
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
|-
 
|[http://en.wikipedia.org/wiki/Itanium Itanium (ia64)]
 
|{{Tick}}
 
|{{Tick}}<small>deprecated in this release</small>
 
|{{Tick}}<small>deprecated</small>
 
|{{NotDone}}<small>removed</small>
 
|
 
|
 
 
|-
 
|-
 
|ARM v7 + Virtualization Extensions
 
|ARM v7 + Virtualization Extensions
|
 
|
 
|
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot6|6]] ]</sup>
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}} <sup>[ [[#Foot8|8]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot8|8]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot14|14]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot14|14]] ]</sup>
  +
|{{Tick}} <sup>[ [[#Foot26|26]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot26|26]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot26|26]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot26|26]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot26|26]] ]</sup>
 
|-
 
|-
 
|ARM v8
 
|ARM v8
|
 
|
 
|
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot6|6]] ]</sup>
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}} <sup>[ [[#Foot8|8]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot8|8]] ]</sup>
  +
|{{Tick}} <sup>[ [[#Foot15|15]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot15|15]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot15|15]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot15|15]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot15|15]] ]</sup>
Line 127: Line 100:
 
|-
 
|-
 
|Paravirtualised<br/><small>Traditional Xen Project ''PV'' guest</small>
 
|Paravirtualised<br/><small>Traditional Xen Project ''PV'' guest</small>
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 138: Line 108:
 
|-
 
|-
 
|HVM Guest <sup>[ [[#Foot1|1]] ]<br/><small>Fully virtualised guest using hardware virtualisation extensions</small>
 
|HVM Guest <sup>[ [[#Foot1|1]] ]<br/><small>Fully virtualised guest using hardware virtualisation extensions</small>
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 150: Line 117:
 
|PV-on-HVM Guest <sup>[ [[#Foot1|1]] ]<br/><small>Fully virtualised guest using PV extensions/drivers for improved performance</small>
 
|PV-on-HVM Guest <sup>[ [[#Foot1|1]] ]<br/><small>Fully virtualised guest using PV extensions/drivers for improved performance</small>
 
|{{Tick}}
 
|{{Tick}}
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 160: Line 124:
 
|-
 
|-
 
|PVH Guest
 
|PVH Guest
|
 
|
 
|
 
|
 
 
|{{Tick}}<small>preview</small>
 
|{{Tick}}<small>preview</small>
 
|{{Tick}}<small>preview<br>added PVH Dom0</small>
 
|{{Tick}}<small>preview<br>added PVH Dom0</small>
 
|{{Tick}}<small>preview</small>
 
|{{Tick}}<small>preview</small>
 
|{{Tick}}<small>preview</small>
 
|{{Tick}}<small>preview</small>
|{{Tick}}<small>preview</small>
+
|{{Tick}}<small>preview<br>started implementing PVHv2</small>
  +
|{{Tick}}<small>preview<br>removed PVHv1</small>
 
|-
 
|-
 
!colspan="10" style="background-color: #A9BCF5;"|For ARM Architectures
 
!colspan="10" style="background-color: #A9BCF5;"|For ARM Architectures
 
|-
 
|-
 
|ARM Guest<sup><br/><small>Optimal combination of full virtualization and PV extensions</small>
 
|ARM Guest<sup><br/><small>Optimal combination of full virtualization and PV extensions</small>
  +
|{{Tick}}
|
 
|
 
|
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot6|6]] ]</sup>
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 188: Line 146:
 
== Limits ==
 
== Limits ==
   
{|class="prettytable" style="text-align: left;" valign="top"
+
{|class="prettytable" style="text-align: left; width: 100%" valign="top"
!style="width: 28%;"|
+
!style="width: 40%;"|
!style="width: 8%;"|Xen 4.0
+
!style="width: 10%;"|Xen 4.4
!style="width: 8%;"|Xen 4.1
+
!style="width: 10%;"|Xen 4.5
!style="width: 8%;"|Xen 4.2
+
!style="width: 10%;"|Xen 4.6
!style="width: 8%;"|Xen 4.3
+
!style="width: 10%;"|Xen 4.7
!style="width: 8%;"|Xen 4.4
+
!style="width: 10%;"|Xen 4.8
!style="width: 8%;"|Xen 4.5
+
!style="width: 10%;"|Xen 4.9 - 4.11
!style="width: 8%;"|Xen 4.6
 
!style="width: 8%;"|Xen 4.7
 
!style="width: 8%;"|Xen 4.8
 
 
|-
 
|-
 
!colspan="10"|<big>Host Limits</big>
 
!colspan="10"|<big>Host Limits</big>
Line 205: Line 160:
 
|-
 
|-
 
|Physical CPUs
 
|Physical CPUs
|128 <sup>[ [[#Foot0|0]] ]</sup>
 
|>255
 
|4095
 
 
|4095
 
|4095
 
|4095
 
|4095
Line 216: Line 168:
 
|-
 
|-
 
|Physical RAM
 
|Physical RAM
|1TB
 
|5TB
 
|5TB
 
 
|16TB
 
|16TB
 
|16TB
 
|16TB
Line 229: Line 178:
 
|-
 
|-
 
|Physical CPUs
 
|Physical CPUs
|
 
|
 
|
 
|8
 
 
|8
 
|8
 
|8
 
|8
  +
|8 for 32bit; 128 for 64bit
 
|8 for 32bit; 128 for 64bit
 
|8 for 32bit; 128 for 64bit
 
|8 for 32bit; 128 for 64bit
 
|8 for 32bit; 128 for 64bit
Line 240: Line 186:
 
|-
 
|-
 
|Physical RAM
 
|Physical RAM
|
 
|
 
|
 
|16GB
 
 
|16GB
 
|16GB
  +
|16GB for 32bit, 5TB for 64bit
 
|16GB for 32bit, 5TB for 64bit
 
|16GB for 32bit, 5TB for 64bit
 
|16GB for 32bit, 5TB for 64bit
 
|16GB for 32bit, 5TB for 64bit
Line 255: Line 198:
 
|-
 
|-
 
|Virtual CPUs
 
|Virtual CPUs
|128
 
|>255
 
|512
 
 
|512
 
|512
 
|512
 
|512
Line 269: Line 209:
 
|512GB
 
|512GB
 
|512GB
 
|512GB
  +
|> 1TB
|512GB
 
|512GB
 
|512GB
 
|512GB
 
 
|> 1TB
 
|> 1TB
 
|> 1TB
 
|> 1TB
Line 279: Line 216:
 
|-
 
|-
 
|Virtual CPUs
 
|Virtual CPUs
|128
 
|128
 
|128
 
 
|128
 
|128
 
|128
 
|128
Line 290: Line 224:
 
|-
 
|-
 
|Virtual RAM
 
|Virtual RAM
|1TB
 
|1TB
 
|1TB
 
 
|1TB
 
|1TB
 
|1TB
 
|1TB
Line 303: Line 234:
 
|-
 
|-
 
|Virtual CPUs
 
|Virtual CPUs
|
 
|
 
|
 
|8
 
 
|8
 
|8
 
|8
 
|8
  +
|8 for 32bit; 128 for 64bit
 
|8 for 32bit; 128 for 64bit
 
|8 for 32bit; 128 for 64bit
 
|8 for 32bit; 128 for 64bit
 
|8 for 32bit; 128 for 64bit
Line 314: Line 242:
 
|-
 
|-
 
|Virtual RAM
 
|Virtual RAM
|
 
|
 
|
 
|16GB
 
 
|16GB
 
|16GB
  +
|1TB <sup>[ [[#Foot7|7]] ]</sup>
 
|1TB <sup>[ [[#Foot7|7]] ]</sup>
 
|1TB <sup>[ [[#Foot7|7]] ]</sup>
 
|1TB <sup>[ [[#Foot7|7]] ]</sup>
 
|1TB <sup>[ [[#Foot7|7]] ]</sup>
Line 327: Line 252:
 
|-
 
|-
 
|Event Channels
 
|Event Channels
  +
|131072
|1024/4096
 
|1024/4096
 
|1024/4096
 
|1024/4096
 
 
|131072
 
|131072
 
|131072
 
|131072
Line 343: Line 265:
 
== Toolstack and Tools ==
 
== Toolstack and Tools ==
   
{|class="prettytable" style="text-align: left;" valign="top"
+
{|class="prettytable" style="text-align: left; width: 100%" valign="top"
!style="width: 28%;"|
+
!style="width: 40%;"|
!style="width: 8%;"|Xen 4.0
+
!style="width: 10%;"|Xen 4.4
!style="width: 8%;"|Xen 4.1
+
!style="width: 10%;"|Xen 4.5
!style="width: 8%;"|Xen 4.2
+
!style="width: 10%;"|Xen 4.6
!style="width: 8%;"|Xen 4.3
+
!style="width: 10%;"|Xen 4.7
!style="width: 8%;"|Xen 4.4
+
!style="width: 10%;"|Xen 4.8
!style="width: 8%;"|Xen 4.5
+
!style="width: 10%;"|Xen 4.9
!style="width: 8%;"|Xen 4.6
 
!style="width: 8%;"|Xen 4.7
 
!style="width: 8%;"|Xen 4.8
 
 
|-
 
|-
 
!colspan="10"|<big>Toolstack</big>
 
!colspan="10"|<big>Toolstack</big>
Line 360: Line 279:
 
|-
 
|-
 
|xend / xm
 
|xend / xm
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}<small>deprecated in this release</small>
 
|{{Tick}}<small>deprecated</small>
 
 
|{{Tick}}<small>deprecated</small>
 
|{{Tick}}<small>deprecated</small>
 
|{{NotDone}}<small>removed</small>
 
|{{NotDone}}<small>removed</small>
 
|-
 
|-
 
|[[XL]]
 
|[[XL]]
|{{HalfDone}}<small>initial implementation</small>
 
|{{HalfDone}}<small>preview release</small>
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 379: Line 291:
 
|-
 
|-
 
|Qemu based disk backend (''qdisk'') for [[XL]]<br/>
 
|Qemu based disk backend (''qdisk'') for [[XL]]<br/>
|
 
|{{Tick}} <sup>[ [[#Foot5|5]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot5|5]] ]</sup>
 
 
|{{Tick}} <sup>[ [[#Foot5|5]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot5|5]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot5|5]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot5|5]] ]</sup>
Line 390: Line 299:
 
|-
 
|-
 
|[[XL]] [http://openvswitch.org/ Open vSwitch] integration
 
|[[XL]] [http://openvswitch.org/ Open vSwitch] integration
  +
|{{Tick}}
|
 
|
 
|
 
|{{Tick}}<small>preview</small>
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 401: Line 307:
 
|-
 
|-
 
|[http://en.wikipedia.org/wiki/Systemd systemd] support
 
|[http://en.wikipedia.org/wiki/Systemd systemd] support
|
 
|
 
|
 
|
 
 
|
 
|
  +
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 413: Line 316:
 
|JSON support
 
|JSON support
 
|
 
|
  +
|{{HalfDone}}<small>infrastructure only, no tools support</small>
|
 
|
 
|
 
|
 
 
|{{HalfDone}}<small>infrastructure only, no tools support</small>
 
|{{HalfDone}}<small>infrastructure only, no tools support</small>
 
|{{HalfDone}}<small>infrastructure only, no tools support</small>
 
|{{HalfDone}}<small>infrastructure only, no tools support</small>
Line 423: Line 323:
 
|-
 
|-
 
|[https://en.wikipedia.org/wiki/Advanced_Host_Controller_Interface AHCI] support
 
|[https://en.wikipedia.org/wiki/Advanced_Host_Controller_Interface AHCI] support
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
  +
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
Line 434: Line 331:
 
|-
 
|-
 
|PVUSB
 
|PVUSB
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
|-
 
|-
 
|HVM USB passthrough
 
|HVM USB passthrough
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
  +
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
|-
 
|-
 
|QEMU backend hotplugging
 
|QEMU backend hotplugging
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
|-
 
|-
 
|Soft-Reset
 
|Soft-Reset
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
 
| {{Tick}}
Line 480: Line 365:
 
|-
 
|-
 
|[http://libvirt.org libvirt] driver for [[XL]]
 
|[http://libvirt.org libvirt] driver for [[XL]]
  +
|{{Tick}}<sup>[ [[#Foot29|29]] ]</sup>
|
 
|{{Tick}}
+
|{{Tick}}<sup>[ [[#Foot29|29]] ]</sup>
  +
|{{Tick}}<sup>[ [[#Foot16|16]] ] [ [[#Foot29|29]] ]</sup>
|{{Tick}}
 
  +
|{{Tick}}<sup>[ [[#Foot16|16]] ] [ [[#Foot29|29]] ]</sup>
|{{Tick}}
 
  +
|{{Tick}}<sup>[ [[#Foot16|16]] ] [ [[#Foot29|29]] ]</sup>
|{{Tick}}
 
  +
|{{Tick}}<sup>[ [[#Foot16|16]] ] [ [[#Foot29|29]] ]</sup>
|{{Tick}}
 
|{{Tick}}<sup>[ [[#Foot16|16]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot16|16]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot16|16]] ]</sup>
 
 
|-
 
|-
 
!colspan="10" style="background-color: #A9BCF5;"|Tooling
 
!colspan="10" style="background-color: #A9BCF5;"|Tooling
Line 494: Line 376:
 
|gdbsx<br/><small>debugger to debug ELF guests</small>
 
|gdbsx<br/><small>debugger to debug ELF guests</small>
 
|{{Tick}}
 
|{{Tick}}
|{{Tick}}
+
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
Line 504: Line 383:
 
|-
 
|-
 
|vPMU<br/><small>Virtual Performance Management Unit for HVM guests</small>
 
|vPMU<br/><small>Virtual Performance Management Unit for HVM guests</small>
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup>
 
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup>
  +
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
Line 516: Line 392:
 
|[[Xen_Serial_Console|Serial console]]
 
|[[Xen_Serial_Console|Serial console]]
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}}<small>Add Oxford PCIe, and Broadcom TrueManage support</small>
 
|{{Tick}}
 
|{{Tick}}
|{{Tick}}
 
|{{Tick}}<small>Add EHCI debug support</small>
 
|{{Tick}}
 
|{{Tick}}<small>Add Oxford PCIe, and Broadcom TrueManage support</small>
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 526: Line 399:
 
|-
 
|-
 
|xentrace<br/><small>performance analysis</small>
 
|xentrace<br/><small>performance analysis</small>
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<small>Added Xenalyze</small>
 
|{{Tick}}<small>Added Xenalyze</small>
  +
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 541: Line 411:
 
== Features ==
 
== Features ==
   
{|class="prettytable" style="text-align: left;" valign="top"
+
{|class="prettytable" style="text-align: left; width: 100%" valign="top"
!style="width: 28%;"|
+
!style="width: 40%;"|
!style="width: 8%;"|Xen 4.0
+
!style="width: 10%;"|Xen 4.4
!style="width: 8%;"|Xen 4.1
+
!style="width: 10%;"|Xen 4.5
!style="width: 8%;"|Xen 4.2
+
!style="width: 10%;"|Xen 4.6
!style="width: 8%;"|Xen 4.3
+
!style="width: 10%;"|Xen 4.7
!style="width: 8%;"|Xen 4.4
+
!style="width: 10%;"|Xen 4.8
!style="width: 8%;"|Xen 4.5
+
!style="width: 10%;"|Xen 4.9
!style="width: 8%;"|Xen 4.6
 
!style="width: 8%;"|Xen 4.7
 
!style="width: 8%;"|Xen 4.8
 
 
|-
 
|-
 
!colspan="10" style="background-color: #A9BCF5;"|Advanced Memory Management
 
!colspan="10" style="background-color: #A9BCF5;"|Advanced Memory Management
 
|-
 
|-
 
|Memory Ballooning
 
|Memory Ballooning
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 567: Line 431:
 
|-
 
|-
 
|Memory Sharing<br/><small>allow sharing of identical pages between HVM guests</small>
 
|Memory Sharing<br/><small>allow sharing of identical pages between HVM guests</small>
|{{HalfDone}}<small>preview</small>
 
|{{HalfDone}}<small>preview</small>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup>
 
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup>
  +
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
Line 578: Line 439:
 
|-
 
|-
 
|Memory Paging<br/><small>allow pages belonging to HVM guests to be paged to disk</small>
 
|Memory Paging<br/><small>allow pages belonging to HVM guests to be paged to disk</small>
|{{HalfDone}}<small>preview</small>
 
|{{HalfDone}}<small>preview</small>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup>
 
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup>
  +
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot3|3]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
Line 589: Line 447:
 
|-
 
|-
 
|[http://oss.oracle.com/projects/tmem/ TMEM] - Transcendent Memory
 
|[http://oss.oracle.com/projects/tmem/ TMEM] - Transcendent Memory
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup>
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup>
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup>
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup>
 
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup>
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup>
  +
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{HalfDone}}<small>experimental</small> <sup>[ [[#Foot2|2]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
Line 602: Line 457:
 
|-
 
|-
 
|[[Xen_4.2:_cpupools|Cpupool]]<br/><small>advanced partitioning</small>
 
|[[Xen_4.2:_cpupools|Cpupool]]<br/><small>advanced partitioning</small>
|
 
|{{HalfDone}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 614: Line 466:
 
|[[Credit2 Scheduler Development|Credit 2 Scheduler]]<br/><small>designed for latency-sensitive workloads and very large systems.</small>
 
|[[Credit2 Scheduler Development|Credit 2 Scheduler]]<br/><small>designed for latency-sensitive workloads and very large systems.</small>
 
|
 
|
|{{HalfDone}}<small>prototype</small>
 
|{{HalfDone}}<small>prototype</small>
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental (significant additions)</small>
 
|{{HalfDone}}<small>experimental (significant additions)</small>
  +
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|-
 
|-
 
|[[RTDS-Based-Scheduler|RTDS Based Scheduler]]<br/><small>Real-time CPU scheduler built to provide guaranteed CPU capacity to guest VMs on SMP hosts.</small>
 
|[[RTDS-Based-Scheduler|RTDS Based Scheduler]]<br/><small>Real-time CPU scheduler built to provide guaranteed CPU capacity to guest VMs on SMP hosts.</small>
|
 
|
 
|
 
|
 
 
|
 
|
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental (significant additions)</small>
 
|{{HalfDone}}<small>experimental (significant additions)</small>
  +
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
|-
 
|-
  +
|Null Scheduler<br/><small>Scheduler for embedded workloads where 0-scheduling overhead is required</small>
|[[Xen_Numa_Scheduling_and_Placement|NUMA scheduler affinity]]
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
|
|{{Tick}}
 
  +
|
  +
|{{Tick}}<small>preview</small> <sup>[ [[#Foot28|28]] ]</sup>
  +
|-
  +
|[[Xen_Numa_Scheduling_and_Placement|NUMA scheduler affinity]]
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
Line 648: Line 499:
 
|-
 
|-
 
|1GB/2MB super page support
 
|1GB/2MB super page support
|
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 659: Line 507:
 
|-
 
|-
 
|Deliver events to PVHVM guests using Xen event channels
 
|Deliver events to PVHVM guests using Xen event channels
|
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 672: Line 517:
 
|
 
|
 
|
 
|
  +
|{{Tick}}
|
 
|
 
|
 
|
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 683: Line 525:
 
|-
 
|-
 
|Live Migration, Save & Restore
 
|Live Migration, Save & Restore
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot18|18]] ]</sup> <small>Migration v2</small>
 
|{{Tick}} <sup>[ [[#Foot18|18]] ]</sup> <small>Migration v2</small>
  +
|{{Tick}} <sup>[ [[#Foot23|23]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot23|23]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot23|23]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot23|23]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot23|23]] ]</sup>
 
|-
 
|-
 
|[[Remus]] Fault Tolerance
 
|[[Remus]] Fault Tolerance
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}} <small>improvements <br/>for [[COLO_-_Coarse_Grain_Lock_Stepping|COLO]]</small> <sup>[ [[#Foot10|10]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <small>improvements <br/>for [[COLO_-_Coarse_Grain_Lock_Stepping|COLO]]</small> <sup>[ [[#Foot10|10]] ]</sup><sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <small>Remus ported to Migration v2</small>
 
|{{Tick}} <small>Remus ported to Migration v2</small>
  +
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|-
 
|-
 
|[[COLO_-_Coarse_Grain_Lock_Stepping|COLO Manager]]
 
|[[COLO_-_Coarse_Grain_Lock_Stepping|COLO Manager]]
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
 
|
 
|
  +
|{{HalfDone}} <small>experimental</small> <sup>[ [[#Foot24|24]] ]</sup>
 
|{{HalfDone}} <small>experimental</small> <sup>[ [[#Foot24|24]] ]</sup>
 
|{{HalfDone}} <small>experimental</small> <sup>[ [[#Foot24|24]] ]</sup>
 
|{{HalfDone}} <small>experimental</small> <sup>[ [[#Foot24|24]] ]</sup>
 
|{{HalfDone}} <small>experimental</small> <sup>[ [[#Foot24|24]] ]</sup>
 
|-
 
|-
 
|X86 vMCE<br/><small>Forward Machine Check Exceptions to Appropriate guests</small>
 
|X86 vMCE<br/><small>Forward Machine Check Exceptions to Appropriate guests</small>
|
 
|
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 728: Line 558:
 
!colspan="10" style="background-color: #A9BCF5;"|Network and Storage
 
!colspan="10" style="background-color: #A9BCF5;"|Network and Storage
 
|-
 
|-
|[[Blktap2]]
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 740: Line 567:
 
|-
 
|-
 
|Online resize of virtual disks
 
|Online resize of virtual disks
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 753: Line 577:
 
|-
 
|-
 
|[[Driver_Domain|Driver Domains]]
 
|[[Driver_Domain|Driver Domains]]
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 764: Line 585:
 
|-
 
|-
 
|[[Device_Model_Stub_Domains|Device Model Stub Domains]]
 
|[[Device_Model_Stub_Domains|Device Model Stub Domains]]
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
  +
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot17|17]] ]</sup>
 
|-
 
|-
  +
|[[Kconfig|Kconfig]]
|[https://www.kernel.org/doc/Documentation/kbuild/kconfig-language.txt KCONFIG]
 
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
 
|
 
|
 
|{{HalfDone}} <small>experimental</small>
 
|{{HalfDone}} <small>experimental</small>
  +
|{{Tick}} <small>experimental</small>
 
|{{Tick}} <small>experimental</small>
 
|{{Tick}} <small>experimental</small>
 
|-
 
|-
 
|[[LivePatch|Live Patching]]
 
|[[LivePatch|Live Patching]]
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
Line 795: Line 606:
 
|{{HalfDone}} <small>preview</small> <sup>[ [[#Foot22|22]] ]</sup>
 
|{{HalfDone}} <small>preview</small> <sup>[ [[#Foot22|22]] ]</sup>
 
|{{Tick}} <small>preview (added ARM support)</small>
 
|{{Tick}} <small>preview (added ARM support)</small>
  +
|{{Tick}} <sup>[ [[#Foot27|27]] ], ARM support still in preview</sup>
 
|-
 
|-
 
|[[Virtual Machine Introspection]] (Memaccess and VM Event APIs)<br/><small>enabling integration of 3rd party security solutions into Xen virtualized environments</small>
 
|[[Virtual Machine Introspection]] (Memaccess and VM Event APIs)<br/><small>enabling integration of 3rd party security solutions into Xen virtualized environments</small>
|
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}} <small>improvements</small><sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <small>improvements</small><sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot19|19]] ]</sup> <small>reworked with ARM support, added VM Event APIs</small>
 
|{{Tick}} <sup>[ [[#Foot19|19]] ]</sup> <small>reworked with ARM support, added VM Event APIs</small>
 
|{{Tick}} <small>improvements</small>
 
|{{Tick}} <small>improvements</small>
  +
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|-
 
|-
 
|[[Xen Security Modules : XSM-FLASK|XSM & FLASK]]<br/><small>mandatory access control policy providing fine-grained controls over Xen domains, similar to SELinux</small>
 
|[[Xen Security Modules : XSM-FLASK|XSM & FLASK]]<br/><small>mandatory access control policy providing fine-grained controls over Xen domains, similar to SELinux</small>
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
Line 819: Line 625:
 
|-
 
|-
 
|[[Xen Security Modules : XSM-FLASK|XSM & FLASK]] support for IS_PRIV
 
|[[Xen Security Modules : XSM-FLASK|XSM & FLASK]] support for IS_PRIV
|
 
|
 
|
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot17|17]] ]</sup>
Line 832: Line 635:
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}} <small> vTPM 2.0</small>
 
|{{Tick}}
 
|{{Tick}}
|{{Tick}}<br/><small>updates and new functionality</small>
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}} <small> vTPM 2.0</small>
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 845: Line 645:
 
== Interoperability / Hardware Support ==
 
== Interoperability / Hardware Support ==
   
{|class="prettytable" style="text-align: left;" valign="top"
+
{|class="prettytable" style="text-align: left; width: 100%" valign="top"
!style="width: 28%;"|
+
!style="width: 40%;"|
!style="width: 8%;"|Xen 4.0
+
!style="width: 10%;"|Xen 4.4
!style="width: 8%;"|Xen 4.1
+
!style="width: 10%;"|Xen 4.5
!style="width: 8%;"|Xen 4.2
+
!style="width: 10%;"|Xen 4.6
!style="width: 8%;"|Xen 4.3
+
!style="width: 10%;"|Xen 4.7
!style="width: 8%;"|Xen 4.4
+
!style="width: 10%;"|Xen 4.8
!style="width: 8%;"|Xen 4.5
+
!style="width: 10%;"|Xen 4.9
!style="width: 8%;"|Xen 4.6
 
!style="width: 8%;"|Xen 4.7
 
!style="width: 8%;"|Xen 4.8
 
 
|-
 
|-
 
!colspan="10" style="background-color: #A9BCF5;"|X86
 
!colspan="10" style="background-color: #A9BCF5;"|X86
 
|-
 
|-
 
|X86 [[Introduction_to_Nested_Virtualization_in_Xen|Nested Virtualisation]]<br/><small>Running a hypervisor inside an HVM guest</small>
 
|X86 [[Introduction_to_Nested_Virtualization_in_Xen|Nested Virtualisation]]<br/><small>Running a hypervisor inside an HVM guest</small>
|
 
|
 
|{{HalfDone}}<small>experimental</small>
 
|{{HalfDone}}<small>experimental</small>
 
 
|{{HalfDone}}<small>preview</small>
 
|{{HalfDone}}<small>preview</small>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup>
Line 869: Line 662:
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup>
 
|{{HalfDone}}<small>preview</small> <sup>[ [[#Foot11|11]] ]</sup>
  +
|{{HalfDone}}<small>preview, fixes</small> <sup>[ [[#Foot11|11]] ]</sup>
 
|-
 
|-
 
|HVM PXE Stack (x86)
 
|HVM PXE Stack (x86)
 
|gPXE
 
|gPXE
|[http://ipxe.org iPXE]
 
|[http://ipxe.org iPXE]
 
|[http://ipxe.org iPXE]
 
 
|[http://ipxe.org iPXE]
 
|[http://ipxe.org iPXE]
 
|[http://ipxe.org iPXE]
 
|[http://ipxe.org iPXE]
Line 882: Line 673:
 
|-
 
|-
 
|Physical CPU Hotplug
 
|Physical CPU Hotplug
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
Line 893: Line 681:
 
|-
 
|-
 
|Physical Memory Hotplug
 
|Physical Memory Hotplug
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
Line 904: Line 689:
 
|-
 
|-
 
|Support for PV kernels in bzImage format
 
|Support for PV kernels in bzImage format
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}}<sup>[ [[#Foot12|12]] ]</sup>
Line 915: Line 697:
 
|-
 
|-
 
|[[Xen PCI Passthrough|PCI Passthrough]]
 
|[[Xen PCI Passthrough|PCI Passthrough]]
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot13|13]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup><sup>[ [[#Foot13|13]] ]</sup>
  +
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot12|12]] ]</sup>
Line 926: Line 705:
 
|-
 
|-
 
|X86 Advanced Vector eXtension (AVX)
 
|X86 Advanced Vector eXtension (AVX)
|
 
|{{Tick}} <sup>[ [[#Foot4|4]] ]</sup>
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}} <small>AVX-512</small>
 
|{{Tick}}
 
|{{Tick}}
|{{Tick}}
 
|{{Tick}} <small>AVX-512</small>
 
 
|-
 
|-
 
|[[Intel Platform QoS Technologies]]
 
|[[Intel Platform QoS Technologies]]
|
 
|
 
|
 
|
 
 
|
 
|
 
|{{HalfDone}} <small>preview: CMT</small>
 
|{{HalfDone}} <small>preview: CMT</small>
 
|{{HalfDone}} <small>preview: CAT, MBM</small>
 
|{{HalfDone}} <small>preview: CAT, MBM</small>
 
|{{HalfDone}} <small>preview: CDP</small>
 
|{{HalfDone}} <small>preview: CDP</small>
  +
|{{Tick}} <small>preview: CDP</small>
 
|{{Tick}} <small>preview: CDP</small>
 
|{{Tick}} <small>preview: CDP</small>
 
|-
 
|-
Line 951: Line 724:
 
|
 
|
 
|
 
|
  +
|{{Tick}} <sup>[ [[#Foot25|25]] ]</sup>
|
 
|
 
|
 
|
 
 
|{{Tick}} <sup>[ [[#Foot25|25]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot25|25]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot25|25]] ]</sup>
 
|{{Tick}} <sup>[ [[#Foot25|25]] ]</sup>
Line 961: Line 731:
 
|-
 
|-
 
|64K Guest Pages
 
|64K Guest Pages
|
 
|
 
|
 
|
 
 
|
 
|
 
|
 
|
  +
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 975: Line 742:
 
|
 
|
 
|
 
|
  +
|{{HalfDone}} <small>experimental; ACPI 6.0+</small>
  +
|{{Tick}} <small>experimental</small>
  +
|{{Tick}} <small>experimental</small>
  +
|-
  +
| ACPI guest support
 
|
 
|
 
|
 
|
 
|
 
|
 
|
 
|
|{{HalfDone}} <small>experimental; ACPI 6.0+</small>
+
|{{Tick}} <small>with UEFI</small>
|{{Tick}}
+
|{{Tick}} <small>with UEFI</small>
 
|-
 
|-
 
| PCSI Compatibility
 
| PCSI Compatibility
|
 
|
 
|
 
|
 
 
|
 
|
 
|{{Tick}} <small>v0.1 & 0.2</small>
 
|{{Tick}} <small>v0.1 & 0.2</small>
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}} <small>v1.0</small>
 
|{{Tick}} <small>v1.0</small>
  +
|{{Tick}} <small>v1.0</small>
 
|{{Tick}} <small>v1.0</small>
 
|{{Tick}} <small>v1.0</small>
 
|-
 
|-
 
| ARM® Interrupt Virtualization
 
| ARM® Interrupt Virtualization
|
 
|
 
|
 
|
 
 
|
 
|
 
|{{Tick}} <small>GiC v2</small>
 
|{{Tick}} <small>GiC v2</small>
 
|{{Tick}} <small>GiC v2m/GiC v3</small>
 
|{{Tick}} <small>GiC v2m/GiC v3</small>
 
|{{Tick}} <small>improvements to v2/v3</small>
 
|{{Tick}} <small>improvements to v2/v3</small>
  +
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|-
 
|-
Line 1,008: Line 774:
 
|
 
|
 
|
 
|
  +
|{{Tick}}
|
 
|
 
|
 
|
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 1,021: Line 784:
 
== Device Models and Virtual Firmware ==
 
== Device Models and Virtual Firmware ==
   
{|class="prettytable" style="text-align: left;" valign="top"
+
{|class="prettytable" style="text-align: left; width: 100%" valign="top"
!style="width: 28%;"|
+
!style="width: 40%;"|
!style="width: 8%;"|Xen 4.0
+
!style="width: 10%;"|Xen 4.4
!style="width: 8%;"|Xen 4.1
+
!style="width: 10%;"|Xen 4.5
!style="width: 8%;"|Xen 4.2
+
!style="width: 10%;"|Xen 4.6
!style="width: 8%;"|Xen 4.3
+
!style="width: 10%;"|Xen 4.7
!style="width: 8%;"|Xen 4.4
+
!style="width: 10%;"|Xen 4.8
!style="width: 8%;"|Xen 4.5
+
!style="width: 10%;"|Xen 4.9
!style="width: 8%;"|Xen 4.6
 
!style="width: 8%;"|Xen 4.7
 
!style="width: 8%;"|Xen 4.8
 
 
|-
 
|-
 
!colspan="10"|<big>Device Models and Virtual Firmware for HVM guests</big>
 
!colspan="10"|<big>Device Models and Virtual Firmware for HVM guests</big>
Line 1,038: Line 798:
 
|-
 
|-
 
|Traditional Device Model<br/><small>Device emulator based on Xen fork of Qemu</small>
 
|Traditional Device Model<br/><small>Device emulator based on Xen fork of Qemu</small>
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 1,049: Line 806:
 
|-
 
|-
 
|Qemu Upstream Device Model<br/><small>Device emulator based on upstream Qemu</small>
 
|Qemu Upstream Device Model<br/><small>Device emulator based on upstream Qemu</small>
|
 
|
 
|{{HalfDone}}<small>preview</small>
 
 
|{{Tick}}<small>default, unless [[Device_Model_Stub_Domains|stubdomains]] are used</small>
 
|{{Tick}}<small>default, unless [[Device_Model_Stub_Domains|stubdomains]] are used</small>
 
|{{Tick}}<small>default, unless [[Device_Model_Stub_Domains|stubdomains]] are used</small>
 
|{{Tick}}<small>default, unless [[Device_Model_Stub_Domains|stubdomains]] are used</small>
Line 1,058: Line 812:
 
|{{Tick}}<small>default, unless [[Device_Model_Stub_Domains|stubdomains]] are used</small>
 
|{{Tick}}<small>default, unless [[Device_Model_Stub_Domains|stubdomains]] are used</small>
 
|{{Tick}}<small>default, unless [[Device_Model_Stub_Domains|stubdomains]] are used</small>
 
|{{Tick}}<small>default, unless [[Device_Model_Stub_Domains|stubdomains]] are used</small>
  +
|-
  +
|DMOP (Device Model Operation Hypercall)
  +
|
  +
|
  +
|
  +
|
  +
|
  +
|{{Tick}}<sup>[ [[#Foot28|28]] ]</sup>
 
|-
 
|-
 
|ROMBIOS<br/><small>BIOS used with traditional device model only</small>
 
|ROMBIOS<br/><small>BIOS used with traditional device model only</small>
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 1,071: Line 830:
 
|-
 
|-
 
|SeaBIOS<br/><small>BIOS used with upstream qemu device model and [[XL]] only</small>
 
|SeaBIOS<br/><small>BIOS used with upstream qemu device model and [[XL]] only</small>
|
 
|
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 1,082: Line 838:
 
|-
 
|-
 
|[[OVMF|OVMF/Tianocore]]<br/><small>UEFI Firmware used with upstream qemu device model and [[XL]] only</small>
 
|[[OVMF|OVMF/Tianocore]]<br/><small>UEFI Firmware used with upstream qemu device model and [[XL]] only</small>
|
 
|
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ]</sup>
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ]</sup>
 
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ]</sup>
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ]</sup>
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ]</sup>
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ]</sup>
  +
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ] + ARM support</sup>
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ] + ARM support</sup>
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ] + ARM support</sup>
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ] + ARM support</sup>
 
|{{Tick}}<small>experimental</small> <sup>[ [[#Foot4|4]] ] + ARM support</sup>
Line 1,097: Line 850:
 
|-
 
|-
 
|[[PyGrub]] support for GRUB 2
 
|[[PyGrub]] support for GRUB 2
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 1,108: Line 858:
 
|-
 
|-
 
|[[PyGrub]] support for /boot on ext4
 
|[[PyGrub]] support for /boot on ext4
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 1,119: Line 866:
 
|-
 
|-
 
|[[Xenpvnetboot : A network bootloader for Xen PV guest|pvnetboot]] support<br/><small>Bootloader supporting network boot of PV guests</small>
 
|[[Xenpvnetboot : A network bootloader for Xen PV guest|pvnetboot]] support<br/><small>Bootloader supporting network boot of PV guests</small>
|
 
|
 
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
Line 1,127: Line 872:
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
 
|{{Tick}}
  +
|-
  +
|}
  +
  +
<br>
  +
  +
== PV Protocols and Drivers ==
  +
  +
{|class="prettytable" style="text-align: left; width: 100%" valign="top"
  +
!style="width: 40%;"|
  +
!style="width: 10%;"|Xen 4.4
  +
!style="width: 10%;"|Xen 4.5
  +
!style="width: 10%;"|Xen 4.6
  +
!style="width: 10%;"|Xen 4.7
  +
!style="width: 10%;"|Xen 4.8
  +
!style="width: 10%;"|Xen 4.9
  +
|-
  +
|Common<br/><small>net, block, console, keyboard=kbd, mouse framebuffer=fb</small>
 
|{{Tick}}
 
|{{Tick}}
  +
|{{Tick}}
  +
|{{Tick}}
  +
|{{Tick}}
  +
|{{Tick}}
  +
|{{Tick}} <sup>[ [[#Foot28|28]] ]</sup>
 
|-
 
|-
  +
|USB
  +
|
  +
|
  +
|
  +
|{{Tick}}
  +
|{{Tick}}
  +
|{{Tick}} <sup>[ [[#Foot28|28]] ]</sup>
  +
|-
  +
|pvcalls<br/><small>POSIX function call forwarding</small>
  +
|
  +
|
  +
|
  +
|
  +
|
  +
|{{Tick}} <sup>preview [ [[#Foot28|28]] ]</sup>
  +
|-
  +
|9pfs<br/><small>share a filesystem between VMs (a requirement for adding Xen support to many container engines)</small>
  +
|
  +
|
  +
|
  +
|
  +
|
  +
|{{Tick}} <sup>preview [ [[#Foot28|28]] ]</sup>
  +
|-
  +
|sndif (sound device)<br/><small>used in automotive/embedded</small>
  +
|
  +
|
  +
|
  +
|
  +
|
  +
|{{Tick}} <sup>preview [ [[#Foot28|28]] ]</sup>
  +
|-
  +
|displif (display)<br/><small>used in automotive/embedded</small>
  +
|
  +
|
  +
|
  +
|
  +
|
  +
|{{Tick}} <sup>preview [ [[#Foot28|28]] ]</sup>
 
|}
 
|}
   
Line 1,161: Line 967:
 
<br/><span id="Foot25"><sup>[ 25 ]</sup> Added experimental support for VT-d Posted Interrupts, VMX TSC Scaling, Memory Protection Keys
 
<br/><span id="Foot25"><sup>[ 25 ]</sup> Added experimental support for VT-d Posted Interrupts, VMX TSC Scaling, Memory Protection Keys
 
<br/><span id="Foot26"><sup>[ 26 ]</sup> Removed support for Huawei hip04-d04
 
<br/><span id="Foot26"><sup>[ 26 ]</sup> Removed support for Huawei hip04-d04
  +
<br/><span id="Foot27"><sup>[ 27 ]</sup> See [https://lists.xenproject.org/archives/html/xen-devel/2017-06/threads.html#03039 xen-devel discussion "livepatch: Declare live patching as a supported feature"]
  +
<br/><span id="Foot28"><sup>[ 28 ]</sup> See [https://lists.xenproject.org/archives/html/xen-devel/2017-06/threads.html#03109 xen-devel discussion "Updating https://wiki.xenproject.org/wiki/Xen_Project_Release_Features to reflect support status of new features"]
  +
<br/><span id="Foot29"><sup>[ 29 ]</sup> Security support via [https://libvirt.org/securityprocess.html libvirt.org/securityprocess]
   
 
[[Category:Xen]] [[Category:Users]] [[Category:Fundamentals]]
 
[[Category:Xen]] [[Category:Users]] [[Category:Fundamentals]]
   
[[Category:Xen 4.2]]
 
[[Category:Xen 4.3]]
 
 
[[Category:Xen 4.4]]
 
[[Category:Xen 4.4]]
 
[[Category:Xen 4.5]]
 
[[Category:Xen 4.5]]
Line 1,171: Line 978:
 
[[Category:Xen 4.7]]
 
[[Category:Xen 4.7]]
 
[[Category:Xen 4.8]]
 
[[Category:Xen 4.8]]
  +
[[Category:Xen 4.9]]

Latest revision as of 07:24, 23 January 2020

Icon Info.png Note that for Xen 4.10or newer this information is in the SUPPORT.md file in the source tree and tarball. A generated web-page for 4.10 or newer can be found here.


Legend:

  • : Feature
  • : Partial
  • : Removed
  • For definitions of experimental, preview, supported and deprecated see here

Xen 4.10 or Newer

The matrix is generated with the relevant tree, aka

Archive

To make the table more usable, we have archived information related to older releases in

Overview

Xen 4.4 Xen 4.5 Xen 4.6 Xen 4.7 Xen 4.8 Xen 4.9
Initial Release 10 March 2014 15 Jan 2015 13 Oct 2015 20 June 2016 5 Dec 2016 28 June 2017
Supported until Sept 2015 July 2016 April 2017 Dec 2017 June 2018 Jan 2019
Security support until March 2017 Jan 2018 Oct 2018 June 2019 Dec 2019 July 2020
Feature List FL 4.4 FL 4.5 FL 4.6 FL 4.7 FL 4.8 FL 4.9
Release Notes RN 4.4 RN 4.5 RN 4.6 RN 4.7 RN 4.8 RN 4.9
Supported Mainline Architectures for the hypervisor (Host)
X86-64
ARM v7 + Virtualization Extensions [ 8 ] [ 14 ] [ 26 ] [ 26 ] [ 26 ]
ARM v8 [ 8 ] [ 15 ] [ 15 ] [ 15 ] [ 15 ]
Guest Types
For X86 Architectures
Paravirtualised
Traditional Xen Project PV guest
HVM Guest [ 1 ]
Fully virtualised guest using hardware virtualisation extensions
PV-on-HVM Guest [ 1 ]
Fully virtualised guest using PV extensions/drivers for improved performance
PVH Guest preview preview
added PVH Dom0
preview preview preview
started implementing PVHv2
preview
removed PVHv1
For ARM Architectures
ARM Guest
Optimal combination of full virtualization and PV extensions


Limits

Xen 4.4 Xen 4.5 Xen 4.6 Xen 4.7 Xen 4.8 Xen 4.9 - 4.11
Host Limits
For X86 Architectures
Physical CPUs 4095 4095 4095 4095 4095 4095
Physical RAM 16TB 16TB 16TB 16TB 16TB 16TB
For ARM Architectures
Physical CPUs 8 8 8 for 32bit; 128 for 64bit 8 for 32bit; 128 for 64bit 8 for 32bit; 128 for 64bit 8 for 32bit; 128 for 64bit
Physical RAM 16GB 16GB for 32bit, 5TB for 64bit 16GB for 32bit, 5TB for 64bit 16GB for 32bit, 5TB for 64bit 16GB for 32bit, 5TB for 64bit 16GB for 32bit, 5TB for 64bit
Guest Limits
X86 PV Guest Limits
Virtual CPUs 512 512 512 512 512 512
Virtual RAM 512GB 512GB 512GB > 1TB > 1TB > 1TB
X86 HVM Guest Limits
Virtual CPUs 128 128 128 128 128 128
Virtual RAM 1TB 1TB 1TB 1TB 1TB 1TB
ARM Guest Limits
Virtual CPUs 8 8 8 for 32bit; 128 for 64bit 8 for 32bit; 128 for 64bit 8 for 32bit; 128 for 64bit 8 for 32bit; 128 for 64bit
Virtual RAM 16GB 1TB [ 7 ] 1TB [ 7 ] 1TB [ 7 ] 1TB [ 7 ] 1TB [ 7 ]
Number of event channels
Event Channels 131072 131072 131072 131072 131072 131072



Toolstack and Tools

Xen 4.4 Xen 4.5 Xen 4.6 Xen 4.7 Xen 4.8 Xen 4.9
Toolstack
Built-in
xend / xm deprecated removed
XL
Qemu based disk backend (qdisk) for XL
[ 5 ] [ 5 ] [ 5 ] [ 5 ] [ 5 ] [ 5 ]
XL Open vSwitch integration
systemd support
JSON support infrastructure only, no tools support infrastructure only, no tools support infrastructure only, no tools support infrastructure only, no tools support infrastructure only, no tools support
AHCI support
PVUSB
HVM USB passthrough
QEMU backend hotplugging
Soft-Reset
3rd Party
libvirt driver for XL [ 29 ] [ 29 ] [ 16 ] [ 29 ] [ 16 ] [ 29 ] [ 16 ] [ 29 ] [ 16 ] [ 29 ]
Tooling
gdbsx
debugger to debug ELF guests
[ 12 ] [ 12 ] [ 12 ] [ 12 ] [ 12 ]
vPMU
Virtual Performance Management Unit for HVM guests
[ 4 ] [ 4 ][ 12 ] [ 4 ][ 12 ] [ 4 ][ 12 ] [ 4 ][ 12 ] [ 4 ][ 12 ]
Serial console Add Oxford PCIe, and Broadcom TrueManage support
xentrace
performance analysis
[ 12 ] Added Xenalyze


Features

Xen 4.4 Xen 4.5 Xen 4.6 Xen 4.7 Xen 4.8 Xen 4.9
Advanced Memory Management
Memory Ballooning
Memory Sharing
allow sharing of identical pages between HVM guests
preview [ 3 ] preview [ 3 ][ 12 ] preview [ 3 ][ 12 ] preview [ 3 ][ 12 ] preview [ 3 ][ 12 ] preview [ 3 ][ 12 ]
Memory Paging
allow pages belonging to HVM guests to be paged to disk
preview [ 3 ] preview [ 3 ][ 12 ] preview [ 3 ][ 12 ] preview [ 3 ][ 12 ] preview [ 3 ][ 12 ] preview [ 3 ][ 12 ]
TMEM - Transcendent Memory experimental [ 2 ] experimental [ 2 ][ 12 ] experimental [ 2 ][ 12 ] experimental [ 2 ][ 12 ] experimental [ 2 ][ 12 ] experimental [ 2 ][ 12 ]
Resource Management
Cpupool
advanced partitioning
Credit 2 Scheduler
designed for latency-sensitive workloads and very large systems.
experimental experimental experimental (significant additions)
RTDS Based Scheduler
Real-time CPU scheduler built to provide guaranteed CPU capacity to guest VMs on SMP hosts.
experimental experimental experimental (significant additions) experimental experimental
Null Scheduler
Scheduler for embedded workloads where 0-scheduling overhead is required
preview [ 28 ]
NUMA scheduler affinity [ 12 ] [ 12 ] [ 12 ] [ 12 ] [ 12 ]
Scalability
1GB/2MB super page support
Deliver events to PVHVM guests using Xen event channels
Fair locks (ticket-locks)
High Availability and Fault Tolerance
Live Migration, Save & Restore [ 12 ] [ 18 ] Migration v2 [ 23 ] [ 23 ] [ 23 ]
Remus Fault Tolerance improvements
for COLO
[ 10 ][ 12 ]
Remus ported to Migration v2
COLO Manager experimental [ 24 ] experimental [ 24 ] experimental [ 24 ]
X86 vMCE
Forward Machine Check Exceptions to Appropriate guests
Network and Storage
Online resize of virtual disks
Security (also see this presentation or this document)
Driver Domains
Device Model Stub Domains [ 12 ] [ 12 ][ 17 ] [ 12 ][ 17 ] [ 12 ][ 17 ] [ 12 ][ 17 ]
Kconfig experimental experimental experimental
Live Patching preview [ 22 ] preview (added ARM support) [ 27 ], ARM support still in preview
Virtual Machine Introspection (Memaccess and VM Event APIs)
enabling integration of 3rd party security solutions into Xen virtualized environments
improvements[ 12 ] [ 19 ] reworked with ARM support, added VM Event APIs improvements
XSM & FLASK
mandatory access control policy providing fine-grained controls over Xen domains, similar to SELinux
[ 17 ] [ 17 ] [ 17 ] [ 17 ]
XSM & FLASK support for IS_PRIV [ 17 ] [ 17 ] [ 17 ] [ 17 ]
vTPM Support
vTPM 2.0


Interoperability / Hardware Support

Xen 4.4 Xen 4.5 Xen 4.6 Xen 4.7 Xen 4.8 Xen 4.9
X86
X86 Nested Virtualisation
Running a hypervisor inside an HVM guest
preview preview [ 11 ] preview [ 11 ] preview [ 11 ] preview [ 11 ] preview, fixes [ 11 ]
HVM PXE Stack (x86) gPXE iPXE iPXE iPXE iPXE iPXE
Physical CPU Hotplug [ 12 ] [ 12 ] [ 12 ] [ 12 ] [ 12 ]
Physical Memory Hotplug [ 12 ] [ 12 ] [ 12 ] [ 12 ] [ 12 ]
Support for PV kernels in bzImage format [ 12 ] [ 12 ] [ 12 ] [ 12 ] [ 12 ]
PCI Passthrough [ 12 ] [ 12 ][ 13 ] [ 12 ] [ 12 ] [ 12 ] [ 12 ]
X86 Advanced Vector eXtension (AVX) AVX-512
Intel Platform QoS Technologies preview: CMT preview: CAT, MBM preview: CDP preview: CDP preview: CDP
Other Intel® Xeon® Features [ 25 ] [ 25 ] [ 25 ]
ARM
64K Guest Pages
ACPI / SBBR Compliance experimental; ACPI 6.0+ experimental experimental
ACPI guest support with UEFI with UEFI
PCSI Compatibility v0.1 & 0.2 v1.0 v1.0 v1.0
ARM® Interrupt Virtualization GiC v2 GiC v2m/GiC v3 improvements to v2/v3
Wallclock support


Device Models and Virtual Firmware

Xen 4.4 Xen 4.5 Xen 4.6 Xen 4.7 Xen 4.8 Xen 4.9
Device Models and Virtual Firmware for HVM guests
For X86 Architectures
Traditional Device Model
Device emulator based on Xen fork of Qemu
Qemu Upstream Device Model
Device emulator based on upstream Qemu
default, unless stubdomains are used default, unless stubdomains are used default, unless stubdomains are used default, unless stubdomains are used default, unless stubdomains are used default, unless stubdomains are used
DMOP (Device Model Operation Hypercall) [ 28 ]
ROMBIOS
BIOS used with traditional device model only
SeaBIOS
BIOS used with upstream qemu device model and XL only
OVMF/Tianocore
UEFI Firmware used with upstream qemu device model and XL only
experimental [ 4 ] experimental [ 4 ] experimental [ 4 ] + ARM support experimental [ 4 ] + ARM support experimental [ 4 ] + ARM support experimental [ 4 ] + ARM support
PV Bootloader support
For X86 Architectures
PyGrub support for GRUB 2
PyGrub support for /boot on ext4
pvnetboot support
Bootloader supporting network boot of PV guests


PV Protocols and Drivers

Xen 4.4 Xen 4.5 Xen 4.6 Xen 4.7 Xen 4.8 Xen 4.9
Common
net, block, console, keyboard=kbd, mouse framebuffer=fb
[ 28 ]
USB [ 28 ]
pvcalls
POSIX function call forwarding
preview [ 28 ]
9pfs
share a filesystem between VMs (a requirement for adding Xen support to many container engines)
preview [ 28 ]
sndif (sound device)
used in automotive/embedded
preview [ 28 ]
displif (display)
used in automotive/embedded
preview [ 28 ]


Notes

[ 0 ] Compile time limit, can be increased
[ 1 ] Requires hardware virtualisation support
[ 2 ] Disabled by default (enable with hypervisor command line option). Not supported in production and doesn't have full security support
[ 3 ] Preview, due to limited tools support. Hypervisor side in good shape
[ 4 ] Disabled by default (enable with hypervisor command line option)
[ 5 ] Used as a fallback if blkback and/or blktap2 are not available
[ 6 ] See Xen ARM with Virtualization Extensions; basic functionality implemented; lack of real hardware to validate against
[ 7 ] Limited by supported host memory
[ 8 ] Tested on Broadcom 7445D0 A15, Midway (Calxeda), Odroid-XU, OMAP5, OMAP6, DRA7 (Texas Instrument), Exynos5 (Samsung), SunXI (AllWinner) aka A20/A21, CubieTruck, CubieBoard
[ 9 ] Tested on Vexpress (ARM Ltd.), Seattle (AMD), Mustang (Applied Micro-X-Gene), McDivitt aka HP Moonshot cartridge (Applied Micro X-Gene)
[ 10 ] Remus has been ported to XL and has been tested with COLO which is currently outside the Xen tree, but planned to be included in Xen 4.6. Also see Remus Toolkit Differences explaining differences between Remus with XM (not supported in Xen 4.5) and XL
[ 11 ] There are a number of reported crashes that have not yet been fixed and some known limitations
[ 12 ] Not yet supported on ARM; for a more detailed update on what is supported on ARM see here and here
[ 13 ] The PCI passthrough features did not make it on time for Xen 4.5, but doing passthrough of MMIO regions did. In the ARM world it is quite common to have no PCIe devices and to only access devices using MMIO regions. As such this feature allows us to have driver domains be in charge of network or storage devices.
[ 14 ] Added the following platforms to [ 8 ]: Renesas R-Car Gen2, Huawei hip04-d04
[ 15 ] Added the following platforms to [ 9 ]: Thunder X (partial), Xilinx ZynqMP SoC
[ 16 ] Now tested as part of Xen Project Test Lab and OpenStack CI Loop
[ 17 ] Now tested as part of Xen Project Test Lab
[ 18 ] Migration v2: see [1] and [2]. VM migration using libvirt between two hosts is now tested. Live Migration between hosts of different Xen versions is now tested.
[ 19 ] The memory event subsystem has been reworked and extended to a new VM event subsystem. The new VM event subsystems supports both the ARM and x86 architectures.
[ 20 ] Passthrough for non-PCI devices allows users to passthrough devices via partial device trees.
[ 21 ] Dates for historical releases have not be researched.
[ 22 ] The code for hypervisor live patching is NOT enabled by default. When compiling the hypervisor one must change the config to build it. Note that Live Patching is currently only supported on x86. For more information on live patching, see LivePatch.
[ 23 ] CPU ID Levelling enables migration of VM’s between a larger range of non-identical hosts than previously supported.
[ 24 ] The COLO Manager has been fully integrated as an experimental feature into Xen 4.7. Note that the COLO Block Replication and COLO Proxy components, both of which are QEMU components, are currently still reviewed by the QEMU community. Both components are available as out-of-tree add-ons to the Xen Project Hypervisor, until fully integrated into QEMU.
[ 25 ] Added experimental support for VT-d Posted Interrupts, VMX TSC Scaling, Memory Protection Keys
[ 26 ] Removed support for Huawei hip04-d04
[ 27 ] See xen-devel discussion "livepatch: Declare live patching as a supported feature"
[ 28 ] See xen-devel discussion "Updating https://wiki.xenproject.org/wiki/Xen_Project_Release_Features to reflect support status of new features"
[ 29 ] Security support via libvirt.org/securityprocess