From 8be17801c57cec5d8c839bdf0aca73986e76e47a76f3388bb05cff9b3d1ff9fd Mon Sep 17 00:00:00 2001 From: Charles Arnold Date: Fri, 2 Apr 2010 15:57:59 +0000 Subject: [PATCH] - Update to changeset 21087 Xen 4.0.0 RC9. - Update to changeset 21075 Xen 4.0.0 RC8. - bnc#584210 - xm usb-hc-destroy does not remove entry from xend del_usb_xend_entry.patch - Update to changeset 21057 Xen 4.0.0 RC7. OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=37 --- 32on64-extra-mem.patch | 2 +- cdrom-removable.patch | 30 +++++++----- cpu-pools-python.patch | 10 ++-- cpupools-core.patch | 87 +++++++++++++++-------------------- del_usb_xend_entry.patch | 22 +++++++++ dump-exec-state.patch | 55 +++++++++++++++++----- hv_tools.patch | 4 +- snapshot-ioemu-save.patch | 6 +-- x86-cpufreq-report.patch | 2 +- xen-4.0.0-testing-src.tar.bz2 | 4 +- xen-config.diff | 4 +- xen.changes | 22 +++++++++ xen.spec | 26 +++++------ xend-domain-lock.patch | 4 +- 14 files changed, 174 insertions(+), 104 deletions(-) create mode 100644 del_usb_xend_entry.patch diff --git a/32on64-extra-mem.patch b/32on64-extra-mem.patch index 263cf4a..d01b7ef 100644 --- a/32on64-extra-mem.patch +++ b/32on64-extra-mem.patch @@ -2,7 +2,7 @@ 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 -@@ -2902,7 +2902,7 @@ class XendDomainInfo: +@@ -2909,7 +2909,7 @@ class XendDomainInfo: self.guest_bitsize = self.image.getBitSize() # Make sure there's enough RAM available for the domain diff --git a/cdrom-removable.patch b/cdrom-removable.patch index 1175f1c..6f07661 100644 --- a/cdrom-removable.patch +++ b/cdrom-removable.patch @@ -1,5 +1,7 @@ +Index: xen-4.0.0-testing/tools/python/xen/xend/server/HalDaemon.py +=================================================================== --- /dev/null -+++ b/tools/python/xen/xend/server/HalDaemon.py ++++ xen-4.0.0-testing/tools/python/xen/xend/server/HalDaemon.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python +# -*- mode: python; -*- @@ -244,8 +246,10 @@ + print 'Falling off end' + + +Index: xen-4.0.0-testing/tools/python/xen/xend/server/Hald.py +=================================================================== --- /dev/null -+++ b/tools/python/xen/xend/server/Hald.py ++++ xen-4.0.0-testing/tools/python/xen/xend/server/Hald.py @@ -0,0 +1,125 @@ +#============================================================================ +# This library is free software; you can redistribute it and/or @@ -372,8 +376,10 @@ + watcher.run() + time.sleep(10) + watcher.shutdown() ---- a/tools/python/xen/xend/server/SrvServer.py -+++ b/tools/python/xen/xend/server/SrvServer.py +Index: xen-4.0.0-testing/tools/python/xen/xend/server/SrvServer.py +=================================================================== +--- xen-4.0.0-testing.orig/tools/python/xen/xend/server/SrvServer.py ++++ xen-4.0.0-testing/tools/python/xen/xend/server/SrvServer.py @@ -56,6 +56,7 @@ from xen.web.SrvDir import SrvDir from SrvRoot import SrvRoot @@ -391,8 +397,10 @@ def create(): root = SrvDir() ---- a/tools/ioemu-remote/xenstore.c -+++ b/tools/ioemu-remote/xenstore.c +Index: xen-4.0.0-testing/tools/ioemu-remote/xenstore.c +=================================================================== +--- xen-4.0.0-testing.orig/tools/ioemu-remote/xenstore.c ++++ xen-4.0.0-testing/tools/ioemu-remote/xenstore.c @@ -18,6 +18,7 @@ #include "exec-all.h" #include "sysemu.h" @@ -479,10 +487,10 @@ xenstore_watch_callbacks[i].opaque); + if (!strcmp(vec[XS_WATCH_TOKEN], "media-present")) { -+ xenstore_process_media_change_event(vec); -+ goto out; ++ xenstore_process_media_change_event(vec); ++ goto out; + } + - if (strncmp(vec[XS_WATCH_TOKEN], "hd", 2) || - strlen(vec[XS_WATCH_TOKEN]) != 3) - goto out; + hd_index = drive_name_to_index(vec[XS_WATCH_TOKEN]); + if (hd_index == -1) { + fprintf(stderr,"medium change watch on `%s' -" diff --git a/cpu-pools-python.patch b/cpu-pools-python.patch index eaddd66..a8849c9 100644 --- a/cpu-pools-python.patch +++ b/cpu-pools-python.patch @@ -36,7 +36,7 @@ Index: xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c return pyxc_error_to_exception(); if ( target ) -@@ -332,7 +334,7 @@ static PyObject *pyxc_domain_getinfo(XcO +@@ -329,7 +331,7 @@ static PyObject *pyxc_domain_getinfo(XcO { info_dict = Py_BuildValue( "{s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i,s:i" @@ -45,7 +45,7 @@ Index: xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c "domid", (int)info[i].domid, "online_vcpus", info[i].nr_online_vcpus, "max_vcpu_id", info[i].max_vcpu_id, -@@ -347,7 +349,8 @@ static PyObject *pyxc_domain_getinfo(XcO +@@ -344,7 +346,8 @@ static PyObject *pyxc_domain_getinfo(XcO "cpu_time", (long long)info[i].cpu_time, "maxmem_kb", (long long)info[i].max_memkb, "ssidref", (int)info[i].ssidref, @@ -55,7 +55,7 @@ Index: xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c pyhandle = PyList_New(sizeof(xen_domain_handle_t)); if ( (pyhandle == NULL) || (info_dict == NULL) ) { -@@ -1755,6 +1758,179 @@ static PyObject *pyxc_dom_set_memshr(XcO +@@ -1751,6 +1754,179 @@ static PyObject *pyxc_dom_set_memshr(XcO return zero; } @@ -235,7 +235,7 @@ Index: xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c static PyMethodDef pyxc_methods[] = { { "handle", -@@ -1870,7 +2046,8 @@ static PyMethodDef pyxc_methods[] = { +@@ -1866,7 +2042,8 @@ static PyMethodDef pyxc_methods[] = { " maxmem_kb [int]: Maximum memory limit, in kilobytes\n" " cpu_time [long]: CPU time consumed, in nanoseconds\n" " shutdown_reason [int]: Numeric code from guest OS, explaining " @@ -245,7 +245,7 @@ Index: xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c { "vcpu_getinfo", (PyCFunction)pyxc_vcpu_getinfo, -@@ -2268,6 +2445,66 @@ static PyMethodDef pyxc_methods[] = { +@@ -2264,6 +2441,66 @@ static PyMethodDef pyxc_methods[] = { " enable [int,0|1]: Disable or enable?\n" "Returns: [int] 0 on success; -1 on error.\n" }, diff --git a/cpupools-core.patch b/cpupools-core.patch index 7da779c..4374bb9 100644 --- a/cpupools-core.patch +++ b/cpupools-core.patch @@ -4,7 +4,7 @@ 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 -@@ -231,7 +231,7 @@ static int enter_state(u32 state) +@@ -234,7 +234,7 @@ static int enter_state(u32 state) return error; } @@ -13,7 +13,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/acpi/power.c { struct acpi_sleep_info *sinfo = (struct acpi_sleep_info *)data; return enter_state(sinfo->sleep_state); -@@ -262,7 +262,7 @@ int acpi_enter_sleep(struct xenpf_enter_ +@@ -265,7 +265,7 @@ int acpi_enter_sleep(struct xenpf_enter_ acpi_sinfo.pm1b_cnt_val = sleep->pm1b_cnt_val; acpi_sinfo.sleep_state = sleep->sleep_state; @@ -271,7 +271,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c { int cpu = (unsigned long)data; return cpu_down(cpu); -@@ -310,7 +311,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe +@@ -314,7 +315,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe if ( op->u.change_freq.flags || !cpu_online(op->u.change_freq.cpu) ) break; per_cpu(freq, op->u.change_freq.cpu) = op->u.change_freq.freq; @@ -280,16 +280,16 @@ Index: xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c cpu_frequency_change_helper, NULL); break; -@@ -398,7 +399,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe - +@@ -403,7 +404,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe g_info = &op->u.pcpu_info; -- spin_lock(&cpu_add_remove_lock); -+ spin_lock(&cpupool_lock); - - if ( (g_info->xen_cpuid >= NR_CPUS) || - (g_info->xen_cpuid < 0) || -@@ -417,7 +418,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe + /* spin_trylock() avoids deadlock with stop_machine_run(). */ +- if ( !spin_trylock(&cpu_add_remove_lock) ) ++ if ( !spin_trylock(&cpupool_lock) ) + { + ret = -EBUSY; + break; +@@ -426,7 +427,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe g_info->max_present = last_cpu(cpu_present_map); @@ -298,7 +298,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c ret = copy_to_guest(u_xenpf_op, op, 1) ? -EFAULT : 0; } -@@ -458,7 +459,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe +@@ -467,7 +468,7 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe break; } ret = continue_hypercall_on_cpu( @@ -372,47 +372,35 @@ Index: xen-4.0.0-testing/xen/arch/x86/smpboot.c */ int alloc_cpu_id(void) { -@@ -985,10 +985,10 @@ static int __devinit do_boot_cpu(int api - cpucount--; - - /* Mark the CPU as non-present */ -- spin_lock(&cpu_add_remove_lock); -+ spin_lock(&cpupool_lock); - x86_cpu_to_apicid[cpu] = BAD_APICID; - cpu_clear(cpu, cpu_present_map); -- spin_unlock(&cpu_add_remove_lock); -+ spin_unlock(&cpupool_lock); - } else { - } - -@@ -1304,12 +1304,14 @@ int __cpu_disable(void) - +@@ -1303,10 +1303,11 @@ int __cpu_disable(void) remove_siblinginfo(cpu); -+ cpu_clear(cpu, cpupool0->cpu_valid); - cpu_clear(cpu, cpu_online_map); - fixup_irqs(); /* It's now safe to remove this processor from the online map */ + cpu_clear(cpu, cpupool0->cpu_valid); cpu_clear(cpu, cpu_online_map); + fixup_irqs(); - cpu_disable_scheduler(); + cpu_disable_scheduler(cpu, 0); return 0; } -@@ -1342,8 +1344,8 @@ int cpu_down(unsigned int cpu) - { +@@ -1340,12 +1341,12 @@ int cpu_down(unsigned int cpu) int err = 0; -- spin_lock(&cpu_add_remove_lock); + /* spin_trylock() avoids deadlock with stop_machine_run(). */ +- if (!spin_trylock(&cpu_add_remove_lock)) { ++ if (!spin_trylock(&cpupool_lock)) { + err = -EBUSY; + goto out; + } + - if (num_online_cpus() == 1) { -+ spin_lock(&cpupool_lock); + if ((!cpu_isset(cpu, cpupool0->cpu_valid)) || (cpus_weight(cpupool0->cpu_valid) == 1)) { err = -EBUSY; goto out; } -@@ -1376,7 +1378,7 @@ int cpu_down(unsigned int cpu) +@@ -1378,7 +1379,7 @@ int cpu_down(unsigned int cpu) out: if (!err) send_guest_global_virq(dom0, VIRQ_PCPU_STATE); @@ -421,16 +409,16 @@ Index: xen-4.0.0-testing/xen/arch/x86/smpboot.c return err; } -@@ -1384,7 +1386,7 @@ int cpu_up(unsigned int cpu) - { +@@ -1387,7 +1388,7 @@ int cpu_up(unsigned int cpu) int err = 0; -- spin_lock(&cpu_add_remove_lock); -+ spin_lock(&cpupool_lock); + /* spin_trylock() avoids deadlock with stop_machine_run(). */ +- if (!spin_trylock(&cpu_add_remove_lock)) ++ if (!spin_trylock(&cpupool_lock)) + return -EBUSY; + if (cpu_online(cpu)) { - printk("Bring up a online cpu. Bogus!\n"); - err = -EBUSY; -@@ -1400,7 +1402,7 @@ int cpu_up(unsigned int cpu) +@@ -1405,7 +1406,7 @@ int cpu_up(unsigned int cpu) out: if (!err) send_guest_global_virq(dom0, VIRQ_PCPU_STATE); @@ -439,12 +427,13 @@ Index: xen-4.0.0-testing/xen/arch/x86/smpboot.c return err; } -@@ -1481,13 +1483,13 @@ int cpu_add(uint32_t apic_id, uint32_t a - if ( physid_isset(apic_id, phys_cpu_present_map) ) +@@ -1491,14 +1492,14 @@ int cpu_add(uint32_t apic_id, uint32_t a return -EEXIST; -- spin_lock(&cpu_add_remove_lock); -+ spin_lock(&cpupool_lock); + /* spin_trylock() avoids deadlock with stop_machine_run(). */ +- if (!spin_trylock(&cpu_add_remove_lock)) ++ if (!spin_trylock(&cpupool_lock)) + return -EBUSY; cpu = mp_register_lapic(apic_id, 1); @@ -455,7 +444,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/smpboot.c return cpu; } -@@ -1504,7 +1506,7 @@ int cpu_add(uint32_t apic_id, uint32_t a +@@ -1515,7 +1516,7 @@ int cpu_add(uint32_t apic_id, uint32_t a "Setup node failed for pxm %x\n", pxm); x86_acpiid_to_apicid[acpi_id] = 0xff; mp_unregister_lapic(apic_id, cpu); @@ -464,7 +453,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/smpboot.c return node; } apicid_to_node[apic_id] = node; -@@ -1512,7 +1514,7 @@ int cpu_add(uint32_t apic_id, uint32_t a +@@ -1523,7 +1524,7 @@ int cpu_add(uint32_t apic_id, uint32_t a srat_detect_node(cpu); numa_add_cpu(cpu); @@ -473,7 +462,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/smpboot.c dprintk(XENLOG_INFO, "Add CPU %x with index %x\n", apic_id, cpu); return cpu; } -@@ -1556,6 +1558,7 @@ int __devinit __cpu_up(unsigned int cpu) +@@ -1567,6 +1568,7 @@ int __devinit __cpu_up(unsigned int cpu) process_pending_softirqs(); } diff --git a/del_usb_xend_entry.patch b/del_usb_xend_entry.patch new file mode 100644 index 0000000..a77da85 --- /dev/null +++ b/del_usb_xend_entry.patch @@ -0,0 +1,22 @@ +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 +@@ -1306,8 +1306,15 @@ class XendDomainInfo: + frontpath = self.getDeviceController(deviceClass).frontendPath(dev) + backpath = xstransact.Read(frontpath, "backend") + thread.start_new_thread(self.getDeviceController(deviceClass).finishDeviceCleanup, (backpath, path)) +- +- rc = self.getDeviceController(deviceClass).destroyDevice(devid, force) ++ if deviceClass =='vusb': ++ dev = self.getDeviceController(deviceClass).convertToDeviceNumber(devid) ++ state = self.getDeviceController(deviceClass).readBackend(dev, 'state') ++ if state == '1': ++ rc = self.getDeviceController(deviceClass).destroyDevice(devid, True) ++ else: ++ rc = self.getDeviceController(deviceClass).destroyDevice(devid, force) ++ else: ++ rc = self.getDeviceController(deviceClass).destroyDevice(devid, force) + if not force and rm_cfg: + # The backend path, other than the device itself, + # has to be passed because its accompanied frontend diff --git a/dump-exec-state.patch b/dump-exec-state.patch index fcb24fe..2e587e7 100644 --- a/dump-exec-state.patch +++ b/dump-exec-state.patch @@ -15,7 +15,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/smp.c =================================================================== --- xen-4.0.0-testing.orig/xen/arch/x86/smp.c +++ xen-4.0.0-testing/xen/arch/x86/smp.c -@@ -394,7 +394,7 @@ static void __smp_call_function_interrup +@@ -395,7 +395,7 @@ static void __smp_call_function_interrup if ( call_data.wait ) { @@ -24,7 +24,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/smp.c mb(); atomic_inc(&call_data.finished); } -@@ -402,7 +402,7 @@ static void __smp_call_function_interrup +@@ -403,7 +403,7 @@ static void __smp_call_function_interrup { mb(); atomic_inc(&call_data.started); @@ -37,11 +37,13 @@ Index: xen-4.0.0-testing/xen/common/keyhandler.c =================================================================== --- xen-4.0.0-testing.orig/xen/common/keyhandler.c +++ xen-4.0.0-testing/xen/common/keyhandler.c -@@ -71,14 +71,25 @@ static struct keyhandler show_handlers_k +@@ -71,20 +71,45 @@ static struct keyhandler show_handlers_k .desc = "show this message" }; -static void __dump_execstate(void *unused) ++static cpumask_t dump_execstate_mask; ++ +static void __dump_execstate(void *_regs) { - dump_execution_state(); @@ -63,26 +65,55 @@ Index: xen-4.0.0-testing/xen/common/keyhandler.c + smp_processor_id(), current->domain->domain_id, + current->vcpu_id); show_execution_state(guest_cpu_user_regs()); ++ } ++ ++ cpu = cycle_cpu(cpu, dump_execstate_mask); ++ if ( cpu < NR_CPUS ) ++ { ++ cpu_clear(cpu, dump_execstate_mask); ++ on_selected_cpus(cpumask_of(cpu), __dump_execstate, NULL, 0); ++ } ++ else ++ { ++ printk("\n"); ++ ++ console_end_sync(); ++ watchdog_enable(); + } } static void dump_registers(unsigned char key, struct cpu_user_regs *regs) -@@ -92,14 +103,12 @@ static void dump_registers(unsigned char + { +- unsigned int cpu; +- + /* We want to get everything out that we possibly can. */ + watchdog_disable(); + console_start_sync(); +@@ -92,21 +117,9 @@ static void dump_registers(unsigned char printk("'%c' pressed -> dumping registers\n", key); /* Get local execution state out immediately, in case we get stuck. */ - printk("\n*** Dumping CPU%d host state: ***\n", smp_processor_id()); - __dump_execstate(NULL); -+ __dump_execstate(regs); - - for_each_online_cpu ( cpu ) - { - if ( cpu == smp_processor_id() ) - continue; +- +- for_each_online_cpu ( cpu ) +- { +- if ( cpu == smp_processor_id() ) +- continue; - printk("\n*** Dumping CPU%d host state: ***\n", cpu); - on_selected_cpus(cpumask_of(cpu), __dump_execstate, NULL, 1); - } +- on_selected_cpus(cpumask_of(cpu), __dump_execstate, NULL, 1); +- } +- +- printk("\n"); +- +- console_end_sync(); +- watchdog_enable(); ++ cpus_andnot(dump_execstate_mask, cpu_online_map, ++ cpumask_of_cpu(smp_processor_id())); ++ __dump_execstate(regs); + } + static struct keyhandler dump_registers_keyhandler = { Index: xen-4.0.0-testing/xen/include/asm-ia64/linux-xen/asm/ptrace.h =================================================================== --- xen-4.0.0-testing.orig/xen/include/asm-ia64/linux-xen/asm/ptrace.h diff --git a/hv_tools.patch b/hv_tools.patch index f7c8dc7..392a299 100644 --- a/hv_tools.patch +++ b/hv_tools.patch @@ -2,7 +2,7 @@ Index: xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c =================================================================== --- xen-4.0.0-testing.orig/tools/python/xen/lowlevel/xc/xc.c +++ xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c -@@ -950,16 +950,16 @@ static PyObject *pyxc_hvm_build(XcObject +@@ -946,16 +946,16 @@ static PyObject *pyxc_hvm_build(XcObject #endif int i; char *image; @@ -24,7 +24,7 @@ Index: xen-4.0.0-testing/tools/python/xen/lowlevel/xc/xc.c return NULL; memset(vcpu_avail, 0, sizeof(vcpu_avail)); -@@ -1011,6 +1011,7 @@ static PyObject *pyxc_hvm_build(XcObject +@@ -1007,6 +1007,7 @@ static PyObject *pyxc_hvm_build(XcObject va_hvm->checksum -= sum; munmap(va_map, XC_PAGE_SIZE); #endif diff --git a/snapshot-ioemu-save.patch b/snapshot-ioemu-save.patch index bd85c0c..27aa63d 100644 --- a/snapshot-ioemu-save.patch +++ b/snapshot-ioemu-save.patch @@ -101,7 +101,7 @@ Index: xen-4.0.0-testing/tools/ioemu-remote/i386-dm/helper2.c =================================================================== --- xen-4.0.0-testing.orig/tools/ioemu-remote/i386-dm/helper2.c +++ xen-4.0.0-testing/tools/ioemu-remote/i386-dm/helper2.c -@@ -109,6 +109,9 @@ int send_vcpu = 0; +@@ -112,6 +112,9 @@ int send_vcpu = 0; //the evtchn port for polling the notification, evtchn_port_t *ioreq_local_port; @@ -111,7 +111,7 @@ Index: xen-4.0.0-testing/tools/ioemu-remote/i386-dm/helper2.c CPUX86State *cpu_x86_init(const char *cpu_model) { CPUX86State *env; -@@ -553,6 +556,7 @@ int main_loop(void) +@@ -556,6 +559,7 @@ int main_loop(void) int evtchn_fd = xce_handle == -1 ? -1 : xc_evtchn_fd(xce_handle); char *qemu_file; fd_set fds; @@ -119,7 +119,7 @@ Index: xen-4.0.0-testing/tools/ioemu-remote/i386-dm/helper2.c main_loop_prepare(); -@@ -580,11 +584,43 @@ int main_loop(void) +@@ -583,11 +587,43 @@ int main_loop(void) main_loop_wait(1); /* For the select() on events */ /* Save the device state */ diff --git a/x86-cpufreq-report.patch b/x86-cpufreq-report.patch index 934d83f..5afbf29 100644 --- a/x86-cpufreq-report.patch +++ b/x86-cpufreq-report.patch @@ -19,7 +19,7 @@ Index: xen-4.0.0-testing/xen/arch/x86/platform_hypercall.c struct xen_platform_op curop, *op = &curop; if ( !IS_PRIV(current->domain) ) -@@ -475,6 +476,24 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe +@@ -484,6 +485,24 @@ ret_t do_platform_op(XEN_GUEST_HANDLE(xe op->u.mem_add.epfn, op->u.mem_add.pxm); break; diff --git a/xen-4.0.0-testing-src.tar.bz2 b/xen-4.0.0-testing-src.tar.bz2 index 29ea1ea..a963c6b 100644 --- a/xen-4.0.0-testing-src.tar.bz2 +++ b/xen-4.0.0-testing-src.tar.bz2 @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ecdd97da2f63df66d5e965f8ba11481422332cd01f70521d67bcf62d207f5d61 -size 23203635 +oid sha256:8696f3d4de6d66bce133e78e990c409053ba057fe13c708e763d32b3b4deb2cc +size 23204532 diff --git a/xen-config.diff b/xen-config.diff index 97414b8..987d887 100644 --- a/xen-config.diff +++ b/xen-config.diff @@ -9,8 +9,8 @@ Index: xen-4.0.0-testing/Config.mk -CONFIG_QEMU ?= $(QEMU_REMOTE) +CONFIG_QEMU ?= ioemu-remote - QEMU_TAG := xen-4.0.0-rc6 - #QEMU_TAG ?= e5d14857cd67490bf956d97c8888c0be95ed3f78 + QEMU_TAG := xen-4.0.0-rc9 + #QEMU_TAG ?= f1d909f0f854194f5a40d850886d1413fb8b63c2 @@ -167,9 +167,9 @@ CONFIG_OCAML_XENSTORED ?= n # Optional components XENSTAT_XENTOP ?= y diff --git a/xen.changes b/xen.changes index 2fc4d6b..9670eea 100644 --- a/xen.changes +++ b/xen.changes @@ -1,8 +1,30 @@ +------------------------------------------------------------------- +Tue Mar 31 08:09:49 MDT 2010 - carnold@novell.com + +- Update to changeset 21087 Xen 4.0.0 RC9. + +------------------------------------------------------------------- +Fri Mar 26 07:57:33 MDT 2010 - carnold@novell.com + +- Update to changeset 21075 Xen 4.0.0 RC8. + +------------------------------------------------------------------- +Thu Mar 25 15:59:28 CST 2010 - jsong@novell.com + +- bnc#584210 - xm usb-hc-destroy does not remove entry from xend + del_usb_xend_entry.patch + +------------------------------------------------------------------- +Tue Mar 23 09:55:52 MDT 2010 - carnold@novell.com + +- Update to changeset 21057 Xen 4.0.0 RC7. + ------------------------------------------------------------------- Wed Mar 17 16:42:20 CST 2010 - jsong@novell.com -Fix bnc#466899 - numa enabled xen fails to start/create vms adjust_vcpuaffinity_more_cpu.patch + ------------------------------------------------------------------- Tue Mar 9 16:28:59 MST 2010 - carnold@novell.com diff --git a/xen.spec b/xen.spec index 7a8e131..18f4d79 100644 --- a/xen.spec +++ b/xen.spec @@ -1,5 +1,5 @@ # -# spec file for package xen (Version 4.0.0_21046_01) +# spec file for package xen (Version 4.0.0_21087_01) # # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -22,7 +22,7 @@ Name: xen ExclusiveArch: %ix86 x86_64 %define xvers 4.0 %define xvermaj 4 -%define changeset 21046 +%define changeset 21087 %define xen_build_dir xen-4.0.0-testing %define with_kmp 0 BuildRequires: LibVNCServer-devel SDL-devel acpica automake bin86 curl-devel dev86 graphviz latex2html libjpeg-devel libxml2-devel ncurses-devel openssl openssl-devel pciutils-devel python-devel texinfo transfig @@ -33,11 +33,16 @@ BuildRequires: te_ams te_latex tetex %endif %ifarch x86_64 BuildRequires: glibc-32bit glibc-devel-32bit +%define max_cpus 256 +%define pae_enabled n +%else +%define max_cpus 32 +%define pae_enabled y %endif %if %{?with_kmp}0 BuildRequires: kernel-source kernel-syms module-init-tools xorg-x11 %endif -Version: 4.0.0_21046_01 +Version: 4.0.0_21087_01 Release: 1 License: GPLv2 Group: System/Kernel @@ -156,6 +161,7 @@ Patch425: ioemu-bdrv-open-CACHE_WB.patch Patch426: xen-ioemu-hvm-pv-support.diff Patch427: qemu-dm-segfault.patch Patch428: hibernate.patch +Patch429: del_usb_xend_entry.patch # Jim's domain lock patch Patch450: xend-domain-lock.patch # Hypervisor and PV driver Patches @@ -592,6 +598,7 @@ Authors: %patch426 -p1 %patch427 -p1 %patch428 -p1 +%patch429 -p1 %patch450 -p1 %patch500 -p1 %patch501 -p1 @@ -668,21 +675,12 @@ install_xen() ln -s xen${ext}-%{version}-%{release}.gz $RPM_BUILD_ROOT/boot/xen${ext}.gz ln -sf xen-syms${ext}-%{version}-%{release} $RPM_BUILD_ROOT/boot/xen-syms${ext} } -%ifarch %ix86 -make -C xen install pae=y debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT +make -C xen install max_phys_cpus=%{max_cpus} pae=%{pae_enabled} debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT install_xen dbg make -C xen clean -make -C xen install pae=y debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT +make -C xen install max_phys_cpus=%{max_cpus} pae=%{pae_enabled} debug=n crash_debug=n DESTDIR=$RPM_BUILD_ROOT install_xen make -C xen clean -%else -make -C xen install max_phys_cpus=256 pae=n debug=y crash_debug=y DESTDIR=$RPM_BUILD_ROOT -install_xen dbg -make -C xen clean -make -C xen install max_phys_cpus=256 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 tools/include/xen-foreign diff --git a/xend-domain-lock.patch b/xend-domain-lock.patch index 4f99899..e1aae2e 100644 --- a/xend-domain-lock.patch +++ b/xend-domain-lock.patch @@ -91,7 +91,7 @@ Index: xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py XendTask.log_progress(0, 30, self._constructDomain) XendTask.log_progress(31, 60, self._initDomain) -@@ -2972,6 +2974,11 @@ class XendDomainInfo: +@@ -2979,6 +2981,11 @@ class XendDomainInfo: self._stateSet(DOM_STATE_HALTED) self.domid = None # Do not push into _stateSet()! @@ -103,7 +103,7 @@ Index: xen-4.0.0-testing/tools/python/xen/xend/XendDomainInfo.py finally: self.refresh_shutdown_lock.release() -@@ -4478,6 +4485,74 @@ class XendDomainInfo: +@@ -4485,6 +4492,74 @@ class XendDomainInfo: def has_device(self, dev_class, dev_uuid): return (dev_uuid in self.info['%s_refs' % dev_class.lower()])