SHA256
1
0
forked from pool/xen
Files
xen/xen-domUloader.diff
Charles Arnold f196fa2c00 - bnc#573376 - OS reboot while create DomU with Windows CD
- bnc#573881 - /usr/lib64/xen/bin/qemu-dm is a broken link 

- Update to changeset 20840 RC1+ for sle11-sp1 beta3. 

- bnc#569581 - SuSEfirewall2 should handle rules.  Disable
  handle_iptable in vif-bridge script
  vif-bridge-no-iptables.patch

- bnc#569577 - /etc/modprove.d/xen_pvdrivers, installed by 
  xen-kmp-default, to ../xen_pvdrivers.conf 
- bnc#536176 - Xen panic when using iommu after updating hypervisor 
  19380-vtd-feature-check.patch

- bnc#530959 - virsh autostart doesn't work
  Fixing this libvirt bug also required fixing xend's op_pincpu
  method with upstream c/s 19580
  19580-xend-pincpu.patch

- bnc#534146 - Xen: Fix SRAT check for discontig memory
  20120-x86-srat-check-discontig.patch

- bnc#491081 - Xen time goes backwards x3950M2 
- disable module build for ec2 correctly to fix build
  (at the suse_kernel_module_package macro)
               runs
- Upstream bugfixes from Jan.
  19896-32on64-arg-xlat.patch
  19960-show-page-walk.patch
  19945-pae-xen-l2-entries.patch
  19953-x86-fsgs-base.patch
  19931-gnttblop-preempt.patch
  19885-kexec-gdt-switch.patch
  19894-shadow-resync-fastpath-race.patch
- hvperv shim patches no longer require being applied conditionally

- bnc#520234 - npiv does not work with XEN in SLE11
  Update block-npiv
- bnc#496033 - Support for creating NPIV ports without starting vm
  block-npiv-common.sh
  block-npiv-vport
  Update block-npiv
- bnc#500043 - Fix access to NPIV disk from HVM vm
  Update xen-qemu-iscsi-fix.patch

- Don't build the KMPs for the ec2 kernel. 

- Upstream fixes from Jan Beulich
  19606-hvm-x2apic-cpuid.patch
  19734-vtd-gcmd-submit.patch
  19752-vtd-srtp-sirtp-flush.patch
  19753-vtd-reg-write-lock.patch
  19764-hvm-domain-lock-leak.patch
  19765-hvm-post-restore-vcpu-state.patch
  19767-hvm-port80-inhibit.patch
  19768-x86-dom0-stack-dump.patch
  19770-x86-amd-s3-resume.patch
  19801-x86-p2m-2mb-hap-only.patch
  19815-vtd-kill-correct-timer.patch
- Patch from Jan Beulich to aid in debugging bnc#509911
  gnttblop-preempt.patch

- bnc#515220 - qemu-img-xen snapshot Segmentation fault
  qemu-img-snapshot.patch update
- Upstream fixes from Jan Beulich.
  19474-32on64-S3.patch
  19490-log-dirty.patch
  19492-sched-timer-non-idle.patch
  19493-hvm-io-intercept-count.patch
  19505-x86_64-clear-cr1.patch
  19519-domctl-deadlock.patch
  19523-32on64-restore-p2m.patch
  19555-ept-live-migration.patch
  19557-amd-iommu-ioapic-remap.patch
  19560-x86-flush-tlb-empty-mask.patch
  19571-x86-numa-shift.patch
  19578-hvm-load-ldt-first.patch
  19592-vmx-exit-reason-perfc-size.patch
  19595-hvm-set-callback-irq-level.patch
  19597-x86-ioport-quirks-BL2xx.patch
  19602-vtd-multi-ioapic-remap.patch
  19631-x86-frametable-map.patch
  19653-hvm-vcpuid-range-checks.patch

- bnc#382112 - Caps lock not being passed to vm correctly.
  capslock_enable.patch

- bnc#506833 - Use pidof in xend and xendomains init scripts

