Hello community, here is the log from the commit of package xen for openSUSE:Factory checked in at Fri Jun 4 15:04:56 CEST 2010. -------- --- xen/xen.changes 2010-05-19 16:11:06.000000000 +0200 +++ /mounts/work_src_done/STABLE/xen/xen.changes 2010-06-03 18:21:23.000000000 +0200 @@ -1,0 +2,45 @@ +Tue May 25 15:17:38 MDT 2010 - carnold@novell.com + +- bnc#608191 - /var/adm/fillup-templates/sysconfig.xend from + package xen-tools is no valid sysconfig file + xend-sysconfig.patch + +------------------------------------------------------------------- +Tue May 25 14:32:57 MDT 2010 - carnold@novell.com + +- bnc#608194 - /etc/xen/* config files are not packaged with + noreplace + +------------------------------------------------------------------- +Tue May 25 13:19:17 MDT 2010 - carnold@novell.com + +- bnc#569744 - SLE HVM guest clock/timezone is incorrect after + reboot + 21460-xend-timeoffset.patch + +------------------------------------------------------------------- +Tue May 25 11:20:30 MDT 2010 - jfehlig@novell.com + +- bnc#606882 - Allow spaces in vbd path names + 21459-block-script.patch + +------------------------------------------------------------------- +Mon May 24 15:10:12 CST 2010 - jsong@novell.com +- bnc#591799 - The status of Caps Lock is incorrect in domU + capslock_enable.patch + +------------------------------------------------------------------- +Thu May 20 09:56:07 MDT 2010 - carnold@novell.com + +- Upstream fixes from Jan including a fix for Intel's ATS issue + 21435-vmx-retain-global-controls.patch + 21406-x86-microcode-quiet.patch + 21421-vts-ats-enabling.patch + +------------------------------------------------------------------- +Wed May 19 13:23:36 MDT 2010 - carnold@novell.com + +- bnc#607219 - AMD Erratum 383 workaround for Xen + 21408-amd-erratum-383.patch + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- 21406-x86-microcode-quiet.patch 21408-amd-erratum-383.patch 21421-vts-ats-enabling.patch 21435-vmx-retain-global-controls.patch 21459-block-script.patch 21460-xend-timeoffset.patch capslock_enable.patch xend-sysconfig.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.Ru4MDQ/_old 2010-06-04 15:04:37.000000000 +0200 +++ /var/tmp/diff_new_pack.Ru4MDQ/_new 2010-06-04 15:04:37.000000000 +0200 @@ -39,7 +39,7 @@ BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11 %endif Version: 4.0.0_21091_05 -Release: 2 +Release: 3 License: GPLv2+ Group: System/Kernel AutoReqProv: on @@ -102,6 +102,12 @@ Patch25: 21360-x86-mce-polling-diabled-init.patch Patch26: 21372-x86-cross-cpu-wait.patch Patch27: 21373-dummy-domain-io-caps.patch +Patch28: 21406-x86-microcode-quiet.patch +Patch29: 21408-amd-erratum-383.patch +Patch30: 21421-vts-ats-enabling.patch +Patch31: 21435-vmx-retain-global-controls.patch +Patch32: 21459-block-script.patch +Patch33: 21460-xend-timeoffset.patch # Our patches Patch300: xen-config.diff Patch301: xend-config.diff @@ -162,6 +168,7 @@ Patch367: cpu-pools-libxen.patch Patch368: cpu-pools-xmtest.patch Patch369: cpu-pools-docs.patch +Patch370: xend-sysconfig.patch # Patches for snapshot support Patch400: snapshot-ioemu-save.patch Patch401: snapshot-ioemu-restore.patch @@ -185,6 +192,7 @@ Patch428: qemu-dm-segfault.patch Patch429: hibernate.patch Patch430: del_usb_xend_entry.patch +Patch431: capslock_enable.patch # Jim's domain lock patch Patch450: xend-domain-lock.patch # Hypervisor and PV driver Patches @@ -570,6 +578,12 @@ %patch25 -p1 %patch26 -p1 %patch27 -p1 +%patch28 -p1 +%patch29 -p1 +%patch30 -p1 +%patch31 -p1 +%patch32 -p1 +%patch33 -p1 %patch300 -p1 %patch301 -p1 %patch302 -p1 @@ -628,6 +642,7 @@ %patch367 -p1 %patch368 -p1 %patch369 -p1 +%patch370 -p1 %patch400 -p1 %patch401 -p1 %patch402 -p1 @@ -648,6 +663,7 @@ %patch428 -p1 %patch429 -p1 %patch430 -p1 +%patch431 -p1 %patch450 -p1 %patch500 -p1 %patch501 -p1 @@ -936,8 +952,8 @@ #/etc/xen/scripts/qemu-ifup /etc/xen/README* %config /etc/xen/vm -%config /etc/xen/*.sxp -%config /etc/xen/*.xml +%config(noreplace) /etc/xen/*.sxp +%config(noreplace) /etc/xen/*.xml %config(noreplace) /etc/xen/xenapiusers %config /etc/pam.d/xen-api %config /etc/modprobe.d/xen_loop.conf ++++++ 21406-x86-microcode-quiet.patch ++++++ # HG changeset patch # User Keir Fraser <keir.fraser@citrix.com> # Date 1274118689 -3600 # Node ID 2a16128f17d884b87124eb159d4c4a0c34339d4e # Parent 89a2f9ad02f23c24a06274a1217991181f19930b x86: Quieten microcode.c during CPU hotplug Signed-off-by: Keir Fraser <keir.fraser@citrix.com> --- a/xen/arch/x86/microcode.c +++ b/xen/arch/x86/microcode.c @@ -66,12 +66,10 @@ static void microcode_fini_cpu(int cpu) int microcode_resume_cpu(int cpu) { - int err = 0; + int err; struct ucode_cpu_info *uci = &per_cpu(ucode_cpu_info, cpu); struct cpu_signature nsig; - gdprintk(XENLOG_INFO, "microcode: CPU%d resumed\n", cpu); - if ( !uci->mc.mc_valid ) return -EIO; ++++++ 21408-amd-erratum-383.patch ++++++ # HG changeset patch # User Keir Fraser <keir.fraser@citrix.com> # Date 1274178085 -3600 # Node ID f40acba36be886e4b4e87afeacf39688f316dfe4 # Parent e4028345ad48c442eb55b7bc08afdf1aede0aa2e svm: Fix for AMD erratum 383 on Family 10h CPUs This patches implements the workaround of AMD erratum 383 on family 10h CPUs. It destroys the guest VM when a MC error with a special pattern is detected. Without this patch, a guest VM failure can potentially crash Xen hypervisor and the whole system. The erratum will be published in next version of guide. Signed-off-by: Wei Huang <wei.huang2@amd.com> Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Christoph Egger <christoph.egger@amd.com> Index: xen-4.0.0-testing/xen/arch/x86/hvm/svm/svm.c =================================================================== --- xen-4.0.0-testing.orig/xen/arch/x86/hvm/svm/svm.c +++ xen-4.0.0-testing/xen/arch/x86/hvm/svm/svm.c @@ -72,6 +72,8 @@ static void *hsa[NR_CPUS] __read_mostly; /* vmcb used for extended host state */ static void *root_vmcb[NR_CPUS] __read_mostly; +static bool_t amd_erratum383_found __read_mostly; + static void inline __update_guest_eip( struct cpu_user_regs *regs, unsigned int inst_len) { @@ -822,6 +824,20 @@ static int svm_cpu_prepare(unsigned int return 0; } +static void svm_init_erratum_383(struct cpuinfo_x86 *c) +{ + uint64_t msr_content; + + /* only family 10h is affected */ + if ( c->x86 != 0x10 ) + return; + + rdmsrl(MSR_AMD64_DC_CFG, msr_content); + wrmsrl(MSR_AMD64_DC_CFG, msr_content | (1ULL << 47)); + + amd_erratum383_found = 1; +} + static int svm_cpu_up(struct cpuinfo_x86 *c) { u32 eax, edx, phys_hsa_lo, phys_hsa_hi; @@ -847,6 +863,9 @@ static int svm_cpu_up(struct cpuinfo_x86 phys_hsa_hi = (u32)(phys_hsa >> 32); wrmsr(MSR_K8_VM_HSAVE_PA, phys_hsa_lo, phys_hsa_hi); + /* check for erratum 383 */ + svm_init_erratum_383(c); + /* Initialize core's ASID handling. */ svm_asid_init(c); @@ -1244,6 +1263,47 @@ static void svm_vmexit_ud_intercept(stru } } +extern unsigned int nr_mce_banks; /* from mce.h */ + +static int svm_is_erratum_383(struct cpu_user_regs *regs) +{ + uint64_t msr_content; + uint32_t i; + struct vcpu *v = current; + + if ( !amd_erratum383_found ) + return 0; + + rdmsrl(MSR_IA32_MC0_STATUS, msr_content); + /* Bit 62 may or may not be set for this mce */ + msr_content &= ~(1ULL << 62); + + if ( msr_content != 0xb600000000010015ULL ) + return 0; + + /* Clear MCi_STATUS registers */ + for (i = 0; i < nr_mce_banks; i++) + wrmsrl(MSR_IA32_MCx_STATUS(i), 0ULL); + + rdmsrl(MSR_IA32_MCG_STATUS, msr_content); + wrmsrl(MSR_IA32_MCG_STATUS, msr_content & ~(1ULL << 2)); + + /* flush TLB */ + flush_tlb_mask(&v->domain->domain_dirty_cpumask); + + return 1; +} + +static void svm_vmexit_mce_intercept( + struct vcpu *v, struct cpu_user_regs *regs) +{ + if ( svm_is_erratum_383(regs) ) + { + gdprintk(XENLOG_ERR, "SVM hits AMD erratum 383\n"); + domain_crash(v->domain); + } +} + static void wbinvd_ipi(void *info) { wbinvd(); @@ -1432,6 +1492,7 @@ asmlinkage void svm_vmexit_handler(struc /* Asynchronous event, handled when we STGI'd after the VMEXIT. */ case VMEXIT_EXCEPTION_MC: HVMTRACE_0D(MCE); + svm_vmexit_mce_intercept(v, regs); break; case VMEXIT_VINTR: Index: xen-4.0.0-testing/xen/include/asm-x86/msr-index.h =================================================================== --- xen-4.0.0-testing.orig/xen/include/asm-x86/msr-index.h +++ xen-4.0.0-testing/xen/include/asm-x86/msr-index.h @@ -146,6 +146,11 @@ #define MSR_IA32_MC8_ADDR 0x00000422 #define MSR_IA32_MC8_MISC 0x00000423 +#define MSR_IA32_MCx_CTL(x) (MSR_IA32_MC0_CTL + 4*(x)) +#define MSR_IA32_MCx_STATUS(x) (MSR_IA32_MC0_STATUS + 4*(x)) +#define MSR_IA32_MCx_ADDR(x) (MSR_IA32_MC0_ADDR + 4*(x)) +#define MSR_IA32_MCx_MISC(x) (MSR_IA32_MC0_MISC + 4*(x)) + #define MSR_P6_PERFCTR0 0x000000c1 #define MSR_P6_PERFCTR1 0x000000c2 #define MSR_P6_EVNTSEL0 0x00000186 @@ -224,6 +229,7 @@ /* AMD64 MSRs */ #define MSR_AMD64_NB_CFG 0xc001001f +#define MSR_AMD64_DC_CFG 0xc0011022 #define AMD64_NB_CFG_CF8_EXT_ENABLE_BIT 46 /* AMD Family10h machine check MSRs */ ++++++ 21421-vts-ats-enabling.patch ++++++ References: bnc#573413 # HG changeset patch # User Keir Fraser <keir.fraser@citrix.com> # Date 1274253726 -3600 # Node ID f67ae6f9d4107f091d062fc1501a96f873671d10 # Parent eb4ecc037b7a53647f0ac89c7067d11ea622ab00 VT-d: Fix ATS enabling for device assignment Currently, Xen only enables ATS in Xen booting. When an ATS capable device is assigned to guest, ATS is actually not enabled because FLR before assignment causes it to be disabled. Thus ATS cannot be used in guest. This patch enables ATS in domain_context_mapping. This ensures ATS is enabled in assignment because FLR is earlier than domain_context_mapping call. Therefore ATS can be used in guest. This patch also implements disable_ats_device to disable ATS when the device is deassigned from a domain. Signed-off-by: Weidong Han <weidong.han@intel.com> --- a/xen/drivers/passthrough/vtd/ia64/ats.c +++ b/xen/drivers/passthrough/vtd/ia64/ats.c @@ -47,6 +47,11 @@ int enable_ats_device(int seg, int bus, return 0; } +int disable_ats_device(int seg, int bus, int devfn) +{ + return 0; +} + int dev_invalidate_iotlb(struct iommu *iommu, u16 did, u64 addr, unsigned int size_order, u64 type) { --- a/xen/drivers/passthrough/vtd/iommu.c +++ b/xen/drivers/passthrough/vtd/iommu.c @@ -1324,6 +1324,9 @@ static int domain_context_mapping(struct dprintk(VTDPREFIX, "d%d:PCIe: map bdf = %x:%x.%x\n", domain->domain_id, bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); ret = domain_context_mapping_one(domain, drhd->iommu, bus, devfn); + if ( !ret && ats_device(0, bus, devfn) ) + enable_ats_device(0, bus, devfn); + break; case DEV_TYPE_PCI: @@ -1453,6 +1456,9 @@ static int domain_context_unmap(struct d dprintk(VTDPREFIX, "d%d:PCIe: unmap bdf = %x:%x.%x\n", domain->domain_id, bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); ret = domain_context_unmap_one(domain, iommu, bus, devfn); + if ( !ret && ats_device(0, bus, devfn) ) + disable_ats_device(0, bus, devfn); + break; case DEV_TYPE_PCI: @@ -1771,8 +1777,6 @@ static void setup_dom0_devices(struct do list_add(&pdev->domain_list, &d->arch.pdev_list); domain_context_mapping(d, pdev->bus, pdev->devfn); pci_enable_acs(pdev); - if ( ats_device(0, pdev->bus, pdev->devfn) ) - enable_ats_device(0, pdev->bus, pdev->devfn); } } spin_unlock(&pcidevs_lock); --- a/xen/drivers/passthrough/vtd/x86/ats.c +++ b/xen/drivers/passthrough/vtd/x86/ats.c @@ -92,6 +92,9 @@ int ats_device(int seg, int bus, int dev pdev = pci_get_pdev(bus, devfn); drhd = acpi_find_matched_drhd_unit(pdev); + if ( !drhd ) + return 0; + if ( !ecap_queued_inval(drhd->iommu->ecap) || !ecap_dev_iotlb(drhd->iommu->ecap) ) return 0; @@ -144,6 +147,9 @@ int enable_ats_device(int seg, int bus, value = pci_conf_read16(bus, PCI_SLOT(devfn), PCI_FUNC(devfn), pos + ATS_REG_CTL); + if ( value & ATS_ENABLE ) + return 0; + value |= ATS_ENABLE; pci_conf_write16(bus, PCI_SLOT(devfn), PCI_FUNC(devfn), pos + ATS_REG_CTL, value); @@ -153,10 +159,50 @@ int enable_ats_device(int seg, int bus, pdev->devfn = devfn; pdev->ats_queue_depth = queue_depth; list_add(&(pdev->list), &ats_devices); + if ( iommu_verbose ) + dprintk(XENLOG_INFO VTDPREFIX, "%x:%x.%x: ATS is enabled\n", + bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); return pos; } +int disable_ats_device(int seg, int bus, int devfn) +{ + struct list_head *pdev_list, *tmp; + struct pci_ats_dev *pdev; + u32 value; + int pos; + + pos = pci_find_ext_capability(seg, bus, devfn, PCI_EXT_CAP_ID_ATS); + if ( !pos ) + return 0; + + /* BUGBUG: add back seg when multi-seg platform support is enabled */ + value = pci_conf_read16(bus, PCI_SLOT(devfn), + PCI_FUNC(devfn), pos + ATS_REG_CTL); + value &= ~ATS_ENABLE; + pci_conf_write16(bus, PCI_SLOT(devfn), PCI_FUNC(devfn), + pos + ATS_REG_CTL, value); + + list_for_each_safe( pdev_list, tmp, &ats_devices ) + { + pdev = list_entry(pdev_list, struct pci_ats_dev, list); + if ( pdev->bus == bus && pdev->devfn == devfn ) + { + list_del(&pdev->list); + xfree(pdev); + break; + } + } + + if ( iommu_verbose ) + dprintk(XENLOG_INFO VTDPREFIX, "%x:%x.%x: ATS is disabled\n", + bus, PCI_SLOT(devfn), PCI_FUNC(devfn)); + + return 0; +} + + static int device_in_domain(struct iommu *iommu, struct pci_ats_dev *pdev, u16 did) { struct root_entry *root_entry = NULL; ++++++ 21435-vmx-retain-global-controls.patch ++++++ # HG changeset patch # User Keir Fraser <keir.fraser@citrix.com> # Date 1274298365 -3600 # Node ID c414129c8e129422d03898ec5822f56b2d2da4f8 # Parent fe18437da295d0fdad2d852a603144eec62d29cd vmx: Do not modify global vmx_vm{entry,exit}_control fields in init_vmcs_config() The function shoudl only have single-domain effect. Signed-off-by: Keir Fraser <keir.fraser@citrix.com> --- a/xen/arch/x86/hvm/vmx/vmcs.c +++ b/xen/arch/x86/hvm/vmx/vmcs.c @@ -558,6 +558,8 @@ static int construct_vmcs(struct vcpu *v struct domain *d = v->domain; uint16_t sysenter_cs; unsigned long sysenter_eip; + u32 vmexit_ctl = vmx_vmexit_control; + u32 vmentry_ctl = vmx_vmentry_control; vmx_vmcs_enter(v); @@ -584,17 +586,17 @@ static int construct_vmcs(struct vcpu *v v->arch.hvm_vmx.secondary_exec_control &= ~(SECONDARY_EXEC_ENABLE_EPT | SECONDARY_EXEC_UNRESTRICTED_GUEST); - vmx_vmexit_control &= ~(VM_EXIT_SAVE_GUEST_PAT | - VM_EXIT_LOAD_HOST_PAT); - vmx_vmentry_control &= ~VM_ENTRY_LOAD_GUEST_PAT; + vmexit_ctl &= ~(VM_EXIT_SAVE_GUEST_PAT | + VM_EXIT_LOAD_HOST_PAT); + vmentry_ctl &= ~VM_ENTRY_LOAD_GUEST_PAT; } /* Do not enable Monitor Trap Flag unless start single step debug */ v->arch.hvm_vmx.exec_control &= ~CPU_BASED_MONITOR_TRAP_FLAG; __vmwrite(CPU_BASED_VM_EXEC_CONTROL, v->arch.hvm_vmx.exec_control); - __vmwrite(VM_EXIT_CONTROLS, vmx_vmexit_control); - __vmwrite(VM_ENTRY_CONTROLS, vmx_vmentry_control); + __vmwrite(VM_EXIT_CONTROLS, vmexit_ctl); + __vmwrite(VM_ENTRY_CONTROLS, vmentry_ctl); if ( cpu_has_vmx_ple ) { ++++++ 21459-block-script.patch ++++++ # HG changeset patch # User Jim Fehlig <jfehlig@novell.com> # Date 1274807602 21600 # Node ID 14d040342c6618365750b2c3b96ca01ff4a5e5dd # Parent 93410e5e4ad8799932ad31820d0d82c74d1f63a2 Allow space in vbd path name c/s 20393 breaks existing domain configuration that contains spaces in the vbd path name. Fixed by this trivial patch which provides missing quotes. Signed-off-by: Jim Fehlig <jfehlig@novell.com> diff -r 93410e5e4ad8 -r 14d040342c66 tools/hotplug/Linux/block --- a/tools/hotplug/Linux/block Sat May 22 06:36:41 2010 +0100 +++ b/tools/hotplug/Linux/block Tue May 25 11:13:22 2010 -0600 @@ -272,8 +272,8 @@ if [ "x$mode" != 'x!' ] then - inode=$(stat -c '%i' $file) - dev=$(stat -c '%D' $file) + inode=$(stat -c '%i' "$file") + dev=$(stat -c '%D' "$file") if [ -z "$inode" ] || [ -z "$dev" ] then fatal "Unable to lookup $file: dev: $dev inode: $inode" ++++++ 21460-xend-timeoffset.patch ++++++ # HG changeset patch # User Jim Fehlig <jfehlig@novell.com> # Date 1274822804 21600 # Node ID a83e97657ba0f3ea232fe0dfb9edccf8e28aa982 # Parent 14d040342c6618365750b2c3b96ca01ff4a5e5dd tools: Fix time offset when localtime=0 localtime can be stored in vm config as a string, resulting in incorrect calculation of rtc_timeoffset. Cast localtime to int to ensure rtc_timeoffset is calculated properly. Signed-off-by: Jim Fehlig <jfehlig@novell.com> diff -r 14d040342c66 -r a83e97657ba0 tools/python/xen/xend/image.py --- a/tools/python/xen/xend/image.py Tue May 25 11:13:22 2010 -0600 +++ b/tools/python/xen/xend/image.py Tue May 25 15:26:44 2010 -0600 @@ -129,7 +129,7 @@ self.dmargs = self.parseDeviceModelArgs(vmConfig) self.pid = None rtc_timeoffset = int(vmConfig['platform'].get('rtc_timeoffset', 0)) - if vmConfig['platform'].get('localtime', 0): + if int(vmConfig['platform'].get('localtime', 0)): if time.localtime(time.time())[8]: rtc_timeoffset -= time.altzone else: ++++++ capslock_enable.patch ++++++ diff -r c2f19aa8a584 tools/ioemu-remote/vnc.c --- a/tools/ioemu-remote/vnc.c Wed Apr 07 11:13:49 2010 +0800 +++ b/tools/ioemu-remote/vnc.c Mon May 24 13:56:22 2010 +0800 @@ -1326,6 +1326,11 @@ } break; case 0x3a: /* CapsLock */ + if(!down){ + vs->modifiers_state[keycode] ^= 1; + kbd_put_keycode(keycode | 0x80); + } + return; case 0x45: /* NumLock */ if (down) { kbd_put_keycode(keycode & 0x7f); ++++++ cpupools-core.patch ++++++ --- /var/tmp/diff_new_pack.Ru4MDQ/_old 2010-06-04 15:04:37.000000000 +0200 +++ /var/tmp/diff_new_pack.Ru4MDQ/_new 2010-06-04 15:04:37.000000000 +0200 @@ -1,7 +1,9 @@ From: Juergen Gross <juergen.gross@ts.fujitsu.com> ---- a/xen/arch/x86/acpi/power.c -+++ b/xen/arch/x86/acpi/power.c +Index: xen-4.0.0-testing/xen/arch/x86/acpi/power.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/acpi/power.c ++++ xen-4.0.0-testing/xen/arch/x86/acpi/power.c @@ -234,7 +234,7 @@ static int enter_state(u32 state) return error; } @@ -20,8 +22,10 @@ } static int acpi_get_wake_status(void) ---- a/xen/arch/x86/domain.c -+++ b/xen/arch/x86/domain.c +Index: xen-4.0.0-testing/xen/arch/x86/domain.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/domain.c ++++ xen-4.0.0-testing/xen/arch/x86/domain.c @@ -1518,42 +1518,52 @@ void sync_vcpu_execstate(struct vcpu *v) } @@ -135,8 +139,10 @@ return 0; } ---- a/xen/arch/x86/domain_build.c -+++ b/xen/arch/x86/domain_build.c +Index: xen-4.0.0-testing/xen/arch/x86/domain_build.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/domain_build.c ++++ xen-4.0.0-testing/xen/arch/x86/domain_build.c @@ -9,6 +9,7 @@ #include <xen/lib.h> #include <xen/ctype.h> @@ -177,9 +183,11 @@ /* Set up CR3 value for write_ptbase */ if ( paging_mode_enabled(d) ) ---- a/xen/arch/x86/microcode.c -+++ b/xen/arch/x86/microcode.c -@@ -116,7 +116,7 @@ static int microcode_update_cpu(const vo +Index: xen-4.0.0-testing/xen/arch/x86/microcode.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/microcode.c ++++ xen-4.0.0-testing/xen/arch/x86/microcode.c +@@ -114,7 +114,7 @@ static int microcode_update_cpu(const vo return err; } @@ -188,7 +196,7 @@ { struct microcode_info *info = _info; int error; -@@ -129,7 +129,8 @@ static long do_microcode_update(void *_i +@@ -127,7 +127,8 @@ static long do_microcode_update(void *_i info->cpu = next_cpu(info->cpu, cpu_online_map); if ( info->cpu < NR_CPUS ) @@ -198,7 +206,7 @@ error = info->error; xfree(info); -@@ -162,5 +163,6 @@ int microcode_update(XEN_GUEST_HANDLE(co +@@ -160,5 +161,6 @@ int microcode_update(XEN_GUEST_HANDLE(co info->error = 0; info->cpu = first_cpu(cpu_online_map); @@ -206,8 +214,10 @@ + return continue_hypercall_on_cpu(info->cpu, NULL, + do_microcode_update, info); } ---- a/xen/arch/x86/mm.c -+++ b/xen/arch/x86/mm.c +Index: xen-4.0.0-testing/xen/arch/x86/mm.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/mm.c ++++ xen-4.0.0-testing/xen/arch/x86/mm.c @@ -242,7 +242,7 @@ void __init arch_init_memory(void) * Any Xen-heap pages that we will allow to be mapped will have * their domain field set to dom_xen. @@ -234,8 +244,10 @@ BUG_ON(dom_cow == NULL); /* First 1MB of RAM is historically marked as I/O. */ ---- a/xen/arch/x86/platform_hypercall.c -+++ b/xen/arch/x86/platform_hypercall.c +Index: xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/platform_hypercall.c ++++ xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c @@ -19,6 +19,7 @@ #include <xen/iocap.h> #include <xen/guest_access.h> @@ -295,8 +307,10 @@ break; } break; ---- a/xen/arch/x86/setup.c -+++ b/xen/arch/x86/setup.c +Index: xen-4.0.0-testing/xen/arch/x86/setup.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/setup.c ++++ xen-4.0.0-testing/xen/arch/x86/setup.c @@ -2,6 +2,7 @@ #include <xen/init.h> #include <xen/lib.h> @@ -329,8 +343,10 @@ if ( (dom0 == NULL) || (alloc_dom0_vcpu0() == NULL) ) panic("Error creating domain 0\n"); ---- a/xen/arch/x86/smpboot.c -+++ b/xen/arch/x86/smpboot.c +Index: xen-4.0.0-testing/xen/arch/x86/smpboot.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/smpboot.c ++++ xen-4.0.0-testing/xen/arch/x86/smpboot.c @@ -39,6 +39,7 @@ #include <xen/mm.h> #include <xen/domain.h> @@ -452,8 +468,10 @@ cpufreq_add_cpu(cpu); return 0; } ---- a/xen/arch/x86/sysctl.c -+++ b/xen/arch/x86/sysctl.c +Index: xen-4.0.0-testing/xen/arch/x86/sysctl.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/arch/x86/sysctl.c ++++ xen-4.0.0-testing/xen/arch/x86/sysctl.c @@ -29,7 +29,7 @@ #define get_xen_guest_handle(val, hnd) do { val = (hnd).p; } while (0) @@ -472,8 +490,10 @@ break; case XEN_SYSCTL_CPU_HOTPLUG_STATUS: ret = 0; ---- a/xen/common/Makefile -+++ b/xen/common/Makefile +Index: xen-4.0.0-testing/xen/common/Makefile +=================================================================== +--- xen-4.0.0-testing.orig/xen/common/Makefile ++++ xen-4.0.0-testing/xen/common/Makefile @@ -1,5 +1,6 @@ obj-y += bitmap.o obj-y += cpu.o @@ -481,8 +501,10 @@ obj-y += domctl.o obj-y += domain.o obj-y += event_channel.o +Index: xen-4.0.0-testing/xen/common/cpupool.c +=================================================================== --- /dev/null -+++ b/xen/common/cpupool.c ++++ xen-4.0.0-testing/xen/common/cpupool.c @@ -0,0 +1,585 @@ +/****************************************************************************** + * cpupool.c @@ -1069,8 +1091,10 @@ + * indent-tabs-mode: nil + * End: + */ ---- a/xen/common/domain.c -+++ b/xen/common/domain.c +Index: xen-4.0.0-testing/xen/common/domain.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/common/domain.c ++++ xen-4.0.0-testing/xen/common/domain.c @@ -209,7 +209,7 @@ static void __init parse_extra_guest_irq custom_param("extra_guest_irqs", parse_extra_guest_irqs); @@ -1099,8 +1123,10 @@ sched_destroy_domain(d); /* Free page used by xen oprofile buffer. */ ---- a/xen/common/domctl.c -+++ b/xen/common/domctl.c +Index: xen-4.0.0-testing/xen/common/domctl.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/common/domctl.c ++++ xen-4.0.0-testing/xen/common/domctl.c @@ -11,6 +11,7 @@ #include <xen/lib.h> #include <xen/mm.h> @@ -1176,8 +1202,10 @@ if ( alloc_vcpu(d, i, cpu) == NULL ) goto maxvcpu_out; ---- a/xen/common/sched_credit.c -+++ b/xen/common/sched_credit.c +Index: xen-4.0.0-testing/xen/common/sched_credit.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/common/sched_credit.c ++++ xen-4.0.0-testing/xen/common/sched_credit.c @@ -70,11 +70,15 @@ /* * Useful macros @@ -2066,7 +2094,7 @@ .destroy_vcpu = csched_vcpu_destroy, .sleep = csched_vcpu_sleep, -@@ -1411,6 +1540,13 @@ const struct scheduler sched_credit_def +@@ -1411,6 +1540,13 @@ const struct scheduler sched_credit_def .dump_cpu_state = csched_dump_pcpu, .dump_settings = csched_dump, .init = csched_init, @@ -2080,8 +2108,10 @@ .tick_suspend = csched_tick_suspend, .tick_resume = csched_tick_resume, ---- a/xen/common/sched_sedf.c -+++ b/xen/common/sched_sedf.c +Index: xen-4.0.0-testing/xen/common/sched_sedf.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/common/sched_sedf.c ++++ xen-4.0.0-testing/xen/common/sched_sedf.c @@ -21,6 +21,9 @@ printk(_a ); \ } while ( 0 ) @@ -2347,7 +2377,7 @@ .name = "Simple EDF Scheduler", .opt_name = "sedf", .sched_id = XEN_SCHEDULER_SEDF, -@@ -1464,9 +1509,15 @@ const struct scheduler sched_sedf_def = +@@ -1464,9 +1509,15 @@ const struct scheduler sched_sedf_def = .init_domain = sedf_init_domain, .destroy_domain = sedf_destroy_domain, @@ -2364,8 +2394,10 @@ .do_schedule = sedf_do_schedule, .pick_cpu = sedf_pick_cpu, .dump_cpu_state = sedf_dump_cpu_state, ---- a/xen/common/schedule.c -+++ b/xen/common/schedule.c +Index: xen-4.0.0-testing/xen/common/schedule.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/common/schedule.c ++++ xen-4.0.0-testing/xen/common/schedule.c @@ -53,10 +53,11 @@ static void poll_timer_fn(void *data); /* This is global for now so that private implementations can reach it */ @@ -2884,8 +2916,10 @@ } #ifdef CONFIG_COMPAT ---- a/xen/common/softirq.c -+++ b/xen/common/softirq.c +Index: xen-4.0.0-testing/xen/common/softirq.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/common/softirq.c ++++ xen-4.0.0-testing/xen/common/softirq.c @@ -88,9 +88,11 @@ void raise_softirq(unsigned int nr) } @@ -2979,8 +3013,10 @@ open_softirq(TASKLET_SOFTIRQ, tasklet_action); } ---- a/xen/common/sysctl.c -+++ b/xen/common/sysctl.c +Index: xen-4.0.0-testing/xen/common/sysctl.c +=================================================================== +--- xen-4.0.0-testing.orig/xen/common/sysctl.c ++++ xen-4.0.0-testing/xen/common/sysctl.c @@ -314,6 +314,14 @@ long do_sysctl(XEN_GUEST_HANDLE(xen_sysc } break; @@ -2996,8 +3032,10 @@ default: ret = arch_do_sysctl(op, u_sysctl); break; ---- a/xen/include/asm-x86/domain.h -+++ b/xen/include/asm-x86/domain.h +Index: xen-4.0.0-testing/xen/include/asm-x86/domain.h +=================================================================== +--- xen-4.0.0-testing.orig/xen/include/asm-x86/domain.h ++++ xen-4.0.0-testing/xen/include/asm-x86/domain.h @@ -451,7 +451,8 @@ struct arch_vcpu #define hvm_svm hvm_vcpu.u.svm @@ -3008,8 +3046,10 @@ void vcpu_show_execution_state(struct vcpu *); void vcpu_show_registers(const struct vcpu *); ---- a/xen/include/asm-x86/smp.h -+++ b/xen/include/asm-x86/smp.h +Index: xen-4.0.0-testing/xen/include/asm-x86/smp.h +=================================================================== +--- xen-4.0.0-testing.orig/xen/include/asm-x86/smp.h ++++ xen-4.0.0-testing/xen/include/asm-x86/smp.h @@ -56,7 +56,6 @@ extern u32 cpu_2_logical_apicid[]; #define CPU_ONLINE 0x0002 /* CPU is up */ #define CPU_DEAD 0x0004 /* CPU is dead */ @@ -3018,8 +3058,10 @@ #define cpu_is_offline(cpu) unlikely(!cpu_online(cpu)) extern int cpu_down(unsigned int cpu); ---- a/xen/include/public/domctl.h -+++ b/xen/include/public/domctl.h +Index: xen-4.0.0-testing/xen/include/public/domctl.h +=================================================================== +--- xen-4.0.0-testing.orig/xen/include/public/domctl.h ++++ xen-4.0.0-testing/xen/include/public/domctl.h @@ -60,10 +60,10 @@ struct xen_domctl_createdomain { /* Should domain memory integrity be verifed by tboot during Sx? */ #define _XEN_DOMCTL_CDF_s3_integrity 2 @@ -3048,8 +3090,10 @@ struct xen_domctl { uint32_t cmd; #define XEN_DOMCTL_createdomain 1 ---- a/xen/include/public/sysctl.h -+++ b/xen/include/public/sysctl.h +Index: xen-4.0.0-testing/xen/include/public/sysctl.h +=================================================================== +--- xen-4.0.0-testing.orig/xen/include/public/sysctl.h ++++ xen-4.0.0-testing/xen/include/public/sysctl.h @@ -491,6 +491,28 @@ struct xen_sysctl_lockprof_op { typedef struct xen_sysctl_lockprof_op xen_sysctl_lockprof_op_t; DEFINE_XEN_GUEST_HANDLE(xen_sysctl_lockprof_op_t); @@ -3087,8 +3131,10 @@ uint8_t pad[128]; } u; }; ---- a/xen/include/xen/sched-if.h -+++ b/xen/include/xen/sched-if.h +Index: xen-4.0.0-testing/xen/include/xen/sched-if.h +=================================================================== +--- xen-4.0.0-testing.orig/xen/include/xen/sched-if.h ++++ xen-4.0.0-testing/xen/include/xen/sched-if.h @@ -10,16 +10,29 @@ #include <xen/percpu.h> @@ -3183,8 +3229,10 @@ +struct scheduler *scheduler_get_by_id(unsigned int id); + #endif /* __XEN_SCHED_IF_H__ */ ---- a/xen/include/xen/sched.h -+++ b/xen/include/xen/sched.h +Index: xen-4.0.0-testing/xen/include/xen/sched.h +=================================================================== +--- xen-4.0.0-testing.orig/xen/include/xen/sched.h ++++ xen-4.0.0-testing/xen/include/xen/sched.h @@ -9,6 +9,7 @@ #include <xen/shared.h> #include <public/xen.h> @@ -3193,7 +3241,7 @@ #include <public/vcpu.h> #include <public/xsm/acm.h> #include <xen/time.h> -@@ -132,8 +133,6 @@ struct vcpu +@@ -132,8 +133,6 @@ struct vcpu bool_t defer_shutdown; /* VCPU is paused following shutdown request (d->is_shutting_down)? */ bool_t paused_for_shutdown; @@ -3265,8 +3313,10 @@ #endif /* __SCHED_H__ */ /* ---- a/xen/include/xen/softirq.h -+++ b/xen/include/xen/softirq.h +Index: xen-4.0.0-testing/xen/include/xen/softirq.h +=================================================================== +--- xen-4.0.0-testing.orig/xen/include/xen/softirq.h ++++ xen-4.0.0-testing/xen/include/xen/softirq.h @@ -58,6 +58,7 @@ struct tasklet struct tasklet name = { LIST_HEAD_INIT(name.list), 0, 0, 0, func, data } ++++++ xend-sysconfig.patch ++++++ Index: xen-4.0.0-testing/tools/hotplug/Linux/init.d/sysconfig.xend =================================================================== --- xen-4.0.0-testing.orig/tools/hotplug/Linux/init.d/sysconfig.xend +++ xen-4.0.0-testing/tools/hotplug/Linux/init.d/sysconfig.xend @@ -1,11 +1,27 @@ +## Path: System/Virtualization +## Type: string(none,guest,hv,all) +## Default: "" +# # Log xenconsoled messages (cf xm dmesg) -#XENCONSOLED_TRACE=[none|guest|hv|all] +XENCONSOLED_TRACE="" +## Path: System/Virtualization +## Type: string(yes,on,1) +## Default: "" +# # Log xenstored messages -#XENSTORED_TRACE=[yes|on|1] +XENSTORED_TRACE="" +## Path: System/Virtualization +## Type: string("/var/lib/xenstored") +## Default: "" +# # Running xenstored on XENSTORED_ROOTDIR -#XENSTORED_ROOTDIR=/var/lib/xenstored +XENSTORED_ROOTDIR="" +## Path: System/Virtualization +## Type: string(yes,on,1) +## Default: "" +# # Running xenbackendd in debug mode -#XENBACKENDD_DEBUG=[yes|on|1] +XENBACKENDD_DEBUG="" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org