- 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
142 lines
6.1 KiB
Diff
142 lines
6.1 KiB
Diff
Index: xen-4.0.0-testing/tools/python/xen/xend/XendNode.py
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/tools/python/xen/xend/XendNode.py
|
|
+++ xen-4.0.0-testing/tools/python/xen/xend/XendNode.py
|
|
@@ -907,15 +907,39 @@ class XendNode:
|
|
|
|
info['cpu_mhz'] = info['cpu_khz'] / 1000
|
|
|
|
- # physinfo is in KiB, need it in MiB
|
|
- info['total_memory'] = info['total_memory'] / 1024
|
|
- info['free_memory'] = info['free_memory'] / 1024
|
|
- info['node_to_cpu'] = self.format_node_to_cpu(info)
|
|
- info['node_to_memory'] = \
|
|
+ configured_floor = xendoptions().get_dom0_min_mem() * 1024
|
|
+ from xen.xend import balloon
|
|
+ try:
|
|
+ kernel_floor = balloon.get_dom0_min_target()
|
|
+ except:
|
|
+ kernel_floor = 0
|
|
+ dom0_min_mem = max(configured_floor, kernel_floor)
|
|
+ dom0_mem = balloon.get_dom0_current_alloc()
|
|
+ extra_mem = 0
|
|
+ if dom0_min_mem > 0 and dom0_mem > dom0_min_mem:
|
|
+ extra_mem = dom0_mem - dom0_min_mem
|
|
+ info['free_memory'] = info['free_memory'] + info['scrub_memory']
|
|
+ info['max_free_memory'] = info['free_memory'] + extra_mem
|
|
+
|
|
+ # Convert KiB to MiB, rounding down to be conservative
|
|
+ info['total_memory'] = info['total_memory'] / 1024
|
|
+ info['free_memory'] = info['free_memory'] / 1024
|
|
+ info['max_free_memory'] = info['max_free_memory'] / 1024
|
|
+ info['node_to_cpu'] = self.format_node_to_cpu(info)
|
|
+ info['node_to_memory'] = \
|
|
self.format_node_to_memory(info, 'node_to_memory')
|
|
info['node_to_dma32_mem'] = \
|
|
self.format_node_to_memory(info, 'node_to_dma32_mem')
|
|
|
|
+ # FIXME: These are hard-coded to be the inverse of the getXenMemory
|
|
+ # functions in image.py. Find a cleaner way.
|
|
+ info['max_para_memory'] = info['max_free_memory'] - 4
|
|
+ if info['max_para_memory'] < 0:
|
|
+ info['max_para_memory'] = 0
|
|
+ info['max_hvm_memory'] = int((info['max_free_memory']-12) * (1-2.4/1024))
|
|
+ if info['max_hvm_memory'] < 0:
|
|
+ info['max_hvm_memory'] = 0
|
|
+
|
|
ITEM_ORDER = ['nr_cpus',
|
|
'nr_nodes',
|
|
'cores_per_socket',
|
|
@@ -925,6 +949,9 @@ class XendNode:
|
|
'virt_caps',
|
|
'total_memory',
|
|
'free_memory',
|
|
+ 'max_free_memory',
|
|
+ 'max_para_memory',
|
|
+ 'max_hvm_memory',
|
|
'node_to_cpu',
|
|
'node_to_memory',
|
|
'node_to_dma32_mem',
|
|
Index: xen-4.0.0-testing/tools/python/xen/xend/balloon.py
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/tools/python/xen/xend/balloon.py
|
|
+++ xen-4.0.0-testing/tools/python/xen/xend/balloon.py
|
|
@@ -43,6 +43,8 @@ SLEEP_TIME_GROWTH = 0.1
|
|
# label actually shown in the PROC_XEN_BALLOON file.
|
|
#labels = { 'current' : 'Current allocation',
|
|
# 'target' : 'Requested target',
|
|
+# 'min-target' : 'Minimum target',
|
|
+# 'max-target' : 'Maximum target',
|
|
# 'low-balloon' : 'Low-mem balloon',
|
|
# 'high-balloon' : 'High-mem balloon',
|
|
# 'limit' : 'Xen hard limit' }
|
|
@@ -69,6 +71,23 @@ def get_dom0_target_alloc():
|
|
raise VmError('Failed to query target memory allocation of dom0.')
|
|
return kb
|
|
|
|
+def get_dom0_min_target():
|
|
+ """Returns the minimum amount of memory (in KiB) that dom0 will accept."""
|
|
+
|
|
+ kb = _get_proc_balloon(labels['min-target'])
|
|
+ if kb == None:
|
|
+ raise VmError('Failed to query minimum target memory allocation of dom0.')
|
|
+ return kb
|
|
+
|
|
+def get_dom0_max_target():
|
|
+ """Returns the maximum amount of memory (in KiB) that is potentially
|
|
+ visible to dom0."""
|
|
+
|
|
+ kb = _get_proc_balloon(labels['max-target'])
|
|
+ if kb == None:
|
|
+ raise VmError('Failed to query maximum target memory allocation of dom0.')
|
|
+ return kb
|
|
+
|
|
def free(need_mem, dominfo):
|
|
"""Balloon out memory from the privileged domain so that there is the
|
|
specified required amount (in KiB) free.
|
|
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
|
|
@@ -1469,6 +1469,27 @@ class XendDomainInfo:
|
|
pci_conf = self.info['devices'][dev_uuid][1]
|
|
return map(pci_dict_to_bdf_str, pci_conf['devs'])
|
|
|
|
+ def capAndSetMemoryTarget(self, target):
|
|
+ """Potentially lowers the requested target to the largest possible
|
|
+ value (i.e., caps it), and then sets the memory target of this domain
|
|
+ to that value.
|
|
+ @param target in MiB.
|
|
+ """
|
|
+ max_target = 0
|
|
+ if self.domid == 0:
|
|
+ try:
|
|
+ from balloon import get_dom0_max_target
|
|
+ max_target = get_dom0_max_target() / 1024
|
|
+ except:
|
|
+ # It's nice to cap the max at sane values, but harmless to set
|
|
+ # them high. Carry on.
|
|
+ pass
|
|
+ if max_target and target > max_target:
|
|
+ log.debug("Requested memory target %d MiB; maximum reasonable is %d MiB.",
|
|
+ target, max_target)
|
|
+ target = max_target
|
|
+ self.setMemoryTarget(target)
|
|
+
|
|
def setMemoryTarget(self, target):
|
|
"""Set the memory target of this domain.
|
|
@param target: In MiB.
|
|
Index: xen-4.0.0-testing/tools/python/xen/xend/server/SrvDomain.py
|
|
===================================================================
|
|
--- xen-4.0.0-testing.orig/tools/python/xen/xend/server/SrvDomain.py
|
|
+++ xen-4.0.0-testing/tools/python/xen/xend/server/SrvDomain.py
|
|
@@ -173,7 +173,7 @@ class SrvDomain(SrvDir):
|
|
|
|
|
|
def op_mem_target_set(self, _, req):
|
|
- return self.call(self.dom.setMemoryTarget,
|
|
+ return self.call(self.dom.capAndSetMemoryTarget,
|
|
[['target', 'int']],
|
|
req)
|
|
|