- bnc#484778 - XEN: PXE boot of FV domU using non-Realtek NIC fails
  enable_more_nic_pxe.patch

cross-migrate.patch
- bnc#390961 - cross-migration of a VM causes it to become
  unresponsive (remains paused after migration)

- Patches taken to fix the xenctx tool. The fixed version of this
  tool is needed to debug bnc#502735. 
  18962-xc_translate_foreign_address.patch
  18963-xenctx.patch
  19168-hvm-domctl.patch
  19169-remove-declare-bitmap.patch
  19170-libxc.patch
  19171-xenctx.patch
  19450-xc_translate_foreign_address.patch

 

-bnc#503782 - Using converted vmdk image does not work
 ioemu-tapdisk-compat-QEMU_IMG.patch 


- bnc#474738 - adding CD drive to VM guest makes it unbootable.
  parse_boot_disk.patch
- bnc#495300 - L3: Xen unable to PXE boot Windows based DomU's
  18545-hvm-gpxe-rom.patch, 18548-hvm-gpxe-rom.patch 

- bnc#459836 - Fix rtc_timeoffset when localtime=0
  xend-timeoffset.patch

- bnc#497440 - xmclone.sh script incorrectly handles networking for
  SLE11.

- bnc#477890 - VM becomes unresponsive after applying snapshot

- bnc#494892 - Update xend-domain-lock.patch to flock the lock
               file.

- bnc#439639 - SVVP Test 273 System - Sleep Stress With IO" fails
Turned off s3/s4 sleep states for HVM guests.

- bnc#468169 - fix domUloader to umount the mounted device mapper target in dom0 
               when install a sles10 guest with disk = /dev/disk/by_path

- bnc#488490 - domUloader can't handle block device names with ':'
- bnc#486244 - vms fail to start after reboot when using qcow2

- bnc#490835 - VTd errata on Cantiga chipset
  19230-vtd-mobile-series4-chipset.patch

- bnc#482515 - Missing dependency in xen.spec 

- Additional upstream bug fix patches from Jan Beulich.
  19132-page-list-mfn-links.patch
  19134-fold-shadow-page-info.patch
  19135-next-shadow-mfn.patch
  19136-page-info-rearrange.patch
  19156-page-list-simplify.patch
  19161-pv-ldt-handling.patch
  19162-page-info-no-cpumask.patch
  19216-msix-fixmap.patch
  19268-page-get-owner.patch
  19293-vcpu-migration-delay.patch
  19391-vpmu-double-free.patch
  19415-vtd-dom0-s3.patch

- Imported numerous upstream bug fix patches.
  19083-memory-is-conventional-fix.patch
  19097-M2P-table-1G-page-mappings.patch
  19137-lock-domain-page-list.patch
  19140-init-heap-pages-max-order.patch
  19167-recover-pat-value-s3-resume.patch
  19172-irq-to-vector.patch
  19173-pci-passthrough-fix.patch
  19176-free-irq-shutdown-fix.patch
  19190-pciif-typo-fix.patch
  19204-allow-old-images-restore.patch
  19232-xend-exception-fix.patch
  19239-ioapic-s3-suspend-fix.patch
  19240-ioapic-s3-suspend-fix.patch
  19242-xenstored-use-after-free-fix.patch
  19259-ignore-shutdown-deferrals.patch
  19266-19365-event-channel-access-fix.patch
  19275-19296-schedular-deadlock-fixes.patch
  19276-cpu-selection-allocation-fix.patch
  19302-passthrough-pt-irq-time-out.patch
  19313-hvmemul-read-msr-fix.patch
  19317-vram-tracking-fix.patch
  19335-apic-s3-resume-error-fix.patch
  19353-amd-migration-fix.patch
  19354-amd-migration-fix.patch
  19371-in-sync-L1s-writable.patch
  19372-2-on-3-shadow-mode-fix.patch
  19377-xend-vnclisten.patch
  19400-ensure-ltr-execute.patch
  19410-virt-to-maddr-fix.patch

