From 614a20ee4e2cbf2e24406aa1329572d8c0a549a3978018c6fca5459398f81bae Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Thu, 27 Mar 2008 22:24:06 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xen?expand=0&rev=43 --- 16931-hvm-hap-param.patch | 4 +- 16933-hvm-hap-fix.patch | 2 +- 17210-xenapi-defaults.patch | 32 +++ 17211-xenapi-defaults.patch | 31 +++ ...aults.patch => 17212-xenapi-defaults.patch | 80 +++--- const-set-trap-table-arg.patch | 2 +- ept-novell-x64-2m.patch => ept-2m-x64.patch | 122 +++++++--- ept-livemgr-x86-miss.patch | 122 ++++++++++ ept-novell-i386.patch | 120 ++++----- ept-novell-x64.patch | 6 +- livemig-ept-novell-i386.patch | 38 +-- ...gr-2m.diff => livemig-ept-novell-x64.patch | 143 +++++------ ns_tools.patch | 2 +- ns_xen_base.patch | 10 +- vpid-novell-i386.patch | 64 ++--- x86_emulate.patch | 8 +- xen-3.2.1-testing-src.tar.bz2 | 4 +- xen.changes | 11 + xen.spec | 230 +++++++++--------- 19 files changed, 629 insertions(+), 402 deletions(-) create mode 100644 17210-xenapi-defaults.patch create mode 100644 17211-xenapi-defaults.patch rename 17xxx-xenapi-defaults.patch => 17212-xenapi-defaults.patch (64%) rename ept-novell-x64-2m.patch => ept-2m-x64.patch (85%) create mode 100644 ept-livemgr-x86-miss.patch rename ept-with-livemgr-2m.diff => livemig-ept-novell-x64.patch (79%) diff --git a/16931-hvm-hap-param.patch b/16931-hvm-hap-param.patch index df61ff3..d75ca57 100644 --- a/16931-hvm-hap-param.patch +++ b/16931-hvm-hap-param.patch @@ -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; } diff --git a/16933-hvm-hap-fix.patch b/16933-hvm-hap-fix.patch index c234597..2dc0ecb 100644 --- a/16933-hvm-hap-fix.patch +++ b/16933-hvm-hap-fix.patch @@ -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): diff --git a/17210-xenapi-defaults.patch b/17210-xenapi-defaults.patch new file mode 100644 index 0000000..ebeb24f --- /dev/null +++ b/17210-xenapi-defaults.patch @@ -0,0 +1,32 @@ +# HG changeset patch +# User Keir Fraser +# 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 + +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'): diff --git a/17211-xenapi-defaults.patch b/17211-xenapi-defaults.patch new file mode 100644 index 0000000..98d6608 --- /dev/null +++ b/17211-xenapi-defaults.patch @@ -0,0 +1,31 @@ +# HG changeset patch +# User Keir Fraser +# 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 + +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() diff --git a/17xxx-xenapi-defaults.patch b/17212-xenapi-defaults.patch similarity index 64% rename from 17xxx-xenapi-defaults.patch rename to 17212-xenapi-defaults.patch index 40f272f..ddd3fbb 100644 --- a/17xxx-xenapi-defaults.patch +++ b/17212-xenapi-defaults.patch @@ -1,11 +1,31 @@ -Index: xen-3.2-testing/tools/python/xen/xend/XendConfig.py +# HG changeset patch +# User Keir Fraser +# 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 + +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 diff --git a/const-set-trap-table-arg.patch b/const-set-trap-table-arg.patch index 0668053..6f17799 100644 --- a/const-set-trap-table-arg.patch +++ b/const-set-trap-table-arg.patch @@ -10,7 +10,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/traps.c #include #include #include -@@ -2828,7 +2829,7 @@ long unregister_guest_nmi_callback(void) +@@ -2880,7 +2881,7 @@ long unregister_guest_nmi_callback(void) return 0; } diff --git a/ept-novell-x64-2m.patch b/ept-2m-x64.patch similarity index 85% rename from ept-novell-x64-2m.patch rename to ept-2m-x64.patch index fdc7f80..a0ad197 100644 --- a/ept-novell-x64-2m.patch +++ b/ept-2m-x64.patch @@ -140,7 +140,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/mm/p2m-ept.c #include #include #include -@@ -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; } diff --git a/ept-livemgr-x86-miss.patch b/ept-livemgr-x86-miss.patch new file mode 100644 index 0000000..798c031 --- /dev/null +++ b/ept-livemgr-x86-miss.patch @@ -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 + #include + #include ++#include ++ ++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; + } + + /* diff --git a/ept-novell-i386.patch b/ept-novell-i386.patch index 75423be..bd87753 100644 --- a/ept-novell-i386.patch +++ b/ept-novell-i386.patch @@ -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 @@ -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 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 #include @@ -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 #include @@ -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) */ diff --git a/ept-novell-x64.patch b/ept-novell-x64.patch index 1ccf583..87dbd23 100644 --- a/ept-novell-x64.patch +++ b/ept-novell-x64.patch @@ -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__ */ diff --git a/livemig-ept-novell-i386.patch b/livemig-ept-novell-i386.patch index 167c68c..5d9af35 100644 --- a/livemig-ept-novell-i386.patch +++ b/livemig-ept-novell-i386.patch @@ -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 #include #include @@ -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 */ diff --git a/ept-with-livemgr-2m.diff b/livemig-ept-novell-x64.patch similarity index 79% rename from ept-with-livemgr-2m.diff rename to livemig-ept-novell-x64.patch index ffd3709..2c869a1 100644 --- a/ept-with-livemgr-2m.diff +++ b/livemig-ept-novell-x64.patch @@ -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 #include #include @@ -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); diff --git a/ns_tools.patch b/ns_tools.patch index ad2b51f..cb84ee6 100644 --- a/ns_tools.patch +++ b/ns_tools.patch @@ -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, diff --git a/ns_xen_base.patch b/ns_xen_base.patch index 3926c00..12bfd73 100644 --- a/ns_xen_base.patch +++ b/ns_xen_base.patch @@ -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; } diff --git a/vpid-novell-i386.patch b/vpid-novell-i386.patch index 61266d1..969823c 100644 --- a/vpid-novell-i386.patch +++ b/vpid-novell-i386.patch @@ -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 #include @@ -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 #include @@ -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); } diff --git a/x86_emulate.patch b/x86_emulate.patch index 548c989..3ff7467 100644 --- a/x86_emulate.patch +++ b/x86_emulate.patch @@ -144,7 +144,7 @@ Index: xen-3.2.1-testing/xen/arch/x86/x86_emulate.c #endif #include -@@ -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) diff --git a/xen-3.2.1-testing-src.tar.bz2 b/xen-3.2.1-testing-src.tar.bz2 index 098393f..9aa82d9 100644 --- a/xen-3.2.1-testing-src.tar.bz2 +++ b/xen-3.2.1-testing-src.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53d07207f8907ba02d152852ff216695c07be2e97b53bac025ac991542aef08f -size 5467794 +oid sha256:b76bdbe8d7703cef1c7498bbdfc73f8b178ebafb737ddbdf352a76144c8d6e2b +size 5468802 diff --git a/xen.changes b/xen.changes index 6b9d56b..6e2c86f 100644 --- a/xen.changes +++ b/xen.changes @@ -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 diff --git a/xen.spec b/xen.spec index d4d02b2..690cd6b 100644 --- a/xen.spec +++ b/xen.spec @@ -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_ 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--.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-*.