OBS User unknown 2008-03-27 22:24:06 +00:00 committed by Git OBS Bridge
parent 1ae41ae3bd
commit 614a20ee4e
19 changed files with 629 additions and 402 deletions

View File

@ -53,7 +53,7 @@ Index: xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
# Xen API console 'other_config' keys.
XENAPI_CONSOLE_OTHER_CFG = ['vncunused', 'vncdisplay', 'vnclisten',
@@ -1588,3 +1588,6 @@ class XendConfig(dict):
@@ -1589,3 +1589,6 @@ class XendConfig(dict):
def image_type(self):
stored_type = self['platform'].get('image_type')
return stored_type or (self.is_hvm() and 'hvm' or 'linux')
@ -198,7 +198,7 @@ Index: xen-3.2.1-testing/xen/common/domain.c
===================================================================
--- xen-3.2.1-testing.orig/xen/common/domain.c
+++ xen-3.2.1-testing/xen/common/domain.c
@@ -235,7 +235,7 @@ struct domain *domain_create(
@@ -231,7 +231,7 @@ struct domain *domain_create(
init_status |= INIT_gnttab;
}

View File

@ -10,7 +10,7 @@ Index: xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-3.2.1-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
@@ -1590,4 +1590,4 @@ class XendConfig(dict):
@@ -1591,4 +1591,4 @@ class XendConfig(dict):
return stored_type or (self.is_hvm() and 'hvm' or 'linux')
def is_hap(self):

View File

@ -0,0 +1,32 @@
# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1205838353 0
# Node ID 939ceafa5ef9244829b7347a0338002c7ae1a8a0
# Parent 2ed94b9b10b3770d7bfd7346f532b70e70be35c1
Initialization of new domU config options via XenAPI
Many of the new domU config options related to hvm guests (e.g. hpet,
rtc_timeoffset, etc.) are not initialized with default values via
XenAPI, which prevents starting an hvm domU created through XenAPI.
This patch ensures the new options are set with appropriate default
values in XendConfig platform sanity check.
Signed-off-by: Jim Fehlig <jfehlig@novell.com>
Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-3.2-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-3.2-testing/tools/python/xen/xend/XendConfig.py
@@ -403,6 +403,12 @@ class XendConfig(dict):
self['platform']['device_model'] = xen.util.auxbin.pathTo("qemu-dm")
if self.is_hvm():
+ if 'timer_mode' not in self['platform']:
+ self['platform']['timer_mode'] = 0
+ if 'rtc_timeoffset' not in self['platform']:
+ self['platform']['rtc_timeoffset'] = 0
+ if 'hpet' not in self['platform']:
+ self['platform']['hpet'] = 0
# Compatibility hack, can go away soon.
if 'soundhw' not in self['platform'] and \
self['platform'].get('enable_audio'):

View File

@ -0,0 +1,31 @@
# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1205838386 0
# Node ID 06dbce4a60f973ccdb925a29a0b34b72774a5d0b
# Parent 939ceafa5ef9244829b7347a0338002c7ae1a8a0
Set device model when creating rfb console via XenAPI
When creating a rfb console via XenAPI the device model is not being
set to qemu-dm, resulting in no pvfb since qemu-dm is not launched
when domU is started. This patch sets device model when a rfb console
is created via XenAPI.
Signed-off-by: Jim Fehlig <jfehlig@novell.com>
Index: xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-3.2.1-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
@@ -1272,6 +1272,12 @@ class XendConfig(dict):
target['devices'][dev_uuid] = ('vfb', dev_info)
target['console_refs'].append(dev_uuid)
+ # if console is rfb, set device_model ensuring qemu
+ # is invoked for pvfb services
+ if 'device_model' not in target['platform']:
+ target['platform']['device_model'] = \
+ xen.util.auxbin.pathTo("qemu-dm")
+
# Finally, if we are a pvfb, we need to make a vkbd
# as well that is not really exposed to Xen API
vkbd_uuid = uuid.createString()

View File

@ -1,11 +1,31 @@
Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
# HG changeset patch
# User Keir Fraser <keir.fraser@citrix.com>
# Date 1205838420 0
# Node ID c949248d590a59ee558780b636fe753434b5c933
# Parent 06dbce4a60f973ccdb925a29a0b34b72774a5d0b
Convert XenAPI platform values to appropriate types.
XenAPI defines the platform attribute of a VM as a string-string map
but in various code paths in xend the platform entries are expected to be
another type, e.g. int. This patch defines the types of each platform
entry and converts the entry values to appropriate type when new domU
configuration is created via XenAPI.
Alternatively the values could be casted to appropriate type when used
but seems prudent to do the conversion when domU configuration is
created.
Signed-off-by: Jim Fehlig <jfehlig@novell.com>
Index: xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-3.2-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-3.2-testing/tools/python/xen/xend/XendConfig.py
@@ -124,13 +124,41 @@ XENAPI_CFG_TO_LEGACY_CFG = {
--- xen-3.2.1-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
@@ -123,14 +123,43 @@ XENAPI_CFG_TO_LEGACY_CFG = {
LEGACY_CFG_TO_XENAPI_CFG = reverse_dict(XENAPI_CFG_TO_LEGACY_CFG)
# Platform configuration keys.
-# Platform configuration keys.
-XENAPI_PLATFORM_CFG = [ 'acpi', 'apic', 'boot', 'device_model', 'display',
- 'fda', 'fdb', 'keymap', 'isa', 'localtime', 'monitor',
- 'nographic', 'pae', 'rtc_timeoffset', 'serial', 'sdl',
@ -13,11 +33,13 @@ Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
- 'vncconsole', 'vncdisplay', 'vnclisten', 'timer_mode',
- 'vncpasswd', 'vncunused', 'xauthority', 'pci', 'vhpt',
- 'guest_os_type', 'hap']
+# Platform configuration keys and their types.
+XENAPI_PLATFORM_CFG_TYPES = {
+ 'acpi': int,
+ 'apic': int,
+ 'boot': str,
+ 'device_model': str,
+ 'loader': str,
+ 'display' : str,
+ 'fda': str,
+ 'fdb': str,
@ -31,7 +53,7 @@ Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
+ 'serial': str,
+ 'sdl': int,
+ 'soundhw': str,
+ 'stdvga': int,
+ 'stdvga': int,
+ 'usb': int,
+ 'usbdevice': str,
+ 'hpet': int,
@ -51,28 +73,7 @@ Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
# Xen API console 'other_config' keys.
XENAPI_CONSOLE_OTHER_CFG = ['vncunused', 'vncdisplay', 'vnclisten',
@@ -397,12 +425,19 @@ class XendConfig(dict):
def _platform_sanity_check(self):
if 'keymap' not in self['platform'] and XendOptions.instance().get_keymap():
self['platform']['keymap'] = XendOptions.instance().get_keymap()
-
+
+ # XenAPI defines
if self.is_hvm() or self.has_rfb():
if 'device_model' not in self['platform']:
self['platform']['device_model'] = xen.util.auxbin.pathTo("qemu-dm")
if self.is_hvm():
+ if 'timer_mode' not in self['platform']:
+ self['platform']['timer_mode'] = 0
+ if 'rtc_timeoffset' not in self['platform']:
+ self['platform']['rtc_timeoffset'] = 0
+ if 'hpet' not in self['platform']:
+ self['platform']['hpet'] = 0
# Compatibility hack, can go away soon.
if 'soundhw' not in self['platform'] and \
self['platform'].get('enable_audio'):
@@ -523,7 +558,7 @@ class XendConfig(dict):
@@ -529,7 +558,7 @@ class XendConfig(dict):
cfg['platform']['localtime'] = localtime
# Compatibility hack -- can go soon.
@ -81,7 +82,7 @@ Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
val = sxp.child_value(sxp_cfg, "platform_" + key, None)
if val is not None:
self['platform'][key] = val
@@ -702,7 +737,7 @@ class XendConfig(dict):
@@ -708,7 +737,7 @@ class XendConfig(dict):
self.update_with_image_sxp(image_sxp)
# Convert Legacy HVM parameters to Xen API configuration
@ -90,7 +91,7 @@ Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
if key in cfg:
self['platform'][key] = cfg[key]
@@ -752,7 +787,7 @@ class XendConfig(dict):
@@ -758,7 +787,7 @@ class XendConfig(dict):
if image_type != 'hvm' and image_type != 'linux':
self['platform']['image_type'] = image_type
@ -99,7 +100,7 @@ Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
val = sxp.child_value(image_sxp, key, None)
if val is not None and val != '':
self['platform'][key] = val
@@ -836,6 +871,19 @@ class XendConfig(dict):
@@ -842,6 +871,19 @@ class XendConfig(dict):
self[key] = type_conv(val)
else:
self[key] = val
@ -119,20 +120,7 @@ Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
self['vcpus_params']['weight'] = \
int(self['vcpus_params'].get('weight', 256))
@@ -1265,6 +1313,12 @@ class XendConfig(dict):
target['devices'][dev_uuid] = ('vfb', dev_info)
target['console_refs'].append(dev_uuid)
+ # if console is rfb, set device_model ensuring qemu
+ # is invoked for pvfb services
+ if 'device_model' not in target['platform']:
+ target['platform']['device_model'] = \
+ xen.util.auxbin.pathTo("qemu-dm")
+
# Finally, if we are a pvfb, we need to make a vkbd
# as well that is not really exposed to Xen API
vkbd_uuid = uuid.createString()
@@ -1508,7 +1562,7 @@ class XendConfig(dict):
@@ -1521,7 +1563,7 @@ class XendConfig(dict):
if self.has_key('PV_args') and self['PV_args']:
image.append(['args', self['PV_args']])
@ -141,7 +129,7 @@ Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py
if key in self['platform']:
image.append([key, self['platform'][key]])
@@ -1544,7 +1598,7 @@ class XendConfig(dict):
@@ -1557,7 +1599,7 @@ class XendConfig(dict):
self['PV_ramdisk'] = sxp.child_value(image_sxp, 'ramdisk','')
self['PV_args'] = kernel_args

View File

@ -10,7 +10,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/traps.c
#include <asm/io.h>
#include <asm/atomic.h>
#include <asm/desc.h>
@@ -2828,7 +2829,7 @@ long unregister_guest_nmi_callback(void)
@@ -2880,7 +2881,7 @@ long unregister_guest_nmi_callback(void)
return 0;
}

View File

@ -140,7 +140,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
#include <asm/types.h>
#include <asm/domain.h>
#include <asm/hvm/vmx/vmx.h>
@@ -32,7 +33,6 @@ static int ept_next_level(struct domain
@@ -53,7 +54,6 @@ static int ept_next_level(struct domain
u32 index;
index = *gfn_remainder >> shift;
@ -148,7 +148,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
ept_entry = (*table) + index;
@@ -59,31 +59,52 @@ static int ept_next_level(struct domain
@@ -80,31 +80,51 @@ static int ept_next_level(struct domain
/* last step */
ept_entry->r = ept_entry->w = ept_entry->x = 1;
}
@ -194,7 +194,6 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
+ if ( order != 0 )
+ if ( (gfn & ((1UL << order) - 1)) )
+ return 1;
+
+ for ( i = EPT_DEFAULT_GAW; i > walk_level; i-- )
+ {
+ ret = ept_next_level(d, 0, &table,
@ -213,7 +212,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
ept_entry = table + index;
if ( mfn_valid(mfn_x(mfn)) )
@@ -93,9 +114,20 @@ ept_set_entry(struct domain *d, unsigned
@@ -114,9 +134,20 @@ ept_set_entry(struct domain *d, unsigned
d->arch.p2m.max_mapped_pfn = gfn;
ept_entry->emt = EPT_DEFAULT_MT;
@ -236,7 +235,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
ept_entry->rsvd = 0;
ept_entry->avail2 = 0;
/* last step */
@@ -122,7 +154,7 @@ static mfn_t ept_get_entry(struct domain
@@ -144,7 +175,7 @@ static mfn_t ept_get_entry(struct domain
unsigned long gfn_remainder = gfn;
ept_entry_t *ept_entry;
u32 index;
@ -245,7 +244,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
mfn_t mfn = _mfn(INVALID_MFN);
*t = p2m_mmio_dm;
@@ -134,18 +166,29 @@ static mfn_t ept_get_entry(struct domain
@@ -156,16 +187,30 @@ static mfn_t ept_get_entry(struct domain
/* should check if gfn obeys GAW here */
for ( i = EPT_DEFAULT_GAW; i > 0; i-- )
@ -262,26 +261,85 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
+ index = gfn_remainder >> ( i * EPT_TABLE_ORDER);
ept_entry = table + index;
- if ( (ept_entry->epte & 0x7) == 0x7 )
+ if ( ept_entry->avail1 != p2m_invalid )
if ( ept_entry->avail1 != p2m_invalid )
{
- if ( ept_entry->avail1 != p2m_invalid )
- {
- *t = ept_entry->avail1;
- mfn = _mfn(ept_entry->mfn);
+ *t = ept_entry->avail1;
+ mfn = _mfn(ept_entry->mfn);
+ if ( i )
+ {
+ /* we may meet super pages, and to split into 4k pages
+ * to emulate p2m table
+ */
+ unsigned long split_mfn =
+ mfn_x(mfn) + (gfn_remainder & ( ((1 << (i*EPT_TABLE_ORDER)) - 1 )));
+ mfn = _mfn(split_mfn);
}
*t = ept_entry->avail1;
mfn = _mfn(ept_entry->mfn);
+ if ( i )
+ {
+ /* we may meet super pages, and to split into 4k pages
+ * to emulate p2m table
+ */
+ unsigned long split_mfn =
+ mfn_x(mfn) + (gfn_remainder & ( ((1 << (i*EPT_TABLE_ORDER)) - 1 )));
+ mfn = _mfn(split_mfn);
+ }
}
out:
@@ -195,18 +240,24 @@ static void ept_change_entry_type_global
l4e = map_domain_page(mfn_x(pagetable_get_mfn(d->arch.phys_table)));
for (i4 = 0; i4 < EPT_PAGETABLE_ENTRIES; i4++ )
{
- if ( !(l4e+i4)->epte || (l4e+i4)->sp_avail)
+ if ( !(l4e+i4)->epte )
continue;
+ if ( !(l4e+i4)->sp_avail )
+ {
l3e = map_domain_page((l4e+i4)->mfn);
for ( i3 = 0; i3 < EPT_PAGETABLE_ENTRIES; i3++ )
{
- if ( !(l3e+i3)->epte || (l3e+i3)->sp_avail )
+ if ( !(l3e+i3)->epte )
continue;
+ if ( !(l3e+i3)->sp_avail )
+ {
l2e = map_domain_page((l3e+i3)->mfn);
for ( i2 = 0; i2 < EPT_PAGETABLE_ENTRIES; i2++ )
{
- if ( !(l2e+i2)->epte || (l2e+i2)->sp_avail )
+ if ( !(l2e+i2)->epte )
continue;
+ if ( !(l2e+i2)->sp_avail )
+ {
l1e = map_domain_page((l2e+i2)->mfn);
for ( i1 = 0; i1 < EPT_PAGETABLE_ENTRIES; i1++ )
{
@@ -218,10 +269,34 @@ static void ept_change_entry_type_global
ept_p2m_type_to_flags(l1e+i1, nt);
}
unmap_domain_page(l1e);
+ }
+ else
+ {
+ if ( (l2e+i2)->avail1 != ot )
+ continue;
+ (l2e+i2)->avail1 = nt;
+ ept_p2m_type_to_flags(l2e+i2, nt);
+ }
}
unmap_domain_page(l2e);
+ }
+ else
+ {
+ if ( (l3e+i3)->avail1 != ot )
+ continue;
+ (l3e+i3)->avail1 = nt;
+ ept_p2m_type_to_flags(l3e+i3, nt);
+ }
}
unmap_domain_page(l3e);
+ }
+ else
+ {
+ if ( (l4e+i4)->avail1 != ot )
+ continue;
+ (l4e+i4)->avail1 = nt;
+ ept_p2m_type_to_flags(l4e+i4, nt);
+ }
}
unmap_domain_page(l4e);
Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
===================================================================
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/p2m.c
@ -295,7 +353,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
{
// XXX -- this might be able to be faster iff current->domain == d
mfn_t table_mfn = pagetable_get_mfn(d->arch.phys_table);
@@ -285,9 +285,9 @@ void p2m_init(struct domain *d)
@@ -293,9 +293,9 @@ void p2m_change_entry_type_global(struct
}
static inline
@ -307,7 +365,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
}
// Allocate a new p2m table for a domain.
@@ -349,7 +349,7 @@ int p2m_alloc_table(struct domain *d,
@@ -357,7 +357,7 @@ int p2m_alloc_table(struct domain *d,
P2M_PRINTK("populating p2m table\n");
/* Initialise physmap tables for slot zero. Other code assumes this. */
@ -316,7 +374,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
goto error;
/* Copy all existing mappings from the page list and m2p */
@@ -368,7 +368,7 @@ int p2m_alloc_table(struct domain *d,
@@ -376,7 +376,7 @@ int p2m_alloc_table(struct domain *d,
(gfn != 0x55555555L)
#endif
&& gfn != INVALID_M2P_ENTRY
@ -325,7 +383,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
goto error;
}
@@ -682,30 +682,31 @@ static void audit_p2m(struct domain *d)
@@ -690,30 +690,31 @@ static void audit_p2m(struct domain *d)
static void
@ -362,7 +420,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
{
unsigned long ogfn;
p2m_type_t ot;
@@ -756,13 +757,13 @@ guest_physmap_add_entry(struct domain *d
@@ -764,13 +765,13 @@ guest_physmap_add_entry(struct domain *d
P2M_DEBUG("old gfn=%#lx -> mfn %#lx\n",
ogfn , mfn_x(omfn));
if ( mfn_x(omfn) == mfn )
@ -378,7 +436,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
rc = -EINVAL;
set_gpfn_from_mfn(mfn, gfn);
}
@@ -770,7 +771,7 @@ guest_physmap_add_entry(struct domain *d
@@ -778,7 +779,7 @@ guest_physmap_add_entry(struct domain *d
{
gdprintk(XENLOG_WARNING, "Adding bad mfn to p2m map (%#lx -> %#lx)\n",
gfn, mfn);
@ -387,7 +445,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
rc = -EINVAL;
}
@@ -893,7 +894,7 @@ p2m_type_t p2m_change_type(struct domain
@@ -898,7 +899,7 @@ p2m_type_t p2m_change_type(struct domain
mfn = gfn_to_mfn(d, gfn, &pt);
if ( pt == ot )
@ -396,7 +454,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
p2m_unlock(d);
@@ -917,7 +918,7 @@ set_mmio_p2m_entry(struct domain *d, uns
@@ -922,7 +923,7 @@ set_mmio_p2m_entry(struct domain *d, uns
set_gpfn_from_mfn(mfn_x(omfn), INVALID_M2P_ENTRY);
}
@ -405,7 +463,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
if ( 0 == rc )
gdprintk(XENLOG_ERR,
"set_mmio_p2m_entry: set_p2m_entry failed! mfn=%08lx\n",
@@ -941,7 +942,7 @@ clear_mmio_p2m_entry(struct domain *d, u
@@ -946,7 +947,7 @@ clear_mmio_p2m_entry(struct domain *d, u
"clear_mmio_p2m_entry: gfn_to_mfn failed! gfn=%08lx\n", gfn);
return 0;
}

122
ept-livemgr-x86-miss.patch Normal file
View File

@ -0,0 +1,122 @@
Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
===================================================================
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/p2m-ept.c
+++ xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
@@ -23,6 +23,27 @@
#include <asm/types.h>
#include <asm/domain.h>
#include <asm/hvm/vmx/vmx.h>
+#include <asm/hap.h>
+
+static void ept_p2m_type_to_flags(ept_entry_t *entry, p2m_type_t type)
+{
+ switch(type)
+ {
+ case p2m_invalid:
+ case p2m_mmio_dm:
+ default:
+ return;
+ case p2m_ram_rw:
+ case p2m_mmio_direct:
+ entry->r = entry->w = entry->x = 1;
+ return;
+ case p2m_ram_logdirty:
+ case p2m_ram_ro:
+ entry->r = entry->x = 1;
+ entry->w = 0;
+ return;
+ }
+}
static int ept_next_level(struct domain *d, bool_t read_only,
ept_entry_t **table, unsigned long *gfn_remainder,
@@ -100,6 +121,7 @@ ept_set_entry(struct domain *d, unsigned
ept_entry->avail2 = 0;
/* last step */
ept_entry->r = ept_entry->w = ept_entry->x = 1;
+ ept_p2m_type_to_flags(ept_entry, p2mt);
}
else
ept_entry->epte = 0;
@@ -140,13 +162,10 @@ static mfn_t ept_get_entry(struct domain
index = gfn_remainder;
ept_entry = table + index;
- if ( (ept_entry->epte & 0x7) == 0x7 )
+ if ( ept_entry->avail1 != p2m_invalid )
{
- if ( ept_entry->avail1 != p2m_invalid )
- {
- *t = ept_entry->avail1;
- mfn = _mfn(ept_entry->mfn);
- }
+ *t = ept_entry->avail1;
+ mfn = _mfn(ept_entry->mfn);
}
out:
@@ -159,11 +178,64 @@ static mfn_t ept_get_entry_fast(unsigned
return ept_get_entry(current->domain, gfn, t);
}
+/* Walk the whole p2m table, changing any entries of the old type
+ * to the new type. This is used in hardware-assisted paging to
+ * quickly enable or diable log-dirty tracking */
+
+static void ept_change_entry_type_global(struct domain *d, p2m_type_t ot, p2m_type_t nt)
+{
+ if ( pagetable_get_pfn(d->arch.phys_table) == 0 )
+ return;
+
+ if ( EPT_DEFAULT_GAW == 3 )
+ {
+ ept_entry_t *l4e, *l3e, *l2e, *l1e;
+ int i4, i3, i2, i1;
+
+ l4e = map_domain_page(mfn_x(pagetable_get_mfn(d->arch.phys_table)));
+ for (i4 = 0; i4 < EPT_PAGETABLE_ENTRIES; i4++ )
+ {
+ if ( !(l4e+i4)->epte || (l4e+i4)->sp_avail)
+ continue;
+ l3e = map_domain_page((l4e+i4)->mfn);
+ for ( i3 = 0; i3 < EPT_PAGETABLE_ENTRIES; i3++ )
+ {
+ if ( !(l3e+i3)->epte || (l3e+i3)->sp_avail )
+ continue;
+ l2e = map_domain_page((l3e+i3)->mfn);
+ for ( i2 = 0; i2 < EPT_PAGETABLE_ENTRIES; i2++ )
+ {
+ if ( !(l2e+i2)->epte || (l2e+i2)->sp_avail )
+ continue;
+ l1e = map_domain_page((l2e+i2)->mfn);
+ for ( i1 = 0; i1 < EPT_PAGETABLE_ENTRIES; i1++ )
+ {
+ if ( !(l1e+i1)->epte )
+ continue;
+ if ( (l1e+i1)->avail1 != ot )
+ continue;
+ (l1e+i1)->avail1 = nt;
+ ept_p2m_type_to_flags(l1e+i1, nt);
+ }
+ unmap_domain_page(l1e);
+ }
+ unmap_domain_page(l2e);
+ }
+ unmap_domain_page(l3e);
+ }
+ unmap_domain_page(l4e);
+
+ if ( d->vcpu[0] )
+ ept_sync_domain(d->vcpu[0]);
+ }
+}
+
void ept_p2m_init(struct domain *d)
{
d->arch.p2m.set_entry = ept_set_entry;
d->arch.p2m.get_entry = ept_get_entry;
d->arch.p2m.get_entry_fast = ept_get_entry_fast;
+ d->arch.p2m.change_entry_type_global = ept_change_entry_type_global;
}
/*

View File

@ -1,7 +1,7 @@
Index: xen-3.2-testing/tools/libxc/xc_hvm_build.c
Index: xen-3.2.1-testing/tools/libxc/xc_hvm_build.c
===================================================================
--- xen-3.2-testing.orig/tools/libxc/xc_hvm_build.c
+++ xen-3.2-testing/tools/libxc/xc_hvm_build.c
--- xen-3.2.1-testing.orig/tools/libxc/xc_hvm_build.c
+++ xen-3.2.1-testing/tools/libxc/xc_hvm_build.c
@@ -20,6 +20,7 @@
#include <xen/libelf.h>
@ -10,7 +10,7 @@ Index: xen-3.2-testing/tools/libxc/xc_hvm_build.c
static void build_e820map(void *e820_page, unsigned long long mem_size)
{
@@ -154,6 +155,7 @@ static int setup_guest(int xc_handle,
@@ -160,6 +161,7 @@ static int setup_guest(int xc_handle,
struct xen_add_to_physmap xatp;
struct shared_info *shared_info;
void *e820_page;
@ -18,7 +18,7 @@ Index: xen-3.2-testing/tools/libxc/xc_hvm_build.c
struct elf_binary elf;
uint64_t v_start, v_end;
int rc;
@@ -254,6 +256,18 @@ static int setup_guest(int xc_handle,
@@ -269,6 +271,18 @@ static int setup_guest(int xc_handle,
xc_set_hvm_param(xc_handle, dom, HVM_PARAM_BUFIOREQ_PFN, shared_page_nr-2);
xc_set_hvm_param(xc_handle, dom, HVM_PARAM_IOREQ_PFN, shared_page_nr);
@ -37,11 +37,11 @@ Index: xen-3.2-testing/tools/libxc/xc_hvm_build.c
/* Insert JMP <rel32> instruction at address 0x0 to reach entry point. */
entry_eip = elf_uval(&elf, elf.ehdr, e_entry);
if ( entry_eip != 0 )
Index: xen-3.2-testing/xen/arch/x86/hvm/hvm.c
Index: xen-3.2.1-testing/xen/arch/x86/hvm/hvm.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/hvm/hvm.c
+++ xen-3.2-testing/xen/arch/x86/hvm/hvm.c
@@ -1954,6 +1954,10 @@ long do_hvm_op(unsigned long op, XEN_GUE
--- xen-3.2.1-testing.orig/xen/arch/x86/hvm/hvm.c
+++ xen-3.2.1-testing/xen/arch/x86/hvm/hvm.c
@@ -1992,6 +1992,10 @@ long do_hvm_op(unsigned long op, XEN_GUE
}
d->arch.hvm_domain.params[a.index] = a.value;
rc = 0;
@ -52,10 +52,10 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/hvm.c
}
else
{
Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
Index: xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmcs.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/hvm/vmx/vmcs.c
+++ xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
--- xen-3.2.1-testing.orig/xen/arch/x86/hvm/vmx/vmcs.c
+++ xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmcs.c
@@ -105,11 +105,23 @@ static void vmx_init_vmcs_config(void)
if ( _vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS )
@ -169,11 +169,11 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
vmx_vmcs_exit(v);
}
Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
Index: xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmx.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -90,6 +90,8 @@ static int vmx_vcpu_initialise(struct vc
--- xen-3.2.1-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -89,6 +89,8 @@ static int vmx_vcpu_initialise(struct vc
return rc;
}
@ -182,7 +182,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
vmx_install_vlapic_mapping(v);
#ifndef VMXASSIST
@@ -530,20 +532,23 @@ static int vmx_restore_cr0_cr3(
@@ -529,20 +531,23 @@ static int vmx_restore_cr0_cr3(
unsigned long mfn = 0;
p2m_type_t p2mt;
@ -215,7 +215,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
v->arch.hvm_vcpu.guest_cr[0] = cr0 | X86_CR0_ET;
v->arch.hvm_vcpu.guest_cr[3] = cr3;
@@ -1014,6 +1019,45 @@ static enum hvm_intblk vmx_interrupt_blo
@@ -1018,6 +1023,45 @@ static enum hvm_intblk vmx_interrupt_blo
return hvm_intblk_none;
}
@ -261,9 +261,9 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
static void vmx_update_host_cr3(struct vcpu *v)
{
ASSERT((v == current) || !vcpu_runnable(v));
@@ -1039,21 +1083,57 @@ static void vmx_update_guest_cr(struct v
__vm_clear_bit(EXCEPTION_BITMAP, TRAP_no_device);
}
@@ -1049,21 +1093,57 @@ static void vmx_update_guest_cr(struct v
v->arch.hvm_vmx.vmxemul |= VMXEMUL_REALMODE;
#endif
+ if ( paging_mode_hap(v->domain) )
+ {
@ -322,7 +322,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
__vmwrite(GUEST_CR4, v->arch.hvm_vcpu.hw_cr[4]);
__vmwrite(CR4_READ_SHADOW, v->arch.hvm_vcpu.guest_cr[4]);
break;
@@ -1121,6 +1201,7 @@ static int vmx_event_pending(struct vcpu
@@ -1131,6 +1211,7 @@ static int vmx_event_pending(struct vcpu
static struct hvm_function_table vmx_function_table = {
.name = "VMX",
@ -330,7 +330,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
.domain_initialise = vmx_domain_initialise,
.domain_destroy = vmx_domain_destroy,
.vcpu_initialise = vmx_vcpu_initialise,
@@ -1178,6 +1259,12 @@ void start_vmx(void)
@@ -1188,6 +1269,12 @@ void start_vmx(void)
return;
}
@ -400,19 +400,19 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
default:
exit_and_crash:
gdprintk(XENLOG_ERR, "Bad vmexit (reason %x)\n", exit_reason);
Index: xen-3.2-testing/xen/arch/x86/mm/Makefile
Index: xen-3.2.1-testing/xen/arch/x86/mm/Makefile
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/mm/Makefile
+++ xen-3.2-testing/xen/arch/x86/mm/Makefile
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/Makefile
+++ xen-3.2.1-testing/xen/arch/x86/mm/Makefile
@@ -3,3 +3,4 @@ subdir-y += hap
obj-y += paging.o
obj-y += p2m.o
+obj-y += p2m-ept.o
Index: xen-3.2-testing/xen/arch/x86/mm/p2m-ept.c
Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
===================================================================
--- /dev/null
+++ xen-3.2-testing/xen/arch/x86/mm/p2m-ept.c
+++ xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
@@ -0,0 +1,177 @@
+/*
+ * ept-p2m.c: use the EPT page table as p2m
@ -591,10 +591,10 @@ Index: xen-3.2-testing/xen/arch/x86/mm/p2m-ept.c
+ * indent-tabs-mode: nil
+ * End:
+ */
Index: xen-3.2-testing/xen/arch/x86/mm/p2m.c
Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/mm/p2m.c
+++ xen-3.2-testing/xen/arch/x86/mm/p2m.c
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/p2m.c
+++ xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
@@ -28,6 +28,7 @@
#include <asm/paging.h>
#include <asm/p2m.h>
@ -652,10 +652,10 @@ Index: xen-3.2-testing/xen/arch/x86/mm/p2m.c
/* Read another domain's p2m entries */
{
mfn_t mfn;
Index: xen-3.2-testing/xen/include/asm-x86/domain.h
Index: xen-3.2.1-testing/xen/include/asm-x86/domain.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/domain.h
+++ xen-3.2-testing/xen/include/asm-x86/domain.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/domain.h
+++ xen-3.2.1-testing/xen/include/asm-x86/domain.h
@@ -131,6 +131,27 @@ struct hap_domain {
/************************************************/
/* p2m handling */
@ -696,10 +696,10 @@ Index: xen-3.2-testing/xen/include/asm-x86/domain.h
/* Highest guest frame that's ever been mapped in the p2m */
unsigned long max_mapped_pfn;
Index: xen-3.2-testing/xen/include/asm-x86/hvm/hvm.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/hvm.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/hvm.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/hvm.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/hvm.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/hvm.h
@@ -60,6 +60,9 @@ struct hvm_function_table {
/* Support Hardware-Assisted Paging? */
int hap_supported;
@ -723,11 +723,11 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/hvm.h
int hvm_domain_initialise(struct domain *d);
void hvm_domain_relinquish_resources(struct domain *d);
void hvm_domain_destroy(struct domain *d);
Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/vmx/vmcs.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
@@ -57,6 +57,9 @@ struct vmx_msr_state {
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/vmx/vmcs.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
@@ -56,6 +56,9 @@ struct vmx_msr_state {
unsigned long msrs[VMX_MSR_COUNT];
};
@ -737,7 +737,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
struct arch_vmx_struct {
/* Virtual address of VMCS. */
struct vmcs_struct *vmcs;
@@ -73,8 +76,19 @@ struct arch_vmx_struct {
@@ -72,8 +75,19 @@ struct arch_vmx_struct {
int active_cpu;
int launched;
@ -757,7 +757,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
#ifdef __x86_64__
struct vmx_msr_state msr_state;
@@ -111,6 +125,8 @@ void vmx_vmcs_exit(struct vcpu *v);
@@ -120,6 +134,8 @@ void vmx_vmcs_exit(struct vcpu *v);
#define CPU_BASED_MWAIT_EXITING 0x00000400
#define CPU_BASED_RDPMC_EXITING 0x00000800
#define CPU_BASED_RDTSC_EXITING 0x00001000
@ -766,7 +766,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
#define CPU_BASED_CR8_LOAD_EXITING 0x00080000
#define CPU_BASED_CR8_STORE_EXITING 0x00100000
#define CPU_BASED_TPR_SHADOW 0x00200000
@@ -139,6 +155,7 @@ extern u32 vmx_vmexit_control;
@@ -148,6 +164,7 @@ extern u32 vmx_vmexit_control;
extern u32 vmx_vmentry_control;
#define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001
@ -774,7 +774,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
#define SECONDARY_EXEC_WBINVD_EXITING 0x00000040
extern u32 vmx_secondary_exec_control;
@@ -154,6 +171,10 @@ extern bool_t cpu_has_vmx_ins_outs_instr
@@ -163,6 +180,10 @@ extern bool_t cpu_has_vmx_ins_outs_instr
(vmx_pin_based_exec_control & PIN_BASED_VIRTUAL_NMIS)
#define cpu_has_vmx_msr_bitmap \
(vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_MSR_BITMAP)
@ -785,7 +785,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
/* GUEST_INTERRUPTIBILITY_INFO flags. */
#define VMX_INTR_SHADOW_STI 0x00000001
@@ -195,11 +216,23 @@ enum vmcs_field {
@@ -204,11 +225,23 @@ enum vmcs_field {
VIRTUAL_APIC_PAGE_ADDR = 0x00002012,
VIRTUAL_APIC_PAGE_ADDR_HIGH = 0x00002013,
APIC_ACCESS_ADDR = 0x00002014,
@ -810,10 +810,10 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
PIN_BASED_VM_EXEC_CONTROL = 0x00004000,
CPU_BASED_VM_EXEC_CONTROL = 0x00004002,
EXCEPTION_BITMAP = 0x00004004,
Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmx.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/vmx/vmx.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/vmx/vmx.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmx.h
@@ -23,9 +23,27 @@
#include <asm/types.h>
#include <asm/regs.h>
@ -843,7 +843,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
void vmx_asm_vmexit_handler(struct cpu_user_regs);
void vmx_asm_do_vmentry(void);
@@ -85,6 +103,8 @@ int vmx_realmode_io_complete(void);
@@ -88,6 +106,8 @@ int vmx_realmode_io_complete(void);
#define EXIT_REASON_MACHINE_CHECK 41
#define EXIT_REASON_TPR_BELOW_THRESHOLD 43
#define EXIT_REASON_APIC_ACCESS 44
@ -852,7 +852,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
#define EXIT_REASON_WBINVD 54
/*
@@ -151,12 +171,14 @@ int vmx_realmode_io_complete(void);
@@ -154,12 +174,14 @@ int vmx_realmode_io_complete(void);
#define VMREAD_OPCODE ".byte 0x0f,0x78\n"
#define VMRESUME_OPCODE ".byte 0x0f,0x01,0xc3\n"
#define VMWRITE_OPCODE ".byte 0x0f,0x79\n"
@ -868,7 +868,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
static inline void __vmptrld(u64 addr)
{
@@ -240,6 +262,21 @@ static inline void __vm_clear_bit(unsign
@@ -243,6 +265,21 @@ static inline void __vm_clear_bit(unsign
__vmwrite(field, __vmread(field) & ~(1UL << bit));
}
@ -890,7 +890,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
static inline void __vmxoff(void)
{
asm volatile (
@@ -269,6 +306,29 @@ static inline int __vmxon(u64 addr)
@@ -272,6 +309,29 @@ static inline int __vmxon(u64 addr)
return rc;
}
@ -920,17 +920,17 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
static inline void __vmx_inject_exception(
struct vcpu *v, int trap, int type, int error_code)
{
@@ -314,4 +374,6 @@ static inline void vmx_inject_nmi(struct
@@ -317,4 +377,6 @@ static inline void vmx_inject_nmi(struct
HVM_DELIVER_NO_ERROR_CODE);
}
+void ept_p2m_init(struct domain *d);
+
#endif /* __ASM_X86_HVM_VMX_VMX_H__ */
Index: xen-3.2-testing/xen/include/asm-x86/p2m.h
Index: xen-3.2.1-testing/xen/include/asm-x86/p2m.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/p2m.h
+++ xen-3.2-testing/xen/include/asm-x86/p2m.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/p2m.h
+++ xen-3.2.1-testing/xen/include/asm-x86/p2m.h
@@ -43,27 +43,6 @@
*/
#define phys_to_machine_mapping ((l1_pgentry_t *)RO_MPT_VIRT_START)
@ -999,10 +999,10 @@ Index: xen-3.2-testing/xen/include/asm-x86/p2m.h
return gfn_to_mfn_foreign(d, gfn, t);
}
Index: xen-3.2-testing/xen/include/public/hvm/params.h
Index: xen-3.2.1-testing/xen/include/public/hvm/params.h
===================================================================
--- xen-3.2-testing.orig/xen/include/public/hvm/params.h
+++ xen-3.2-testing/xen/include/public/hvm/params.h
--- xen-3.2.1-testing.orig/xen/include/public/hvm/params.h
+++ xen-3.2.1-testing/xen/include/public/hvm/params.h
@@ -83,7 +83,8 @@
/* Boolean: Enable virtual HPET (high-precision event timer)? (x86-only) */

View File

@ -1003,13 +1003,13 @@ Index: xen-3.2.1-testing/xen/include/public/hvm/params.h
===================================================================
--- xen-3.2.1-testing.orig/xen/include/public/hvm/params.h
+++ xen-3.2.1-testing/xen/include/public/hvm/params.h
@@ -87,6 +87,8 @@
@@ -86,7 +86,8 @@
/* Boolean: Enable virtual HPET (high-precision event timer)? (x86-only) */
#define HVM_PARAM_HPET_ENABLED 12
+#define HVM_PARAM_IDENT_PT 13
-#define HVM_NR_PARAMS 13
+#define HVM_PARAM_IDENT_PT 13
+
+#define HVM_NR_PARAMS 14
#endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */

View File

@ -1,8 +1,8 @@
Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
Index: xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmx.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -50,6 +50,7 @@
--- xen-3.2.1-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -49,6 +49,7 @@
#include <asm/hvm/vpt.h>
#include <public/hvm/save.h>
#include <asm/hvm/trace.h>
@ -57,10 +57,10 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
return;
}
Index: xen-3.2-testing/xen/arch/x86/mm/hap/hap.c
Index: xen-3.2.1-testing/xen/arch/x86/mm/hap/hap.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/mm/hap/hap.c
+++ xen-3.2-testing/xen/arch/x86/mm/hap/hap.c
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/hap/hap.c
+++ xen-3.2.1-testing/xen/arch/x86/mm/hap/hap.c
@@ -61,7 +61,7 @@ int hap_enable_log_dirty(struct domain *
hap_unlock(d);
@ -87,10 +87,10 @@ Index: xen-3.2-testing/xen/arch/x86/mm/hap/hap.c
flush_tlb_mask(d->domain_dirty_cpumask);
}
Index: xen-3.2-testing/xen/arch/x86/mm/p2m.c
Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/mm/p2m.c
+++ xen-3.2-testing/xen/arch/x86/mm/p2m.c
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/p2m.c
+++ xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
@@ -279,11 +279,19 @@ void p2m_init(struct domain *d)
d->arch.p2m.set_entry = p2m_set_entry;
d->arch.p2m.get_entry = p2m_gfn_to_mfn;
@ -128,10 +128,10 @@ Index: xen-3.2-testing/xen/arch/x86/mm/p2m.c
}
/* Modify the p2m type of a single gfn from ot to nt, returning the
Index: xen-3.2-testing/xen/include/asm-x86/domain.h
Index: xen-3.2.1-testing/xen/include/asm-x86/domain.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/domain.h
+++ xen-3.2-testing/xen/include/asm-x86/domain.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/domain.h
+++ xen-3.2.1-testing/xen/include/asm-x86/domain.h
@@ -171,6 +171,8 @@ struct p2m_domain {
p2m_type_t *p2mt);
mfn_t (*get_entry_fast)(unsigned long gfn, p2m_type_t *p2mt);
@ -141,10 +141,10 @@ Index: xen-3.2-testing/xen/include/asm-x86/domain.h
/* Highest guest frame that's ever been mapped in the p2m */
unsigned long max_mapped_pfn;
};
Index: xen-3.2-testing/xen/include/asm-x86/hap.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hap.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hap.h
+++ xen-3.2-testing/xen/include/asm-x86/hap.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hap.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hap.h
@@ -97,6 +97,49 @@ extern struct paging_mode hap_paging_pro
extern struct paging_mode hap_paging_pae_mode;
extern struct paging_mode hap_paging_long_mode;
@ -195,10 +195,10 @@ Index: xen-3.2-testing/xen/include/asm-x86/hap.h
#endif /* XEN_HAP_H */
/*
Index: xen-3.2-testing/xen/include/asm-x86/p2m.h
Index: xen-3.2.1-testing/xen/include/asm-x86/p2m.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/p2m.h
+++ xen-3.2-testing/xen/include/asm-x86/p2m.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/p2m.h
+++ xen-3.2.1-testing/xen/include/asm-x86/p2m.h
@@ -209,6 +209,7 @@ void guest_physmap_remove_page(struct do
/* Change types across all p2m entries in a domain */

View File

@ -91,7 +91,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
===================================================================
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/p2m-ept.c
+++ xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
@@ -24,6 +24,27 @@
@@ -23,6 +23,27 @@
#include <asm/types.h>
#include <asm/domain.h>
#include <asm/hvm/vmx/vmx.h>
@ -119,7 +119,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
static int ept_next_level(struct domain *d, bool_t read_only,
ept_entry_t **table, unsigned long *gfn_remainder,
@@ -132,6 +153,7 @@ ept_set_entry(struct domain *d, unsigned
@@ -100,6 +121,7 @@ ept_set_entry(struct domain *d, unsigned
ept_entry->avail2 = 0;
/* last step */
ept_entry->r = ept_entry->w = ept_entry->x = 1;
@ -127,7 +127,24 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
}
else
ept_entry->epte = 0;
@@ -202,11 +224,94 @@ static mfn_t ept_get_entry_fast(unsigned
@@ -140,13 +162,10 @@ static mfn_t ept_get_entry(struct domain
index = gfn_remainder;
ept_entry = table + index;
- if ( (ept_entry->epte & 0x7) == 0x7 )
+ if ( ept_entry->avail1 != p2m_invalid )
{
- if ( ept_entry->avail1 != p2m_invalid )
- {
- *t = ept_entry->avail1;
- mfn = _mfn(ept_entry->mfn);
- }
+ *t = ept_entry->avail1;
+ mfn = _mfn(ept_entry->mfn);
}
out:
@@ -159,11 +178,64 @@ static mfn_t ept_get_entry_fast(unsigned
return ept_get_entry(current->domain, gfn, t);
}
@ -137,80 +154,50 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c
+
+static void ept_change_entry_type_global(struct domain *d, p2m_type_t ot, p2m_type_t nt)
+{
+ if ( pagetable_get_pfn(d->arch.phys_table) == 0 )
+ return;
+ if ( pagetable_get_pfn(d->arch.phys_table) == 0 )
+ return;
+
+ if ( EPT_DEFAULT_GAW == 3 )
+ {
+ ept_entry_t *l4e, *l3e, *l2e, *l1e;
+ int i4, i3, i2, i1;
+ if ( EPT_DEFAULT_GAW == 3 )
+ {
+ ept_entry_t *l4e, *l3e, *l2e, *l1e;
+ int i4, i3, i2, i1;
+
+ l4e = map_domain_page(mfn_x(pagetable_get_mfn(d->arch.phys_table)));
+ for (i4 = 0; i4 < EPT_PAGETABLE_ENTRIES; i4++ )
+ {
+ if ( !(l4e+i4)->epte )
+ continue;
+ if ( !(l4e+i4)->sp_avail )
+ {
+ l3e = map_domain_page((l4e+i4)->mfn);
+ for ( i3 = 0; i3 < EPT_PAGETABLE_ENTRIES; i3++ )
+ {
+ if ( !(l3e+i3)->epte )
+ continue;
+ if ( !(l3e+i3)->sp_avail )
+ {
+ l2e = map_domain_page((l3e+i3)->mfn);
+ for ( i2 = 0; i2 < EPT_PAGETABLE_ENTRIES; i2++ )
+ {
+ if ( !(l2e+i2)->epte )
+ continue;
+ if ( !(l2e+i2)->sp_avail )
+ {
+ l1e = map_domain_page((l2e+i2)->mfn);
+ for ( i1 = 0; i1 < EPT_PAGETABLE_ENTRIES; i1++ )
+ {
+ if ( !(l1e+i1)->epte )
+ continue;
+ if ( (l1e+i1)->avail1 != ot )
+ continue;
+ (l1e+i1)->avail1 = nt;
+ ept_p2m_type_to_flags(l1e+i1, nt);
+ }
+ unmap_domain_page(l1e);
+ }
+ else
+ {
+ if ( (l2e+i2)->avail1 != ot )
+ continue;
+ (l2e+i2)->avail1 = nt;
+ ept_p2m_type_to_flags(l2e+i2, nt);
+ }
+ }
+ unmap_domain_page(l2e);
+ }
+ else
+ {
+ if ( (l3e+i3)->avail1 != ot )
+ continue;
+ (l3e+i3)->avail1 = nt;
+ ept_p2m_type_to_flags(l3e+i3, nt);
+ }
+ }
+ unmap_domain_page(l3e);
+ }
+ else
+ {
+ if ( (l4e+i4)->avail1 != ot )
+ continue;
+ (l4e+i4)->avail1 = nt;
+ ept_p2m_type_to_flags(l4e+i4, nt);
+ }
+ }
+ unmap_domain_page(l4e);
+ l4e = map_domain_page(mfn_x(pagetable_get_mfn(d->arch.phys_table)));
+ for (i4 = 0; i4 < EPT_PAGETABLE_ENTRIES; i4++ )
+ {
+ if ( !(l4e+i4)->epte || (l4e+i4)->sp_avail)
+ continue;
+ l3e = map_domain_page((l4e+i4)->mfn);
+ for ( i3 = 0; i3 < EPT_PAGETABLE_ENTRIES; i3++ )
+ {
+ if ( !(l3e+i3)->epte || (l3e+i3)->sp_avail )
+ continue;
+ l2e = map_domain_page((l3e+i3)->mfn);
+ for ( i2 = 0; i2 < EPT_PAGETABLE_ENTRIES; i2++ )
+ {
+ if ( !(l2e+i2)->epte || (l2e+i2)->sp_avail )
+ continue;
+ l1e = map_domain_page((l2e+i2)->mfn);
+ for ( i1 = 0; i1 < EPT_PAGETABLE_ENTRIES; i1++ )
+ {
+ if ( !(l1e+i1)->epte )
+ continue;
+ if ( (l1e+i1)->avail1 != ot )
+ continue;
+ (l1e+i1)->avail1 = nt;
+ ept_p2m_type_to_flags(l1e+i1, nt);
+ }
+ unmap_domain_page(l1e);
+ }
+ unmap_domain_page(l2e);
+ }
+ unmap_domain_page(l3e);
+ }
+ unmap_domain_page(l4e);
+
+ if ( d->vcpu[0] )
+ ept_sync_domain(d->vcpu[0]);
+ }
+ if ( d->vcpu[0] )
+ ept_sync_domain(d->vcpu[0]);
+ }
+}
+
void ept_p2m_init(struct domain *d)
@ -244,9 +231,9 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
+}
+
static inline
int set_p2m_entry(struct domain *d, unsigned long gfn, mfn_t mfn, int order, p2m_type_t p2mt)
int set_p2m_entry(struct domain *d, unsigned long gfn, mfn_t mfn, p2m_type_t p2mt)
{
@@ -807,8 +815,6 @@ void p2m_change_type_global(struct domai
@@ -806,8 +814,6 @@ void p2m_change_type_global(struct domai
if ( pagetable_get_pfn(d->arch.phys_table) == 0 )
return;
@ -255,7 +242,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m.c
#if CONFIG_PAGING_LEVELS == 4
l4e = map_domain_page(mfn_x(pagetable_get_mfn(d->arch.phys_table)));
#elif CONFIG_PAGING_LEVELS == 3
@@ -879,7 +885,6 @@ void p2m_change_type_global(struct domai
@@ -878,7 +884,6 @@ void p2m_change_type_global(struct domai
unmap_domain_page(l2e);
#endif
@ -334,7 +321,7 @@ Index: xen-3.2.1-testing/xen/include/asm-x86/p2m.h
===================================================================
--- xen-3.2.1-testing.orig/xen/include/asm-x86/p2m.h
+++ xen-3.2.1-testing/xen/include/asm-x86/p2m.h
@@ -220,6 +220,7 @@ void guest_physmap_remove_page(struct do
@@ -209,6 +209,7 @@ void guest_physmap_remove_page(struct do
/* Change types across all p2m entries in a domain */
void p2m_change_type_global(struct domain *d, p2m_type_t ot, p2m_type_t nt);

View File

@ -33,7 +33,7 @@ Index: xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
===================================================================
--- xen-3.2.1-testing.orig/tools/python/xen/xend/XendConfig.py
+++ xen-3.2.1-testing/tools/python/xen/xend/XendConfig.py
@@ -138,6 +138,7 @@ XENAPI_PLATFORM_CFG_TYPES = {
@@ -139,6 +139,7 @@ XENAPI_PLATFORM_CFG_TYPES = {
'monitor': int,
'nographic': int,
'pae' : int,

View File

@ -19,7 +19,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/hvm/svm/svm.c
static void inline __update_guest_eip(
struct cpu_user_regs *regs, unsigned int inst_len)
{
@@ -882,7 +884,7 @@ static struct hvm_function_table svm_fun
@@ -883,7 +885,7 @@ static struct hvm_function_table svm_fun
.set_tsc_offset = svm_set_tsc_offset,
.inject_exception = svm_inject_exception,
.init_hypercall_page = svm_init_hypercall_page,
@ -28,7 +28,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/hvm/svm/svm.c
};
int start_svm(struct cpuinfo_x86 *c)
@@ -1033,6 +1035,7 @@ static void svm_vmexit_do_cpuid(struct v
@@ -1034,6 +1036,7 @@ static void svm_vmexit_do_cpuid(struct v
HVMTRACE_3D(CPUID, v, input,
((uint64_t)eax << 32) | ebx, ((uint64_t)ecx << 32) | edx);
@ -36,7 +36,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/hvm/svm/svm.c
inst_len = __get_instruction_length(v, INSTR_CPUID, NULL);
__update_guest_eip(regs, inst_len);
}
@@ -1728,6 +1731,11 @@ static void svm_do_msr_access(
@@ -1736,6 +1739,11 @@ static void svm_do_msr_access(
/* is it a read? */
if (vmcb->exitinfo1 == 0)
{
@ -48,7 +48,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/hvm/svm/svm.c
switch (ecx) {
case MSR_IA32_TSC:
msr_content = hvm_get_guest_time(v);
@@ -1818,6 +1826,11 @@ static void svm_do_msr_access(
@@ -1826,6 +1834,11 @@ static void svm_do_msr_access(
}
else
{
@ -60,7 +60,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/hvm/svm/svm.c
msr_content = (u32)regs->eax | ((u64)regs->edx << 32);
hvmtrace_msr_write(v, ecx, msr_content);
@@ -1878,6 +1891,7 @@ static void svm_do_msr_access(
@@ -1886,6 +1899,7 @@ static void svm_do_msr_access(
}
break;
}

View File

@ -1,7 +1,7 @@
Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
Index: xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmcs.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/hvm/vmx/vmcs.c
+++ xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
--- xen-3.2.1-testing.orig/xen/arch/x86/hvm/vmx/vmcs.c
+++ xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmcs.c
@@ -38,6 +38,9 @@
#include <asm/shadow.h>
#include <asm/tboot.h>
@ -61,11 +61,11 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmcs.c
vmx_vmcs_exit(v);
}
Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
Index: xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmx.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -58,18 +58,23 @@ static void vmx_ctxt_switch_to(struct vc
--- xen-3.2.1-testing.orig/xen/arch/x86/hvm/vmx/vmx.c
+++ xen-3.2.1-testing/xen/arch/x86/hvm/vmx/vmx.c
@@ -57,18 +57,23 @@ static void vmx_ctxt_switch_to(struct vc
static int vmx_alloc_vlapic_mapping(struct domain *d);
static void vmx_free_vlapic_mapping(struct domain *d);
@ -90,7 +90,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
}
static int vmx_vcpu_initialise(struct vcpu *v)
@@ -1122,6 +1127,7 @@ static void vmx_update_guest_cr(struct v
@@ -1132,6 +1137,7 @@ static void vmx_update_guest_cr(struct v
vmx_load_pdptrs(v);
}
__vmwrite(GUEST_CR3, v->arch.hvm_vcpu.hw_cr[3]);
@ -98,7 +98,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
break;
case 4:
v->arch.hvm_vcpu.hw_cr[4] = HVM_CR4_HOST_MASK;
@@ -1170,9 +1176,14 @@ static void vmx_update_guest_efer(struct
@@ -1180,9 +1186,14 @@ static void vmx_update_guest_efer(struct
static void vmx_flush_guest_tlbs(void)
{
@ -116,7 +116,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
}
static void vmx_inject_exception(
@@ -1226,6 +1237,11 @@ static struct hvm_function_table vmx_fun
@@ -1236,6 +1247,11 @@ static struct hvm_function_table vmx_fun
.cpu_down = vmx_cpu_down,
};
@ -128,7 +128,7 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
void start_vmx(void)
{
static int bootstrapped;
@@ -1265,6 +1281,26 @@ void start_vmx(void)
@@ -1275,6 +1291,26 @@ void start_vmx(void)
vmx_function_table.hap_supported = 1;
}
@ -201,10 +201,10 @@ Index: xen-3.2-testing/xen/arch/x86/hvm/vmx/vmx.c
static void vmx_install_vlapic_mapping(struct vcpu *v)
{
paddr_t virt_page_ma, apic_page_ma;
Index: xen-3.2-testing/xen/arch/x86/mm/shadow/multi.c
Index: xen-3.2.1-testing/xen/arch/x86/mm/shadow/multi.c
===================================================================
--- xen-3.2-testing.orig/xen/arch/x86/mm/shadow/multi.c
+++ xen-3.2-testing/xen/arch/x86/mm/shadow/multi.c
--- xen-3.2.1-testing.orig/xen/arch/x86/mm/shadow/multi.c
+++ xen-3.2.1-testing/xen/arch/x86/mm/shadow/multi.c
@@ -35,6 +35,7 @@
#include <asm/hvm/hvm.h>
#include <asm/hvm/cacheattr.h>
@ -213,7 +213,7 @@ Index: xen-3.2-testing/xen/arch/x86/mm/shadow/multi.c
#include "private.h"
#include "types.h"
@@ -3106,6 +3107,7 @@ sh_invlpg(struct vcpu *v, unsigned long
@@ -3102,6 +3103,7 @@ sh_invlpg(struct vcpu *v, unsigned long
== SH_type_fl1_shadow )
{
flush_tlb_local();
@ -221,10 +221,10 @@ Index: xen-3.2-testing/xen/arch/x86/mm/shadow/multi.c
return 0;
}
Index: xen-3.2-testing/xen/include/asm-x86/hvm/domain.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/domain.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/domain.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/domain.h
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/domain.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/domain.h
@@ -61,6 +61,7 @@ struct hvm_domain {
uint64_t params[HVM_NR_PARAMS];
@ -233,11 +233,11 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/domain.h
/* Memory ranges with pinned cache attributes. */
struct list_head pinned_cacheattr_ranges;
Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/vmx/vmcs.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
@@ -90,6 +90,8 @@ struct arch_vmx_struct {
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/vmx/vmcs.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
@@ -89,6 +89,8 @@ struct arch_vmx_struct {
u32 exec_control;
u32 secondary_exec_control;
@ -246,7 +246,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
#ifdef __x86_64__
struct vmx_msr_state msr_state;
unsigned long shadow_gs;
@@ -156,6 +158,7 @@ extern u32 vmx_vmentry_control;
@@ -165,6 +167,7 @@ extern u32 vmx_vmentry_control;
#define SECONDARY_EXEC_VIRTUALIZE_APIC_ACCESSES 0x00000001
#define SECONDARY_EXEC_ENABLE_EPT 0x00000002
@ -254,7 +254,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
#define SECONDARY_EXEC_WBINVD_EXITING 0x00000040
extern u32 vmx_secondary_exec_control;
@@ -175,6 +178,8 @@ extern bool_t cpu_has_vmx_ins_outs_instr
@@ -184,6 +187,8 @@ extern bool_t cpu_has_vmx_ins_outs_instr
(vmx_cpu_based_exec_control & CPU_BASED_ACTIVATE_SECONDARY_CONTROLS)
#define cpu_has_vmx_ept \
(vmx_secondary_exec_control & SECONDARY_EXEC_ENABLE_EPT)
@ -263,7 +263,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
/* GUEST_INTERRUPTIBILITY_INFO flags. */
#define VMX_INTR_SHADOW_STI 0x00000001
@@ -184,6 +189,7 @@ extern bool_t cpu_has_vmx_ins_outs_instr
@@ -193,6 +198,7 @@ extern bool_t cpu_has_vmx_ins_outs_instr
/* VMCS field encodings. */
enum vmcs_field {
@ -271,7 +271,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
GUEST_ES_SELECTOR = 0x00000800,
GUEST_CS_SELECTOR = 0x00000802,
GUEST_SS_SELECTOR = 0x00000804,
@@ -323,6 +329,8 @@ enum vmcs_field {
@@ -332,6 +338,8 @@ enum vmcs_field {
HOST_RIP = 0x00006c16,
};
@ -280,11 +280,11 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmcs.h
void vmx_disable_intercept_for_msr(struct vcpu *v, u32 msr);
int vmx_read_guest_msr(struct vcpu *v, u32 msr, u64 *val);
int vmx_write_guest_msr(struct vcpu *v, u32 msr, u64 val);
Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
Index: xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmx.h
===================================================================
--- xen-3.2-testing.orig/xen/include/asm-x86/hvm/vmx/vmx.h
+++ xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
@@ -172,6 +172,7 @@ int vmx_realmode_io_complete(void);
--- xen-3.2.1-testing.orig/xen/include/asm-x86/hvm/vmx/vmx.h
+++ xen-3.2.1-testing/xen/include/asm-x86/hvm/vmx/vmx.h
@@ -175,6 +175,7 @@ int vmx_realmode_io_complete(void);
#define VMRESUME_OPCODE ".byte 0x0f,0x01,0xc3\n"
#define VMWRITE_OPCODE ".byte 0x0f,0x79\n"
#define INVEPT_OPCODE ".byte 0x66,0x0f,0x38,0x80\n" /* m128,r64/32 */
@ -292,7 +292,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
#define VMXOFF_OPCODE ".byte 0x0f,0x01,0xc4\n"
#define VMXON_OPCODE ".byte 0xf3,0x0f,0xc7\n"
@@ -277,6 +278,23 @@ static inline void __invept(int ext, u64
@@ -280,6 +281,23 @@ static inline void __invept(int ext, u64
: "memory");
}
@ -316,7 +316,7 @@ Index: xen-3.2-testing/xen/include/asm-x86/hvm/vmx/vmx.h
static inline void __vmxoff(void)
{
asm volatile (
@@ -329,6 +347,22 @@ static inline void ept_sync_all(void)
@@ -332,6 +350,22 @@ static inline void ept_sync_all(void)
__invept(2, 0, 0);
}

View File

@ -144,7 +144,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/x86_emulate.c
#endif
#include <asm-x86/x86_emulate.h>
@@ -3306,60 +3309,64 @@ x86_emulate(
@@ -3320,60 +3323,64 @@ x86_emulate(
src.val = x86_seg_gs;
goto pop_seg;
@ -253,7 +253,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/x86_emulate.c
case 0xc8 ... 0xcf: /* bswap */
dst.type = OP_REG;
@@ -3369,7 +3376,7 @@ x86_emulate(
@@ -3383,7 +3390,7 @@ x86_emulate(
{
default: /* case 2: */
/* Undefined behaviour. Writes zero on all tested CPUs. */
@ -266,7 +266,7 @@ Index: xen-3.2.1-testing/xen/include/asm-x86/cpufeature.h
===================================================================
--- xen-3.2.1-testing.orig/xen/include/asm-x86/cpufeature.h
+++ xen-3.2.1-testing/xen/include/asm-x86/cpufeature.h
@@ -145,6 +145,7 @@
@@ -149,6 +149,7 @@
#define cpu_has_cyrix_arr boot_cpu_has(X86_FEATURE_CYRIX_ARR)
#define cpu_has_centaur_mcr boot_cpu_has(X86_FEATURE_CENTAUR_MCR)
#define cpu_has_clflush boot_cpu_has(X86_FEATURE_CLFLSH)
@ -274,7 +274,7 @@ Index: xen-3.2.1-testing/xen/include/asm-x86/cpufeature.h
#define cpu_has_page1gb 0
#define cpu_has_efer (boot_cpu_data.x86_capability[1] & 0x20100800)
#else /* __x86_64__ */
@@ -171,6 +172,7 @@
@@ -175,6 +176,7 @@
#define cpu_has_cyrix_arr 0
#define cpu_has_centaur_mcr 0
#define cpu_has_clflush boot_cpu_has(X86_FEATURE_CLFLSH)

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:53d07207f8907ba02d152852ff216695c07be2e97b53bac025ac991542aef08f
size 5467794
oid sha256:b76bdbe8d7703cef1c7498bbdfc73f8b178ebafb737ddbdf352a76144c8d6e2b
size 5468802

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Mar 24 16:47:56 MDT 2008 - carnold@novell.com
- bnc#373194 - The xen module and the kernel for Dom0 don't match.
- Add ncurses-devel build dependency
-------------------------------------------------------------------
Mon Mar 24 10:56:35 MDT 2008 - carnold@novell.com
- Update to Xen 3.2.1 RC1 changeset 16820.
-------------------------------------------------------------------
Thu Mar 20 09:38:03 CET 2008 - coolo@suse.de

230
xen.spec
View File

@ -1,5 +1,5 @@
#
# spec file for package xen (Version 3.2.1_16805_01)
# spec file for package xen (Version 3.2.1_16820_01)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@ -14,14 +14,14 @@
Name: xen
%define xvers 3.2
%define xvermaj 3
%define changeset 16718
%define changeset 16820
%define xen_build_dir xen-3.2.1-testing
%if %sles_version
%define with_kmp 1
%else
%define with_kmp 0
%endif
BuildRequires: LibVNCServer-devel SDL-devel autoconf automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel openssl openssl-devel pciutils-devel python-devel transfig
BuildRequires: LibVNCServer-devel SDL-devel autoconf automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel transfig
%if %suse_version >= 1030
BuildRequires: texlive texlive-latex
%else
@ -33,8 +33,8 @@ BuildRequires: glibc-32bit glibc-devel-32bit
%if %{?with_kmp}0
BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11
%endif
Version: 3.2.1_16805_01
Release: 4
Version: 3.2.1_16820_01
Release: 1
License: GPL v2 only
Group: System/Kernel
AutoReqProv: on
@ -86,7 +86,9 @@ Patch17: 17124-numa-free-memory-size.patch
Patch18: 17131-numa-set-vcpu-affinity.patch
Patch19: 17190-remove-hap-boot-param.patch
Patch20: 17191-remove-hap-boot-param-doc.patch
Patch21: 17xxx-xenapi-defaults.patch
Patch21: 17210-xenapi-defaults.patch
Patch22: 17211-xenapi-defaults.patch
Patch23: 17212-xenapi-defaults.patch
# Our patches
Patch100: xen-config.diff
Patch101: xend-config.diff
@ -155,16 +157,17 @@ Patch402: ns_xen_extension.patch
# Intel EPT / VPID patches
Patch500: ept-novell-x64.patch
Patch501: vpid-novell-x64.patch
Patch502: ept-novell-x64-2m.patch
Patch503: ept-with-livemgr-2m.diff
Patch502: livemig-ept-novell-x64.patch
Patch503: ept-2m-x64.patch
Patch504: ept-novell-i386.patch
Patch505: vpid-novell-i386.patch
Patch506: livemig-ept-novell-i386.patch
Patch507: ept-livemgr-x86-miss.patch
Url: http://www.cl.cam.ac.uk/Research/SRG/netos/xen/
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%define pysite %(python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()")
%if %{?with_kmp}0
%suse_kernel_module_package -n xen um xen xenpae
%suse_kernel_module_package -n xen um xen
%endif
%description
@ -505,6 +508,8 @@ Authors:
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
@ -575,6 +580,7 @@ Authors:
%patch504 -p1
%patch505 -p1
%patch506 -p1
%patch507 -p1
%endif
%build
@ -624,18 +630,19 @@ install_xen()
}
%ifarch %ix86
make -C xen install pae=y debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT
install_xen pae-dbg
install_xen dbg
make -C xen clean
make -C xen install pae=y debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT
install_xen pae
install_xen
make -C xen clean
%endif
%else
make -C xen install pae=n debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT
install_xen dbg
make -C xen clean
make -C xen install pae=n debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT
install_xen
make -C xen clean
%endif
export CFLAGS="$RPM_OPT_FLAGS"
export RPM_OPT_FLAGS
make -C xen/include/public/foreign
@ -734,20 +741,6 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
/boot/xen-syms-dbg
/boot/xen-syms-dbg-%{version}-%{release}
/boot/xen.gz
%ifarch %ix86
/boot/xen-pae-%{version}-%{release}.gz
/boot/xen-pae-%{xvermaj}.gz
/boot/xen-pae-%{xvers}.gz
/boot/xen-pae-dbg-%{version}-%{release}.gz
/boot/xen-pae-dbg-%{xvermaj}.gz
/boot/xen-pae-dbg-%{xvers}.gz
/boot/xen-pae-dbg.gz
/boot/xen-pae.gz
/boot/xen-syms-pae
/boot/xen-syms-pae-%{version}-%{release}
/boot/xen-syms-pae-dbg
/boot/xen-syms-pae-dbg-%{version}-%{release}
%endif
%files libs
%defattr(-,root,root)
@ -895,6 +888,11 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
/sbin/ldconfig
%changelog
* Mon Mar 24 2008 carnold@novell.com
- bnc#373194 - The xen module and the kernel for Dom0 don't match.
- Add ncurses-devel build dependency
* Mon Mar 24 2008 carnold@novell.com
- Update to Xen 3.2.1 RC1 changeset 16820.
* Thu Mar 20 2008 coolo@suse.de
- 3.1.0 is unfortunately not enough to obsolete 3.1.0_<something>
in rpm terms
@ -905,12 +903,12 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Wed Mar 12 2008 jfehlig@novell.com
- Increased dom0-min-mem value to 512Mb in xend-config.sxp
bnc#370007
* Tue Mar 11 2008 jfehlig@novell.com
* Mon Mar 10 2008 jfehlig@novell.com
- Fixed initialization of default VM config values when creating
VMs through Xen API. bnc#368273
* Mon Mar 10 2008 jfehlig@novell.com
- Removed unused/untested xend-relocation script.
* Sat Mar 08 2008 jfehlig@novell.com
* Fri Mar 07 2008 jfehlig@novell.com
- Set device model when creating pvfb consoles via XenAPI.
bnc#367851
* Fri Mar 07 2008 jfehlig@novell.com
@ -921,7 +919,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Fri Feb 29 2008 plc@novell.com
- Send UNIT_ATTENTION when CD drive has newly inserted media and
becomes ready. bnc#365386
* Fri Feb 29 2008 jfehlig@novell.com
* Thu Feb 28 2008 jfehlig@novell.com
- Updated block-iscsi script and xen-domUloader patch, bnc #365385
* Thu Feb 28 2008 carnold@novell.com
- Add support for Intel EPT / VPID.
@ -937,7 +935,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Tranlate colors from 32 bit to 16 bit when viewing a 32 bit PV
VM from a 16 bit client. bnc#351470
Also includes upstream mouse queue patch.
* Sat Feb 23 2008 jfehlig@novell.com
* Fri Feb 22 2008 jfehlig@novell.com
- Added PAM configuration files for remote authentication via
Xen API. bnc #353464
* Tue Feb 19 2008 carnold@novell.com
@ -948,7 +946,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Thu Feb 14 2008 carnold@novell.com
- Added upstream changesets that fix various bugs.
16859 16929 16930 16945 16947 16962 16976 16980 16995 16998 17036
* Thu Feb 14 2008 jfehlig@novell.com
* Wed Feb 13 2008 jfehlig@novell.com
- Updated network-multinet
- Simplify bridge creation
- Create traditional bridge and hostonly networks by default
@ -959,12 +957,12 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Mon Feb 04 2008 plc@novell.com
- Replaced xen-blktab-subtype-strip.patch with official upstream
changeset for bnc#353065.
* Sat Feb 02 2008 carnold@novell.com
* Fri Feb 01 2008 carnold@novell.com
- Update to xen 3.2 FCS. Changeset 16718
- Merge xen-tools and xen-tools-ioemu into xen-tools.
* Thu Dec 20 2007 carnold@novell.com
* Wed Dec 19 2007 carnold@novell.com
- Update to xen 3.2 RC2. Changeset 16646
* Fri Dec 14 2007 carnold@novell.com
* Thu Dec 13 2007 carnold@novell.com
- Added agent support for HP Proliant hardware.
* Wed Dec 05 2007 carnold@novell.com
- #338108 - VUL-0: Xen security issues in SLE10
@ -979,11 +977,11 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- #334445: xenbaked: Fix security vulnerability CVE-2007-3919.
* Thu Nov 01 2007 carnold@novell.com
- #310279: Kernel Panic while booting Xen
* Wed Oct 03 2007 ccoffing@novell.com
* Tue Oct 02 2007 ccoffing@novell.com
- #286859: Fix booting from SAN
* Thu Sep 13 2007 ccoffing@novell.com
- #310338: Fix "No such file or directory" in network-multinet
* Thu Sep 13 2007 jfehlig@novell.com
* Wed Sep 12 2007 jfehlig@novell.com
- #309940: Fix 'xm reboot'
- Moved hvm_vnc.diff and xend_mem_leak.diff to 'Upstream patches'
section of spec file since both have been accepted upstream now.
@ -995,13 +993,13 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- #302106: Update network-multinet
* Wed Sep 05 2007 carnold@novell.com
- #307458: AMD-V CR8 intercept reduction for HVM windows 64b guests
* Thu Aug 30 2007 ccoffing@novell.com
* Wed Aug 29 2007 ccoffing@novell.com
- Update block-iscsi to match changes to open-iscsi.
* Tue Aug 28 2007 carnold@novell.com
* Mon Aug 27 2007 carnold@novell.com
- #289275 - domu will not reboot if pci= is passed in at boot time.
* Fri Aug 24 2007 carnold@novell.com
- #297345: Added several upstream patches for hvm migration.
* Sat Aug 18 2007 jfehlig@novell.com
* Fri Aug 17 2007 jfehlig@novell.com
- Added upstream c/s 15128, 15153, 15477, and 15716. These patches
provide foundation for bug #238986
- Renamed xend_dev_destroy_cleanup.patch to reflect the upstream
@ -1009,7 +1007,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
file.
* Mon Aug 13 2007 carnold@novell.com
- hvm svm: Log into 'xm dmesg' that SVM NPT is enabled.
* Sat Aug 11 2007 ccoffing@novell.com
* Fri Aug 10 2007 ccoffing@novell.com
- Honor RPM_OPT_FLAGS better
* Thu Aug 09 2007 ccoffing@novell.com
- #298176: Do not enable NX if CPU/BIOS does not support it
@ -1058,16 +1056,16 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Fri Jul 06 2007 ccoffing@novell.com
- xensource bug #858: Disable strict aliasing for xenstore, to
avoid domU hangs.
* Wed Jul 04 2007 ccoffing@novell.com
* Tue Jul 03 2007 ccoffing@novell.com
- #285929: Bad "xendomains status" output w/ empty XENDOMAINS_SAVE
* Tue Jul 03 2007 carnold@novell.com
- Changes necessary to support EDD and EDID from Jan.
* Thu Jun 21 2007 jfehlig@novell.com
* Wed Jun 20 2007 jfehlig@novell.com
- Added upstream changesets 15273, 15274, and 15275.
- Removed the modified 15157 patch. This patch was actually a
consolidation of changesets 15157 and 15250. These changesets
are now discrete patches to ease subsequent updates of Xen.
* Thu Jun 21 2007 ccoffing@novell.com
* Wed Jun 20 2007 ccoffing@novell.com
- Split vm-install off as a separate package.
- Update man page.
- Update Ron Terry's network-multi script.
@ -1095,7 +1093,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
'xm block-detach dom dev_name'. Modified version fixes bug 262805
without introducing regression. Patch fixing c/s 15157 has been
submitted upstream.
* Thu May 24 2007 ccoffing@novell.com
* Wed May 23 2007 ccoffing@novell.com
- Drop xen-messages.diff; Xen now supports HVM save/restore.
* Tue May 22 2007 ccoffing@novell.com
- Update Ron Terry's network-multi script.
@ -1109,7 +1107,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
+ #259994: disk size would reset when editing path
+ #247073: handle autoyast URLs
+ #254311: physical disks were showing as 0.0 GB
* Thu May 17 2007 ccoffing@novell.com
* Wed May 16 2007 ccoffing@novell.com
- Properly quote pathnames in domUloader to fix EVMS. (#274484)
- Allow user to specify a default 'keymap' in xend's configuration
file. (#258818 and 241149)
@ -1133,10 +1131,10 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Added security fixes for problems found Travis Orandy (#270621)
CVE-2007-1320, CVE-2007-1321, CVE-2007-1322, CVE-2007-1323,
CVE-2007-1366
* Fri May 04 2007 ccoffing@novell.com
* Thu May 03 2007 ccoffing@novell.com
- Update to xen-3.1-testing rc7 (changeset 15020).
- Fix identification of virt-manager windows. (#264162)
* Wed May 02 2007 jfehlig@novell.com
* Tue May 01 2007 jfehlig@novell.com
- Integrated domUloader with 3.0.5. Updated xen-domUloader.diff.
* Mon Apr 30 2007 ccoffing@novell.com
- Update to xen-3.0.5-testing rc4 (changeset 14993).
@ -1152,7 +1150,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Fri Apr 20 2007 ccoffing@novell.com
- Updated README. (#250705)
- Fix vm-install's detection of PV RHEL4/5 kernels. (#260983)
* Fri Apr 20 2007 ccoffing@novell.com
* Thu Apr 19 2007 ccoffing@novell.com
- Place xenstore-* tools in new xen-tools-domU package, to be used
by suse_register. (#249157)
* Tue Apr 17 2007 ccoffing@novell.com
@ -1163,18 +1161,18 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
responsive and less likely to time out or lock up. Partial fix
for #237406.
- If disk is read-only, pass -r to losetup. (#264158)
* Fri Apr 06 2007 ccoffing@novell.com
* Thu Apr 05 2007 ccoffing@novell.com
- Update vm-install:
+ #260510: do not delete xml settings file
+ #260579: write correct vif line for PV NIC in FV VM
+ #261288: re-enable add disk buttons after deleting a disk
+ #192272, #222765, #250618: Update OS list and their defaults
* Wed Apr 04 2007 ccoffing@novell.com
* Tue Apr 03 2007 ccoffing@novell.com
- Could not do simultaneous installs via virt-manager. (#259917)
* Tue Apr 03 2007 jfehlig@novell.com
* Mon Apr 02 2007 jfehlig@novell.com
- Fix improper handling of guest kernel arguments in domUloader.
Bug #259810
* Tue Apr 03 2007 ccoffing@novell.com
* Mon Apr 02 2007 ccoffing@novell.com
- Update vm-install:
+ #259420: refresh available memory more often
+ #259972: cannot enter autoyast url
@ -1197,11 +1195,11 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Mon Mar 19 2007 ccoffing@novell.com
- Update to xen-unstable changeset 14444.
- Include Ron Terry's network-multi_bridge
* Sat Mar 10 2007 jfehlig@novell.com
* Fri Mar 09 2007 jfehlig@novell.com
- Added lame patch to handle showing suspended state via Xen API.
The patch only affects Xen API and is thus low risk.
Bug #237859
* Sat Mar 10 2007 carnold@novell.com
* Fri Mar 09 2007 carnold@novell.com
- Added AMD support for Vista 64 installation and boot.
* Fri Mar 09 2007 ccoffing@novell.com
- Make vm-install support NFS for SUSE (#241251).
@ -1218,7 +1216,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
PV installation disk)
+ #252437: Allow virtual CDROM to be added (via ISO) even if
physical CDROM doesn't exist
* Thu Mar 08 2007 jfehlig@novell.com
* Wed Mar 07 2007 jfehlig@novell.com
- Fixed bug #252396
+ Added upstream c/s 14021. Applies to Xen API c-bindings -
low risk.
@ -1227,10 +1225,10 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Wed Mar 07 2007 jfehlig@novell.com
- Added upstream patch that fixes save/restore on 32pae guests.
Upstream c/s 14150. Bug #237859
* Wed Mar 07 2007 carnold@novell.com
* Tue Mar 06 2007 carnold@novell.com
- Remove a debug message which is spamming the logs during live
migration.
* Tue Mar 06 2007 jfehlig@novell.com
* Mon Mar 05 2007 jfehlig@novell.com
- Fixed handling of vbd type in Xen API <-> sexpr integration.
Bug #250351
+ Updated an existing patch (xend_disk_decorate_rm.patch) and
@ -1238,7 +1236,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
purpose of patch.
* Mon Mar 05 2007 ccoffing@novell.com
- Default apic=0 for SLES 8 and 9, for performance. (#228133)
* Sat Mar 03 2007 carnold@novell.com
* Fri Mar 02 2007 carnold@novell.com
- Xen kernel crashes at domain creation time. Bug #248183.
Fix mouse for win2k hvm guest.
* Fri Mar 02 2007 jfehlig@novell.com
@ -1253,15 +1251,15 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Fri Mar 02 2007 jfehlig@novell.com
- Add check for HVM domain in domain_save. The check is
performed in domain_suspend and should be included here as well.
* Fri Mar 02 2007 ccoffing@novell.com
* Thu Mar 01 2007 ccoffing@novell.com
- Update vm-install:
+ #250201: for linux PVFB, pass xencons=tty if graphics=none
+ #250016: honor non-sparse flag
* Fri Mar 02 2007 jfehlig@novell.com
* Thu Mar 01 2007 jfehlig@novell.com
- Fix exception caused by incorrect method name in xen-messages.diff.
This is one of perhaps several problems with save/restore,
bug #237859
* Fri Mar 02 2007 dpmerrill@novell.com
* Thu Mar 01 2007 dpmerrill@novell.com
- Add xen-ioemu-hvm-pv-support.diff
This patch allows for shutting down the IDE drive.
* Thu Mar 01 2007 jfehlig@novell.com
@ -1269,7 +1267,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
+ Updated domUloader to accept '--args' parameter. The args
provided as an option to --args are simply added to the sexpr
returned by domUloader. pygrub has similar behavior.
* Thu Mar 01 2007 ccoffing@novell.com
* Wed Feb 28 2007 ccoffing@novell.com
- Update vm-install:
+ #249013, #228113: default to realtek instead of pcnet
+ #249124: write os-type to config files
@ -1278,7 +1276,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
model exceptions
+ Add "Add" button to Operating System Installation page, based
on usability feedback
* Thu Mar 01 2007 jfehlig@novell.com
* Wed Feb 28 2007 jfehlig@novell.com
- Added changeset 13786 and 14022 from xen-unstable. These
changesets affect the Xen API C bindings only and are low risk.
This is a continuation of support for FATE feature 110320. ECO
@ -1288,7 +1286,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
+ #244772: display error message in GUI if xen isn't running
+ #246049: better error message when OS==SUSE but ISO looks wrong
+ Fix printing of jobid when run with --background
* Thu Feb 22 2007 ccoffing@novell.com
* Wed Feb 21 2007 ccoffing@novell.com
- Don't allow "xm create" of running VM. (#245253)
- Update vm-install:
+ Fix inability to use already-extracted SUSE kernel/initrds
@ -1300,7 +1298,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Tue Feb 20 2007 ccoffing@novell.com
- Fix typo in xendomains. (#246107)
- Fix order in which vm-install processes command-line arguments.
* Sat Feb 17 2007 jfehlig@novell.com
* Fri Feb 16 2007 jfehlig@novell.com
- Added changeset 13775 from xen-unstable. This patch fixes
the last known issue with the Xen API patchset backported
from xen-unstable.
@ -1308,7 +1306,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Added c/s 13226 from xen-unstable. It affects Xen API only.
- Added patch to remove ':disk' and 'tap:qcow' from stored domain
config. Fixes bug #237414 and helps with bug #242953.
* Fri Feb 16 2007 jfehlig@novell.com
* Thu Feb 15 2007 jfehlig@novell.com
- Backported Xen API functionality from xen-unstable to support
hosting CIM providers. This functionality is required for
FATE feature 110320. ECO has been approved.
@ -1323,7 +1321,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
Dom0. (#244055) Patches 13630-domctl.patch,
13903-domctl.patch and 13908-domctl.patch
- Updated patch pae-guest-linear-pgtable.patch
* Tue Feb 13 2007 ccoffing@novell.com
* Mon Feb 12 2007 ccoffing@novell.com
- Load xenblk at dom0 start to support bootstrapping from
non-loopback devices. (#242963, #186696)
- Update vm-install:
@ -1333,9 +1331,9 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
+ #240984: properly detach vncviewer
+ #240387: default to absolute coordinate mouse for Windows
- Drop logging patch. (#245150)
* Mon Feb 12 2007 ro@suse.de
* Sun Feb 11 2007 ro@suse.de
- remove -fstack-protector from RPM_OPT_FLAGS for now
* Fri Feb 09 2007 ccoffing@novell.com
* Thu Feb 08 2007 ccoffing@novell.com
- Update vm-install:
+ Allow specifing disk (and disk size) vs. cdrom from CLI
+ Add missing -M/--max-memory parameter to CLI to match GUI
@ -1392,12 +1390,12 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Wed Jan 17 2007 ccoffing@novell.com
- Update xen-vm-install (more disk UI work; support NetWare
response files and licenses)
* Wed Jan 17 2007 ccoffing@novell.com
* Tue Jan 16 2007 ccoffing@novell.com
- Major fixes to xen-vm-install (adding disks in the UI now works,
and fixed several CLI exceptions)
- Microcode does not need to be exactly 2048 bytes (changeset
13079; Kurt)
* Sat Jan 13 2007 ccoffing@novell.com
* Fri Jan 12 2007 ccoffing@novell.com
- Include script to clone SLES 10 domU, from coolsolutions (fate
[#301742])
- Updated patches from Gerd and Jan, including PAE > 4 gig fix,
@ -1407,7 +1405,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Include xen-unstable patches for HVM save/restore and 32-on-64
HVM.
- Update to xen-3.0.4-1 (changeset 13132).
* Thu Jan 11 2007 ccoffing@novell.com
* Wed Jan 10 2007 ccoffing@novell.com
- Update xen-vm-install and domUloader to support NetWare.
- Include AMD's nested page table patches.
* Mon Jan 08 2007 ccoffing@novell.com
@ -1438,11 +1436,11 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Update to xen-unstable (changeset 12757).
- Enable LIBXENAPI_BINDINGS and XENFB_TOOLS.
- Enable unix domain socket for xend; needed by tools.
* Wed Dec 06 2006 ccoffing@novell.com
* Tue Dec 05 2006 ccoffing@novell.com
- Update to xen-unstable (changeset 12734; feature freeze for
3.0.4)
- Make /etc/xen mode 0700 to protect vnc passwords.
* Tue Nov 28 2006 ccoffing@novell.com
* Mon Nov 27 2006 ccoffing@novell.com
- Fix how bootloader is called by the xend during restarts.
(#223850)
* Wed Nov 22 2006 ccoffing@novell.com
@ -1456,7 +1454,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Fix some problems in the xen-hvm-default-bridge patch. (#219092)
- xmlrpc isn't 64-bit clean, causing xend to get exceptions when
PFN is > 2 GB. (#220418)
* Tue Nov 14 2006 kallan@novell.com
* Mon Nov 13 2006 kallan@novell.com
- Backport changesets 11847, 11888, 1189[6-9], 119[00-18], 11974,
1203[0-2], and 12205 from xen-unstable so that the PV drivers
can compile on older kernels such as sles9 and rhel4
@ -1479,7 +1477,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Tue Oct 31 2006 ccoffing@novell.com
- Backport xen-unstable changesets 1184[1-3] to address SVM
interrupt injection issues. Replaces earlier (broken) patches.
* Tue Oct 31 2006 ccoffing@novell.com
* Mon Oct 30 2006 ccoffing@novell.com
- /var/lib/xen/images should not be world readable. (#214638)
- Update to xen-3.0.3-0 (changeset 11774; no code changes).
* Mon Oct 16 2006 ccoffing@novell.com
@ -1520,7 +1518,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Build debug version of xen-pae.
* Mon Sep 25 2006 ccoffing@novell.com
- Update to xen-unstable changeset 11616.
* Wed Sep 13 2006 ccoffing@novell.com
* Tue Sep 12 2006 ccoffing@novell.com
- Update check_python script to identify Python 2.5 RCs as valid.
* Mon Sep 11 2006 ccoffing@novell.com
- Update to xen-unstable changeset 11440.
@ -1528,17 +1526,17 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
(#204758)
- Include Jan's updated patch for #192150 (to preserve register
context when doing IO).
* Wed Sep 06 2006 ccoffing@novell.com
* Tue Sep 05 2006 ccoffing@novell.com
- Update block-nbd and xmexample.nbd, and add block-iscsi and
xmexample.iscsi (from Kurt).
* Thu Aug 31 2006 ccoffing@novell.com
- Automatically create/destroy virtual frame buffer viewer. Add
"sdl=1" to config file of a paravirtualized VM to get the viewer.
- Log files have moved to /var/log/xen.
* Wed Aug 30 2006 ccoffing@novell.com
* Tue Aug 29 2006 ccoffing@novell.com
- xendomains does not actually save domains. (#201349)
- Update to xen-unstable changeset 11299.
* Tue Aug 29 2006 ccoffing@novell.com
* Mon Aug 28 2006 ccoffing@novell.com
- Fix incorrect path on x86_64 for vncfb and sdlfb.
* Thu Aug 17 2006 ccoffing@novell.com
- Improve xendomains init script, to handle unset sysconfig vars.
@ -1547,7 +1545,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Wed Aug 16 2006 ccoffing@novell.com
- Update to xen-unstable changeset 11134.
- Drop xen-reverse-10064.diff now that kernel is updated.
* Wed Aug 09 2006 ccoffing@novell.com
* Tue Aug 08 2006 ccoffing@novell.com
- Re-enabled patch for #184175.
- Update to xen-unstable changeset 10986.
- Include Jan's patch to preserve register context when doing
@ -1574,13 +1572,13 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Added for loop to retry the losetup -d in /etc/xen/scripts/block.
It is possible for the losetup -d to fail if another process is
examining the loopback devices e.g. losetup -a. (#151105)
* Thu Jul 13 2006 ccoffing@novell.com
* Wed Jul 12 2006 ccoffing@novell.com
- Corrected and updated README.
* Mon Jul 10 2006 ccoffing@novell.com
- Add Jeff Mahoney's block-sync.diff, to give control of
"losetup -y" to the user (and potentially yast). Defaults to
old async behavior. (#190869)
* Fri Jul 07 2006 ccoffing@novell.com
* Thu Jul 06 2006 ccoffing@novell.com
- Update to xen-unstable tree. Revert changeset 10064, to maintain
backwards compatibility with SLES 10.
* Wed Jul 05 2006 ccoffing@novell.com
@ -1608,7 +1606,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Fri Jun 23 2006 kallan@novell.com
- Updated xen-bonding.diff to enable bonding again after the latest
patches to network-bridge etc. (#161888)
* Thu Jun 22 2006 ccoffing@novell.com
* Wed Jun 21 2006 ccoffing@novell.com
- Clean up the useless "Nothing to flush" messages, from 'ip addr
flush', in /var/log/xen-hotplug.log
- Fix race condition in domUloader.py, when another process did
@ -1821,18 +1819,18 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Handle memory failure when staring fully virtualized
guests to prevent reboot of the box (AMD) or
hanging the box (VT) (#149179).
* Wed May 10 2006 ccoffing@novell.com
* Tue May 09 2006 ccoffing@novell.com
- Include select patches from xen-3.0-testing:
+ 9665: Fix pciif parsing for compatibility variable.
+ 9666: Fix HVM hang; was broken due to previous "hda lost
interrupt" patch. (#169146)
+ 9667: Do not set GP fault in VMCS for VMX (no bug#; from Intel)
* Fri May 05 2006 cgriffin@novell.com
* Thu May 04 2006 cgriffin@novell.com
- Update xen-3.0-testing tree, changeset 9664:
+ Changesets 9663 and 9664 fix AMD fully virtualized
guests causing the system to reboot when
first starting up. (#169855)
* Fri May 05 2006 cgriffin@novell.com
* Thu May 04 2006 cgriffin@novell.com
- With a Xen domain set up with a loop-mountable file as rootfs,
the "xm start " invocation fails. The cause is a bug
domUloader.py (#172586)
@ -1864,7 +1862,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
+ Fix reboot on large SMP machines (IBM, no bug #).
- Integrate Jan's patches:
+ Spurious interrupt roundup (#152892).
* Tue Apr 25 2006 ccoffing@novell.com
* Mon Apr 24 2006 ccoffing@novell.com
- Integrate Jan's patches:
+ FXSR patch (#135677).
+ APIC option patch (work-around #150114).
@ -1898,7 +1896,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Wed Apr 19 2006 agruen@suse.de
- Create /boot symlinks in the %%install section instead of in
%%post so that they will end up in the package file list.
* Wed Apr 19 2006 ccoffing@novell.com
* Tue Apr 18 2006 ccoffing@novell.com
- Add /etc/xen/vm to vm config file search path (#167208).
* Fri Apr 14 2006 kallan@novell.com
- Add support for bonding in network-bridge. (#161678).
@ -1915,7 +1913,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
+ Fixes xmlrpc issues.
+ Fixes several emulated instructions for HVM.
+ Fixes for x86_64 inline assembly.
* Wed Apr 12 2006 ccoffing@novell.com
* Tue Apr 11 2006 ccoffing@novell.com
- Fix "jitter" and race in dom0's memory target calculation, which
could cause auto-ballooning to fail (#164714).
* Tue Apr 11 2006 brogers@novell.com
@ -1941,7 +1939,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Fix default localtime for full (Bruce Rogers).
- Fix path in mk-xen-resue-img.sh (#163622).
- Update README (pathnames, yast2-vm descriptions, terminology).
* Tue Apr 04 2006 garloff@suse.de
* Mon Apr 03 2006 garloff@suse.de
- init script: Test for control_d in capabilities to determine dom0
rather than privcmd.
- init script: Try loading netloop and backend modules.
@ -1960,7 +1958,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Correctly default XAUTHORITY if it is not set. This allows the
GUI to come up for fully virtualized guests (was especially
problematic when VM was started from YaST). (#142472)
* Thu Mar 30 2006 ccoffing@novell.com
* Wed Mar 29 2006 ccoffing@novell.com
- Fixed reversed "Do I have enough memory?" test when creating
new VMs (#156448).
* Tue Mar 28 2006 ccoffing@novell.com
@ -1985,7 +1983,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Removed the intermediate sym-link between xen.gz and
xen-<version>-<release>.gz. Grub 0.97 XFS can not handle a
double indirect to a file. (#151792)
* Tue Mar 14 2006 garloff@suse.de
* Mon Mar 13 2006 garloff@suse.de
- Update README.SuSE: Document limits (mem, cpu hotplug, max_loop),
more network troubleshooting, update security info.
- Be more tolerant against errors in ifdown/ifup to better coexist
@ -2016,7 +2014,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Fix build of hvmloader and vmxassist by removing external
CFLAGS (XS changeset #9110).
- Fix build by forcing --prefix during installation of *.py.
* Thu Mar 02 2006 ccoffing@novell.com
* Wed Mar 01 2006 ccoffing@novell.com
- Update to hg 9029 (xen-unstable tree). Adds support for HVM on
64 bit hardware.
- Update vncmouse diff to 20060301 from Intel; compensates for lack
@ -2039,7 +2037,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Remove unnecessary x86_64 patch.
- Fix auto-ballooning of dom0 memory for HVM domUs (XenSource bug
521).
* Wed Feb 22 2006 ccoffing@novell.com
* Tue Feb 21 2006 ccoffing@novell.com
- Update to hg 8920 (xen-unstable tree). Fixes instruction decode
for fully virtualized guests, fixing booting from CDs.
- Integrate 3 patches from Intel, to improve VNC performance.
@ -2051,7 +2049,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Update to hg 8870 (xen-unstable tree). More HVM fixes.
- Remove duplicate balloon.free call.
- Add patch from Intel to fix dom0 crash on 64 bit SMP HVM.
* Fri Feb 17 2006 carnold@novell.com
* Thu Feb 16 2006 carnold@novell.com
- Update to hg 8858 (xen-unstable tree).
* Wed Feb 15 2006 ccoffing@novell.com
- Update to hg 8857 (xen-unstable tree). Syncs hypervisor core
@ -2091,7 +2089,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Correct return values and improve messages of init scripts.
* Fri Jan 20 2006 ccoffing@novell.com
- Use domUloader instead of pygrub.
* Fri Jan 20 2006 carnold@novell.com
* Thu Jan 19 2006 carnold@novell.com
- Build based on the xen-unstable.hg 8628
* Wed Jan 18 2006 carnold@novell.com
- Update to hg 8646 xen-unstable-hvm.hg tree.
@ -2099,7 +2097,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Allow version string "XEN_VER=3.0" instead of just
"XEN_VER=xen-3.0" for backwards compatibility.
- Correctly set changeset in compile.h.
* Fri Jan 13 2006 carnold@novell.com
* Thu Jan 12 2006 carnold@novell.com
- Added two patches from AMD that apply to the 8513 changeset.
* Thu Jan 12 2006 kukuk@suse.de
- Add libreiserfs-devel to nfb.
@ -2115,7 +2113,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Fix gcc 4.1 warnings.
* Wed Dec 07 2005 ccoffing@novell.com
- Update to hg 8241 (xen-3.0-testing).
* Tue Nov 29 2005 ccoffing@novell.com
* Mon Nov 28 2005 ccoffing@novell.com
- Update to hg 8073.
- Rationalize command names (eg, setsize -> xentrace-setsize).
- Fix gcc 4.1 warnings.
@ -2125,7 +2123,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Include a few simple, obvious fixes from upstream.
- Build xm-test package.
- Update udev scripts.
* Tue Nov 15 2005 ccoffing@novell.com
* Mon Nov 14 2005 ccoffing@novell.com
- Includes upstream fixes to fix i586 save/restore.
* Thu Nov 10 2005 ccoffing@novell.com
- Include a few simple, obvious fixes: 7609, 7618, 7636, 7689,
@ -2149,7 +2147,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
configurable timeout for the commands. Make xendomains status
report something useful.
- Make xendomains script comaptible to non-SUSE distros.
* Tue Oct 18 2005 garloff@suse.de
* Mon Oct 17 2005 garloff@suse.de
- Update to hg 7398.
* Mon Oct 17 2005 garloff@suse.de
- Create useful xendomains init script and sysconfig file.
@ -2182,15 +2180,15 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
* Sat Sep 10 2005 garloff@suse.de
- Update to hg 6715.
- Fix network-bridge down.
* Thu Sep 08 2005 garloff@suse.de
- Build PAE version along non-PAE version of Hypervisor.
* Wed Sep 07 2005 garloff@suse.de
- Build PAE version along non-PAE version of Hypervisor.
* Tue Sep 06 2005 garloff@suse.de
- Try to fix network bridge down issue.
- Document netowrking and firewalling caveats in README.SUSE.
- Enable PAE.
* Tue Sep 06 2005 garloff@suse.de
- Update to hg 6644.
* Mon Sep 05 2005 garloff@suse.de
* Sun Sep 04 2005 garloff@suse.de
- Update to hg 6610.
- Rename default name of xen-br0 to xenbr0.
- Fix pygrub installation.
@ -2213,12 +2211,12 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Include linux-public headers in xen-devel package.
* Sun Aug 21 2005 garloff@suse.de
- Update to hg 6305.
* Sun Aug 21 2005 garloff@suse.de
* Sat Aug 20 2005 garloff@suse.de
- Update to hg 6299.
- Enable VNC support (depending on LibVNCServer).
* Sun Aug 21 2005 garloff@suse.de
- Split off xen-tools-ioemu for supporting unmodified guests.
* Sat Aug 20 2005 garloff@suse.de
- Split off xen-tools-ioemu for supporting unmodified guests.
* Fri Aug 19 2005 garloff@suse.de
- Enable pygrub (at the cost of depending on e2fsprogs-devel)
- Enable VMX ioemu SDL support (at the cost of many dependencies)
* Fri Aug 19 2005 garloff@suse.de
@ -2246,15 +2244,15 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Fix version-check in NetWare loader (0x336ec577 -> 0x326ec578).
* Fri Jun 17 2005 ccoffing@novell.com
- Backport NetWare-friendly loader from Xen 3.0.
* Fri Jun 17 2005 ccoffing@novell.com
* Thu Jun 16 2005 ccoffing@novell.com
- Destroy domains that failed to be fully created.
* Fri Jun 10 2005 garloff@suse.de
- Update to latest 2.0-testing snapshot.
- Use RPM version and release no as xen version.
* Wed Jun 08 2005 garloff@suse.de
* Tue Jun 07 2005 garloff@suse.de
- Update mk-xen-rescue-img.sh script: Handle SLES9 better.
- Export PYTHONOPTIMIZE in xend start script.
* Tue Jun 07 2005 garloff@suse.de
* Mon Jun 06 2005 garloff@suse.de
- Merge _perform_err fixes.
* Mon May 23 2005 ccoffing@novell.com
- update to 2.0.6
@ -2262,7 +2260,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- More gcc4 and binutils related fixes.
* Wed Apr 13 2005 garloff@suse.de
- Build fixes for gcc4.
* Mon Apr 04 2005 garloff@suse.de
* Sun Apr 03 2005 garloff@suse.de
- Update xen: Various fixes (scheduling, memset, domain crash
handling) and enhancements (bg page scrubbing).
* Thu Mar 24 2005 garloff@suse.de
@ -2276,7 +2274,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Require ports < 1024 to allow controlling VMs.
* Mon Mar 21 2005 garloff@suse.de
- Update xen.
* Thu Mar 17 2005 garloff@suse.de
* Wed Mar 16 2005 garloff@suse.de
- Update xen.
- Add /var/lib/xen/xen-db/ subdirs.
* Sun Mar 13 2005 garloff@suse.de
@ -2304,16 +2302,16 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Add bridge-utils dependency.
- Update config file and README.
- Activate xend init script on installation.
* Thu Feb 10 2005 ro@suse.de
* Wed Feb 09 2005 ro@suse.de
- remove te_etex and te_pdf from neededforbuild.
* Thu Feb 10 2005 garloff@suse.de
* Wed Feb 09 2005 garloff@suse.de
- Update README about IDE dma.
- Default to dhcp.
* Wed Feb 09 2005 garloff@suse.de
- Update to xen post-2.0.4.
- Little bugfix for xen rescue install script.
- Update README.SUSE: Better explanation of root FS creation.
* Mon Jan 24 2005 garloff@suse.de
* Sun Jan 23 2005 garloff@suse.de
- Change some defaults to be more secure (xend only binds to
localhost, ip spoof protection on).
- Avoid ipv6 issue with xend network script.
@ -2323,7 +2321,7 @@ rm -f $RPM_BUILD_ROOT/%pysite/*.egg-info
- Put boot.local script in root img to parse ip boot par.
* Thu Jan 20 2005 garloff@suse.de
- Update to newer snapshot.
* Thu Jan 20 2005 garloff@suse.de
* Wed Jan 19 2005 garloff@suse.de
- Update to xen-2.0-unstable (post 2.0.3).
* Thu Dec 09 2004 garloff@suse.de
- Initial creation of package xen, xen-doc-*.