- bnc#483565 - Fix block-iscsi script.
  Updated block-iscsi and xen-domUloader.diff

- bnc#465814 - Mouse stops responding when wheel is used in Windows
  VM.
  mouse-wheel-roll.patch (James Song)
- bnc#470704 - save/restore of windows VM throws off the mouse 
  tracking. 
  usb-save-restore.patch (James Song)

- bnc#436629 - Use global vnc-listen setting specified in xend
  configuration file.
  xend-vnclisten.patch
- bnc#482623 - Fix pygrub to append user-supplied 'extra' args
  to kernel args.
  19234_pygrub.patch

- bnc#481161 upgrade - sles10sp2 to sles11 upgrade keeps
  xen-tools-ioemu

OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=28
2010-01-29 20:39:04 +00:00

189 lines
7.3 KiB
Diff

Index: xen-4.0.0-testing/tools/python/xen/util/blkif.py
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/util/blkif.py
+++ xen-4.0.0-testing/tools/python/xen/util/blkif.py
@@ -71,8 +71,8 @@ def blkdev_segment(name):
'type' : 'Disk' }
return val
-def _parse_uname(uname):
- fn = taptype = None
+def parse_uname(uname):
+ fn = typ = taptype = None
if uname.find(":") != -1:
(typ, fn) = uname.split(":", 1)
@@ -88,15 +88,16 @@ def _parse_uname(uname):
if typ == "tap":
(taptype, fn) = fn.split(":", 1)
- return (fn, taptype)
+ return (fn, (typ, taptype))
+ return (fn, (typ,taptype))
def blkdev_uname_to_file(uname):
"""Take a blkdev uname and return the corresponding filename."""
- return _parse_uname(uname)[0]
+ return parse_uname(uname)[0]
def blkdev_uname_to_taptype(uname):
"""Take a blkdev uname and return the blktap type."""
- return _parse_uname(uname)[1]
+ return parse_uname(uname)[1]
def mount_mode(name):
mode = None
Index: xen-4.0.0-testing/tools/python/xen/xend/server/DevController.py
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/server/DevController.py
+++ xen-4.0.0-testing/tools/python/xen/xend/server/DevController.py
@@ -592,6 +592,31 @@ class DevController:
return (Missing, None)
+ def waitForFrontend(self, devid):
+ def frontendStatusCallback(statusPath, ev, result):
+ status = xstransact.Read(statusPath)
+ log.debug("frontendStatusCallback %s = %s" % (statusPath, status))
+ try:
+ status = int(status)
+ if status == xenbusState['Connected']:
+ result['status'] = Connected
+ elif status == xenbusState['Closed']:
+ result['status'] = Error
+ else:
+ raise
+ except:
+ return 1
+ ev.set()
+ return 0
+ frontpath = self.frontendPath(devid)
+ statusPath = frontpath + '/state'
+ ev = Event()
+ result = { 'status': Timeout }
+ xswatch(statusPath, frontendStatusCallback, ev, result)
+ ev.wait(5)
+ return result['status']
+
+
def backendPath(self, backdom, devid):
"""Construct backend path given the backend domain and device id.
Index: xen-4.0.0-testing/tools/python/xen/xend/XendBootloader.py
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendBootloader.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendBootloader.py
@@ -12,7 +12,7 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
-import os, select, errno, stat, signal, tty
+import os, select, errno, stat, signal, tty, time
import random
import shlex
from xen.xend import sxp
@@ -38,8 +38,25 @@ def bootloader(blexec, disk, dom, quiet
msg = "Bootloader isn't executable"
log.error(msg)
raise VmError(msg)
- if not os.access(disk, os.R_OK):
- msg = "Disk isn't accessible"
+
+ # domUloader requires '--entry=foo' in blargs, which is derived from
+ # 'bootargs' entry in domain configuration file. Ensure it exists
+ # here so a reasonable error message can be returned.
+ if blexec.find('domUloader.py') != -1:
+ if blargs.find('entry') == -1:
+ msg = "domUloader requires specification of bootargs"
+ log.error(msg)
+ raise VmError(msg)
+
+ avail = False
+ for i in xrange(1, 20):
+ avail = os.access(disk, os.R_OK)
+ if avail:
+ break
+ time.sleep(.05)
+
+ if not avail:
+ msg = "Disk '%s' isn't accessible" % disk
log.error(msg)
raise VmError(msg)
Index: xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
===================================================================
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendDomainInfo.py
+++ xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py
@@ -37,7 +37,7 @@ from types import StringTypes
import xen.lowlevel.xc
from xen.util import asserts, auxbin
-from xen.util.blkif import blkdev_uname_to_file, blkdev_uname_to_taptype
+from xen.util.blkif import parse_uname
import xen.util.xsm.xsm as security
from xen.util import xsconstants
from xen.util import mkdir
@@ -2337,6 +2337,10 @@ class XendDomainInfo:
deviceClass, config = self.info['devices'].get(dev_uuid)
self._waitForDevice(deviceClass, config['devid'])
+ def _waitForDeviceFrontUUID(self, dev_uuid):
+ deviceClass, config = self.info['devices'].get(dev_uuid)
+ self.getDeviceController(deviceClass).waitForFrontend(config['devid'])
+
def _waitForDevice_destroy(self, deviceClass, devid, backpath):
return self.getDeviceController(deviceClass).waitForDevice_destroy(
devid, backpath)
@@ -3226,7 +3230,7 @@ class XendDomainInfo:
devtype = devinfo[0]
disk = devinfo[1]['uname']
- fn = blkdev_uname_to_file(disk)
+ (fn, types) = parse_uname(disk)
# If this is a drbd volume, check if we need to activate it
if disk.find(":") != -1:
@@ -3237,8 +3241,17 @@ class XendDomainInfo:
if state == 'Secondary':
os.system('/sbin/drbdadm primary ' + diskname)
- taptype = blkdev_uname_to_taptype(disk)
- mounted = devtype in ['tap', 'tap2'] and taptype != 'aio' and taptype != 'sync' and not os.stat(fn).st_rdev
+ def _shouldMount(types):
+ if types[0] in ('file', 'phy'):
+ return False
+ if types[0] == 'tap' or types[0] == 'tap2':
+ if types[1] in ('aio', 'sync'):
+ return False
+ else:
+ return True
+ return os.access('/etc/xen/scripts/block-%s' % types[0], os.X_OK)
+
+ mounted = _shouldMount(types)
if mounted:
# This is a file, not a device. pygrub can cope with a
# file if it's raw, but if it's QCOW or other such formats
@@ -3254,7 +3267,8 @@ class XendDomainInfo:
from xen.xend import XendDomain
dom0 = XendDomain.instance().privilegedDomain()
- dom0._waitForDeviceUUID(dom0.create_vbd(vbd, disk))
+ vbd_uuid = dom0.create_vbd(vbd, disk)
+ dom0._waitForDeviceFrontUUID(vbd_uuid)
fn = BOOTLOADER_LOOPBACK_DEVICE
try:
@@ -3264,8 +3278,10 @@ class XendDomainInfo:
if mounted:
log.info("Unmounting %s from %s." %
(fn, BOOTLOADER_LOOPBACK_DEVICE))
-
- dom0.destroyDevice('tap', BOOTLOADER_LOOPBACK_DEVICE)
+ if devtype in ['tap', 'tap2']:
+ dom0.destroyDevice('tap', BOOTLOADER_LOOPBACK_DEVICE, rm_cfg = True)
+ else:
+ dom0.destroyDevice('vbd', BOOTLOADER_LOOPBACK_DEVICE, rm_cfg = True)
if blcfg is None:
msg = "Had a bootloader specified, but can't find disk"