Hello community, here is the log from the commit of package xen for openSUSE:Factory checked in at 2013-07-04 09:14:03 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xen (Old) and /work/SRC/openSUSE:Factory/.xen.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xen" Changes: -------- --- /work/SRC/openSUSE:Factory/xen/xen.changes 2013-06-20 17:06:25.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xen.new/xen.changes 2013-07-04 09:14:04.000000000 +0200 @@ -1,0 +2,15 @@ +Thu Jun 27 16:57:08 MDT 2013 - carn...@suse.com + +- Update to Xen 4.3.0-rc6 + +------------------------------------------------------------------- +Wed Jun 19 14:34:20 MDT 2013 - carn...@suse.com + +- Update to Xen 4.3.0-rc5 + +------------------------------------------------------------------- +Wed Jun 14 11:06:23 MDT 2013 - carn...@suse.com + +- Update to Xen 4.3.0-rc4 + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xen.spec ++++++ --- /var/tmp/diff_new_pack.Z362Hq/_old 2013-07-04 09:14:07.000000000 +0200 +++ /var/tmp/diff_new_pack.Z362Hq/_new 2013-07-04 09:14:07.000000000 +0200 @@ -20,7 +20,7 @@ ExclusiveArch: %ix86 x86_64 %define xvers 4.3 %define xvermaj 4 -%define changeset 27093 +%define changeset 27190 %define xen_build_dir xen-4.3.0-testing %define with_kmp 1 %define with_stubdom 1 @@ -120,7 +120,7 @@ BuildRequires: lndir %endif %endif -Version: 4.3.0_03 +Version: 4.3.0_06 Release: 0 PreReq: %insserv_prereq %fillup_prereq Summary: Xen Virtualization: Hypervisor (aka VMM aka Microkernel) @@ -887,6 +887,7 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/xen rm -rf $RPM_BUILD_ROOT/%{_libdir}/python* rm -rf $RPM_BUILD_ROOT/usr/sbin +rm -f $RPM_BUILD_ROOT/usr/bin/xencov_split rm -rf $RPM_BUILD_ROOT/etc/bash_completion.d rm -rf $RPM_BUILD_ROOT/etc/init.d rm -rf $RPM_BUILD_ROOT/etc/logrotate.d @@ -945,6 +946,7 @@ /usr/bin/pygrub /usr/bin/tapdisk-ioemu /usr/bin/remus +/usr/bin/xencov_split /usr/sbin/blktapctrl /usr/sbin/flask-* /usr/sbin/tap* ++++++ blktap-pv-cdrom.patch ++++++ --- /var/tmp/diff_new_pack.Z362Hq/_old 2013-07-04 09:14:07.000000000 +0200 +++ /var/tmp/diff_new_pack.Z362Hq/_new 2013-07-04 09:14:07.000000000 +0200 @@ -696,7 +696,7 @@ =================================================================== --- xen-4.3.0-testing.orig/xen/include/public/io/blkif.h +++ xen-4.3.0-testing/xen/include/public/io/blkif.h -@@ -439,7 +439,7 @@ +@@ -444,7 +444,7 @@ * Used in SLES sources for device specific command packet * contained within the request. Reserved for that purpose. */ ++++++ disable-wget-check.patch ++++++ --- /var/tmp/diff_new_pack.Z362Hq/_old 2013-07-04 09:14:07.000000000 +0200 +++ /var/tmp/diff_new_pack.Z362Hq/_new 2013-07-04 09:14:07.000000000 +0200 @@ -219,32 +219,17 @@ =================================================================== --- xen-4.3.0-testing.orig/stubdom/configure +++ xen-4.3.0-testing/stubdom/configure -@@ -593,7 +593,6 @@ CPPFLAGS - LDFLAGS +@@ -594,8 +594,6 @@ LDFLAGS CFLAGS CC + FETCHER +-FTP -WGET CMAKE extfiles debug -@@ -657,7 +656,6 @@ enable_extfiles - host_alias - target_alias - CMAKE --WGET - CC - CFLAGS - LDFLAGS -@@ -1299,7 +1297,6 @@ Optional Features: +@@ -2165,104 +2163,104 @@ extfiles=$ax_cv_extfiles - Some influential environment variables: - CMAKE Path to the cmake program -- WGET Path to wget program - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a -@@ -3079,50 +3076,50 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR - test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' # Extract the first word of "wget", so it can be a program name with args. -set dummy wget; ac_word=$2 @@ -287,9 +272,63 @@ -fi - - --if test x"${WGET}" = x"no" --then -- as_fn_error $? "Unable to find wget, please install wget" "$LINENO" 5 +-if test x"$WGET" != x"no"; then : +- +- FETCHER="$WGET -c -O" +- +-else +- +- # Extract the first word of "ftp", so it can be a program name with args. +-set dummy ftp; ac_word=$2 +-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +-$as_echo_n "checking for $ac_word... " >&6; } +-if test "${ac_cv_path_FTP+set}" = set; then : +- $as_echo_n "(cached) " >&6 +-else +- case $FTP in +- [\\/]* | ?:[\\/]*) +- ac_cv_path_FTP="$FTP" # Let the user override the test with a path. +- ;; +- *) +- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +-for as_dir in $PATH +-do +- IFS=$as_save_IFS +- test -z "$as_dir" && as_dir=. +- for ac_exec_ext in '' $ac_executable_extensions; do +- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then +- ac_cv_path_FTP="$as_dir/$ac_word$ac_exec_ext" +- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 +- break 2 +- fi +-done +- done +-IFS=$as_save_IFS +- +- test -z "$ac_cv_path_FTP" && ac_cv_path_FTP="no" +- ;; +-esac +-fi +-FTP=$ac_cv_path_FTP +-if test -n "$FTP"; then +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FTP" >&5 +-$as_echo "$FTP" >&6; } +-else +- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +-$as_echo "no" >&6; } +-fi +- +- +- if test x"$FTP" != x"no"; then : +- +- FETCHER="$FTP -o" +- +-else +- +- as_fn_error $? "cannot find wget or ftp" "$LINENO" 5 +- +-fi +- -fi +#set dummy wget; ac_word=$2 +#{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 @@ -331,10 +370,64 @@ +#fi +# +# -+#if test x"${WGET}" = x"no" -+#then -+# as_fn_error $? "Unable to find wget, please install wget" "$LINENO" 5 ++#if test x"$WGET" != x"no"; then : ++# ++# FETCHER="$WGET -c -O" ++# ++#else ++# ++# # Extract the first word of "ftp", so it can be a program name with args. ++#set dummy ftp; ac_word=$2 ++#{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++#$as_echo_n "checking for $ac_word... " >&6; } ++#if test "${ac_cv_path_FTP+set}" = set; then : ++# $as_echo_n "(cached) " >&6 ++#else ++# case $FTP in ++# [\\/]* | ?:[\\/]*) ++# ac_cv_path_FTP="$FTP" # Let the user override the test with a path. ++# ;; ++# *) ++# as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++#for as_dir in $PATH ++#do ++# IFS=$as_save_IFS ++# test -z "$as_dir" && as_dir=. ++# for ac_exec_ext in '' $ac_executable_extensions; do ++# if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ++# ac_cv_path_FTP="$as_dir/$ac_word$ac_exec_ext" ++# $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++# break 2 ++# fi ++#done ++# done ++#IFS=$as_save_IFS ++# ++# test -z "$ac_cv_path_FTP" && ac_cv_path_FTP="no" ++# ;; ++#esac +#fi ++#FTP=$ac_cv_path_FTP ++#if test -n "$FTP"; then ++# { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FTP" >&5 ++#$as_echo "$FTP" >&6; } ++#else ++# { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++#$as_echo "no" >&6; } ++#fi ++# ++# ++# if test x"$FTP" != x"no"; then : ++# ++# FETCHER="$FTP -o" ++# ++#else ++# ++# as_fn_error $? "cannot find wget or ftp" "$LINENO" 5 ++# ++#fi ++# ++#fi + - # Checks for programs that depend on a feature ++++++ qemu-xen-dir-remote.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/docs/specs/acpi_cpu_hotplug.txt new/tools/qemu-xen-dir-remote/docs/specs/acpi_cpu_hotplug.txt --- old/tools/qemu-xen-dir-remote/docs/specs/acpi_cpu_hotplug.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/tools/qemu-xen-dir-remote/docs/specs/acpi_cpu_hotplug.txt 2013-06-28 00:04:09.000000000 +0200 @@ -0,0 +1,22 @@ +QEMU<->ACPI BIOS CPU hotplug interface +-------------------------------------- + +QEMU supports CPU hotplug via ACPI. This document +describes the interface between QEMU and the ACPI BIOS. + +ACPI GPE block (IO ports 0xafe0-0xafe3, byte access): +----------------------------------------- + +Generic ACPI GPE block. Bit 2 (GPE.2) used to notify CPU +hot-add/remove event to ACPI BIOS, via SCI interrupt. + +CPU present bitmap (IO port 0xaf00-0xae1f, 1-byte access): +--------------------------------------------------------------- +One bit per CPU. Bit position reflects corresponding CPU APIC ID. +Read-only. + +CPU hot-add/remove notification: +----------------------------------------------------- +QEMU sets/clears corresponding CPU bit on hot-add/remove event. +CPU present map read by ACPI BIOS GPE.2 handler to notify OS of CPU +hot-(un)plug events. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/exec.c new/tools/qemu-xen-dir-remote/exec.c --- old/tools/qemu-xen-dir-remote/exec.c 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/exec.c 2013-06-28 00:04:09.000000000 +0200 @@ -692,6 +692,16 @@ return env; } +void qemu_for_each_cpu(void (*func)(CPUState *cpu, void *data), void *data) +{ + CPUArchState *env = first_cpu; + + while (env) { + func(ENV_GET_CPU(env), data); + env = env->next_cpu; + } +} + void cpu_exec_init(CPUArchState *env) { #ifndef CONFIG_USER_ONLY diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/hw/acpi_piix4.c new/tools/qemu-xen-dir-remote/hw/acpi_piix4.c --- old/tools/qemu-xen-dir-remote/hw/acpi_piix4.c 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/hw/acpi_piix4.c 2013-06-28 00:04:09.000000000 +0200 @@ -28,6 +28,7 @@ #include "range.h" #include "ioport.h" #include "fw_cfg.h" +#include "qemu/cpu.h" //#define DEBUG @@ -46,16 +47,26 @@ #define PCI_EJ_BASE 0xae08 #define PCI_RMV_BASE 0xae0c +#define PIIX4_PROC_BASE 0xaf00 +#define PIIX4_PROC_LEN 32 + #define PIIX4_PCI_HOTPLUG_STATUS 2 +#define PIIX4_CPU_HOTPLUG_STATUS 4 struct pci_status { uint32_t up; /* deprecated, maintained for migration compatibility */ uint32_t down; }; +typedef struct CPUStatus { + uint8_t sts[PIIX4_PROC_LEN]; +} CPUStatus; + typedef struct PIIX4PMState { PCIDevice dev; IORange ioport; + + MemoryRegion io_cpu; ACPIREGS ar; APMState apm; @@ -77,6 +88,8 @@ uint8_t disable_s3; uint8_t disable_s4; uint8_t s4_val; + + CPUStatus gpe_cpu; } PIIX4PMState; static void piix4_acpi_system_hot_add_init(PCIBus *bus, PIIX4PMState *s); @@ -94,8 +107,8 @@ ACPI_BITMASK_POWER_BUTTON_ENABLE | ACPI_BITMASK_GLOBAL_LOCK_ENABLE | ACPI_BITMASK_TIMER_ENABLE)) != 0) || - (((s->ar.gpe.sts[0] & s->ar.gpe.en[0]) - & PIIX4_PCI_HOTPLUG_STATUS) != 0); + (((s->ar.gpe.sts[0] & s->ar.gpe.en[0]) & + (PIIX4_PCI_HOTPLUG_STATUS | PIIX4_CPU_HOTPLUG_STATUS)) != 0); qemu_set_irq(s->irq, sci_level); /* schedule a timer interruption if needed */ @@ -602,6 +615,83 @@ return s->pci0_hotplug_enable; } +static uint64_t cpu_status_read(void *opaque, hwaddr addr, unsigned int size) +{ + PIIX4PMState *s = opaque; + CPUStatus *cpus = &s->gpe_cpu; + uint64_t val = cpus->sts[addr]; + + return val; +} + +static void cpu_status_write(void *opaque, hwaddr addr, uint64_t data, + unsigned int size) +{ + /* TODO: implement VCPU removal on guest signal that CPU can be removed */ +} + +static const MemoryRegionOps cpu_hotplug_ops = { + .read = cpu_status_read, + .write = cpu_status_write, + .endianness = DEVICE_LITTLE_ENDIAN, + .valid = { + .min_access_size = 1, + .max_access_size = 1, + }, +}; + +typedef enum { + PLUG, + UNPLUG, +} HotplugEventType; + +static void piix4_cpu_hotplug_req(PIIX4PMState *s, int64_t cpu_id, + HotplugEventType action) +{ + CPUStatus *g = &s->gpe_cpu; + ACPIGPE *gpe = &s->ar.gpe; + + assert(s != NULL); + + *gpe->sts = *gpe->sts | PIIX4_CPU_HOTPLUG_STATUS; + if (action == PLUG) { + g->sts[cpu_id / 8] |= (1 << (cpu_id % 8)); + } else { + g->sts[cpu_id / 8] &= ~(1 << (cpu_id % 8)); + } + pm_update_sci(s); +} + +static PIIX4PMState *piix4pm_state; +void piix4_cpu_hotplug_add(const int64_t cpu_id, Error **errp) +{ + CPUStatus *g = &piix4pm_state->gpe_cpu; + + if (cpu_id >= max_cpus) { + error_setg(errp, "Unable to add CPU: %" PRIi64 + ", max allowed: %d", cpu_id, max_cpus - 1); + return; + } + if (g->sts[cpu_id / 8] & (1 << (cpu_id % 8))) { + /* Already requested to be hotplug. */ + error_setg(errp, "Unable to add CPU: %" PRIi64 + ", it already exists", cpu_id); + return; + } + + piix4_cpu_hotplug_req(piix4pm_state, cpu_id, PLUG); +} + +static void piix4_init_cpu_status(CPUState *cpu, void *data) +{ + CPUStatus *g = (CPUStatus *)data; + CPUClass *k = CPU_GET_CLASS(cpu); + int64_t id = k->get_arch_id(cpu); + + g_assert((id / 8) < PIIX4_PROC_LEN); + g->sts[id / 8] |= (1 << (id % 8)); +} + static int piix4_device_hotplug(DeviceState *qdev, PCIDevice *dev, PCIHotplugState state); @@ -621,6 +711,13 @@ register_ioport_read(PCI_RMV_BASE, 4, 4, pcirmv_read, s); pci_bus_hotplug(bus, piix4_device_hotplug, &s->dev.qdev); + + qemu_for_each_cpu(piix4_init_cpu_status, &s->gpe_cpu); + memory_region_init_io(&s->io_cpu, &cpu_hotplug_ops, s, "apci-cpu-hotplug", + PIIX4_PROC_LEN); + memory_region_add_subregion(pci_address_space_io(&s->dev), + PIIX4_PROC_BASE, &s->io_cpu); + piix4pm_state = s; } static void enable_device(PIIX4PMState *s, int slot) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/hw/boards.h new/tools/qemu-xen-dir-remote/hw/boards.h --- old/tools/qemu-xen-dir-remote/hw/boards.h 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/hw/boards.h 2013-06-28 00:04:09.000000000 +0200 @@ -18,6 +18,8 @@ typedef void QEMUMachineResetFunc(void); +typedef void QEMUMachineHotAddCPUFunc(const int64_t id, Error **errp); + typedef struct QEMUMachine { const char *name; const char *alias; @@ -25,6 +27,7 @@ QEMUMachineInitFunc *init; QEMUMachineResetFunc *reset; int use_scsi; + QEMUMachineHotAddCPUFunc *hot_add_cpu; int max_cpus; unsigned int no_serial:1, no_parallel:1, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/hw/pc_piix.c new/tools/qemu-xen-dir-remote/hw/pc_piix.c --- old/tools/qemu-xen-dir-remote/hw/pc_piix.c 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/hw/pc_piix.c 2013-06-28 00:04:09.000000000 +0200 @@ -621,6 +621,7 @@ .init = pc_xen_hvm_init, .max_cpus = HVM_MAX_VCPUS, .default_machine_opts = "accel=xen", + .hot_add_cpu = piix4_cpu_hotplug_add, }; #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/hw/xen.h new/tools/qemu-xen-dir-remote/hw/xen.h --- old/tools/qemu-xen-dir-remote/hw/xen.h 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/hw/xen.h 2013-06-28 00:04:09.000000000 +0200 @@ -25,11 +25,7 @@ static inline int xen_enabled(void) { -#if defined(CONFIG_XEN_BACKEND) && !defined(CONFIG_NO_XEN) return xen_allowed; -#else - return 0; -#endif } int xen_pci_slot_get_pirq(PCIDevice *pci_dev, int irq_num); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/include/qemu/cpu.h new/tools/qemu-xen-dir-remote/include/qemu/cpu.h --- old/tools/qemu-xen-dir-remote/include/qemu/cpu.h 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/include/qemu/cpu.h 2013-06-28 00:04:09.000000000 +0200 @@ -41,6 +41,7 @@ /** * CPUClass: * @reset: Callback to reset the #CPUState to its initial state. + * @get_arch_id: Callback for getting architecture-dependent CPU ID. * * Represents a CPU family or model. */ @@ -50,6 +51,7 @@ /*< public >*/ void (*reset)(CPUState *cpu); + int64_t (*get_arch_id)(CPUState *cpu); } CPUClass; /** @@ -136,5 +138,14 @@ */ void run_on_cpu(CPUState *cpu, void (*func)(void *data), void *data); +/** + * qemu_for_each_cpu: + * @func: The function to be executed. + * @data: Data to pass to the function. + * + * Executes @func for each CPU. + */ +void qemu_for_each_cpu(void (*func)(CPUState *cpu, void *data), void *data); + #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/qapi-schema.json new/tools/qemu-xen-dir-remote/qapi-schema.json --- old/tools/qemu-xen-dir-remote/qapi-schema.json 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/qapi-schema.json 2013-06-28 00:04:09.000000000 +0200 @@ -1284,6 +1284,19 @@ { 'command': 'cpu', 'data': {'index': 'int'} } ## +# @cpu-add +# +# Adds CPU with specified ID +# +# @id: ID of CPU to be created, valid values [0..max_cpus) +# +# Returns: Nothing on success +# +# Since 1.5 +## +{ 'command': 'cpu-add', 'data': {'id': 'int'} } + +## # @memsave: # # Save a portion of guest memory to a file. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/qmp-commands.hx new/tools/qemu-xen-dir-remote/qmp-commands.hx --- old/tools/qemu-xen-dir-remote/qmp-commands.hx 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/qmp-commands.hx 2013-06-28 00:04:09.000000000 +0200 @@ -385,6 +385,29 @@ EQMP { + .name = "cpu-add", + .args_type = "id:i", + .mhandler.cmd_new = qmp_marshal_input_cpu_add, + }, + +SQMP +cpu-add +------- + +Adds virtual cpu + +Arguments: + +- "id": cpu id (json-int) + +Example: + +-> { "execute": "cpu-add", "arguments": { "id": 2 } } +<- { "return": {} } + +EQMP + + { .name = "memsave", .args_type = "val:l,size:i,filename:s,cpu:i?", .mhandler.cmd_new = qmp_marshal_input_memsave, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/qmp.c new/tools/qemu-xen-dir-remote/qmp.c --- old/tools/qemu-xen-dir-remote/qmp.c 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/qmp.c 2013-06-28 00:04:09.000000000 +0200 @@ -23,6 +23,7 @@ #include "hw/qdev.h" #include "blockdev.h" #include "qemu/qom-qobject.h" +#include "hw/boards.h" NameInfo *qmp_query_name(Error **errp) { @@ -107,6 +108,15 @@ /* Just do nothing */ } +void qmp_cpu_add(int64_t id, Error **errp) +{ + if (current_machine->hot_add_cpu) { + current_machine->hot_add_cpu(id, errp); + } else { + error_setg(errp, "Not supported"); + } +} + #ifndef CONFIG_VNC /* If VNC support is enabled, the "true" query-vnc command is defined in the VNC subsystem */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/qom/cpu.c new/tools/qemu-xen-dir-remote/qom/cpu.c --- old/tools/qemu-xen-dir-remote/qom/cpu.c 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/qom/cpu.c 2013-06-28 00:04:09.000000000 +0200 @@ -34,11 +34,19 @@ { } +static int64_t cpu_common_get_arch_id(CPUState *cpu) +{ + /* Not used in Xen, so no backport. + * There is a missing cpu_index field in CPUState. */ + abort(); +} + static void cpu_class_init(ObjectClass *klass, void *data) { CPUClass *k = CPU_CLASS(klass); k->reset = cpu_common_reset; + k->get_arch_id = cpu_common_get_arch_id; } static TypeInfo cpu_type_info = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/sysemu.h new/tools/qemu-xen-dir-remote/sysemu.h --- old/tools/qemu-xen-dir-remote/sysemu.h 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/sysemu.h 2013-06-28 00:04:09.000000000 +0200 @@ -183,4 +183,6 @@ bool usb_enabled(bool default_usb); +void piix4_cpu_hotplug_add(const int64_t cpu_id, Error **errp); + #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/target-i386/cpu.c new/tools/qemu-xen-dir-remote/target-i386/cpu.c --- old/tools/qemu-xen-dir-remote/target-i386/cpu.c 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/target-i386/cpu.c 2013-06-28 00:04:09.000000000 +0200 @@ -2111,6 +2111,14 @@ } } +static int64_t x86_cpu_get_arch_id(CPUState *cs) +{ + X86CPU *cpu = X86_CPU(cs); + CPUX86State *env = &cpu->env; + + return env->cpuid_apic_id; +} + static void x86_cpu_common_class_init(ObjectClass *oc, void *data) { X86CPUClass *xcc = X86_CPU_CLASS(oc); @@ -2118,6 +2126,8 @@ xcc->parent_reset = cc->reset; cc->reset = x86_cpu_reset; + + cc->get_arch_id = x86_cpu_get_arch_id; } static const TypeInfo x86_cpu_type_info = { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/vl.c new/tools/qemu-xen-dir-remote/vl.c --- old/tools/qemu-xen-dir-remote/vl.c 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/vl.c 2013-06-28 00:04:09.000000000 +0200 @@ -1763,7 +1763,7 @@ int64_t ti; #endif do { - nonblocking = !kvm_enabled() && last_io > 0; + nonblocking = !kvm_enabled() && !xen_enabled() && last_io > 0; #ifdef CONFIG_PROFILER ti = profile_getclock(); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-dir-remote/xen-all.c new/tools/qemu-xen-dir-remote/xen-all.c --- old/tools/qemu-xen-dir-remote/xen-all.c 2013-06-05 18:57:29.000000000 +0200 +++ new/tools/qemu-xen-dir-remote/xen-all.c 2013-06-28 00:04:09.000000000 +0200 @@ -632,13 +632,13 @@ } if (port != -1) { - for (i = 0; i < smp_cpus; i++) { + for (i = 0; i < max_cpus; i++) { if (state->ioreq_local_port[i] == port) { break; } } - if (i == smp_cpus) { + if (i == max_cpus) { hw_error("Fatal error while trying to get io event!\n"); } @@ -1123,10 +1123,10 @@ hw_error("map buffered IO page returned error %d", errno); } - state->ioreq_local_port = g_malloc0(smp_cpus * sizeof (evtchn_port_t)); + state->ioreq_local_port = g_malloc0(max_cpus * sizeof (evtchn_port_t)); /* FIXME: how about if we overflow the page here? */ - for (i = 0; i < smp_cpus; i++) { + for (i = 0; i < max_cpus; i++) { rc = xc_evtchn_bind_interdomain(state->xce_handle, xen_domid, xen_vcpu_eport(state->shared_page, i)); if (rc == -1) { ++++++ qemu-xen-traditional-dir-remote.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/qemu-xen-traditional-dir-remote/xen-hooks.mak new/tools/qemu-xen-traditional-dir-remote/xen-hooks.mak --- old/tools/qemu-xen-traditional-dir-remote/xen-hooks.mak 2013-06-05 18:57:57.000000000 +0200 +++ new/tools/qemu-xen-traditional-dir-remote/xen-hooks.mak 2013-06-28 00:25:12.000000000 +0200 @@ -83,4 +83,6 @@ docdir := $(subst qemu,xen/qemu,$(docdir)) mandir := $(subst share/man,share/xen/man,$(mandir)) +BUILD_DOCS= + configdir := $(XEN_SCRIPT_DIR) ++++++ seabios-dir-remote.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tools/firmware/seabios-dir-remote/src/smp.c new/tools/firmware/seabios-dir-remote/src/smp.c --- old/tools/firmware/seabios-dir-remote/src/smp.c 2013-06-05 18:58:02.000000000 +0200 +++ new/tools/firmware/seabios-dir-remote/src/smp.c 2013-06-28 00:26:32.000000000 +0200 @@ -9,6 +9,7 @@ #include "config.h" // CONFIG_* #include "cmos.h" // CMOS_BIOS_SMP_COUNT #include "paravirt.h" +#include "xen.h" #define APIC_ICR_LOW ((u8*)BUILD_APIC_ADDR + 0x300) #define APIC_SVR ((u8*)BUILD_APIC_ADDR + 0x0F0) @@ -84,6 +85,9 @@ void smp_probe(void) { + if (usingXen()) + return; + ASSERT32FLAT(); u32 eax, ebx, ecx, cpuid_features; cpuid(1, &eax, &ebx, &ecx, &cpuid_features); ++++++ xen-4.3.0-testing-src.tar.bz2 ++++++ ++++ 7953 lines of diff (skipped) ++++++ xen-xmexample.patch ++++++ --- /var/tmp/diff_new_pack.Z362Hq/_old 2013-07-04 09:14:18.000000000 +0200 +++ /var/tmp/diff_new_pack.Z362Hq/_new 2013-07-04 09:14:18.000000000 +0200 @@ -351,3 +351,12 @@ The basic structure of every B<xl> command is almost always: +@@ -910,8 +911,6 @@ The following is the effect of combining + + =item B<-p [pool] -d>... : Illegal + +-=item +- + =back + + =item B<sched-credit2> [I<OPTIONS>] ++++++ xend-traditional-qemu.patch ++++++ --- /var/tmp/diff_new_pack.Z362Hq/_old 2013-07-04 09:14:18.000000000 +0200 +++ /var/tmp/diff_new_pack.Z362Hq/_new 2013-07-04 09:14:18.000000000 +0200 @@ -560,7 +560,7 @@ =over 4 =item B<sched-credit> [ B<-d> I<domain-id> [ B<-w>[B<=>I<WEIGHT>] | B<-c>[B<=>I<CAP>] ] ] -@@ -788,8 +785,6 @@ The normal EDF scheduling usage in nanos +@@ -801,8 +798,6 @@ The normal EDF scheduling usage in nanos The normal EDF scheduling usage in nanoseconds @@ -569,7 +569,7 @@ =item I<latency-hint> Scaled period if domain is doing heavy I/O. -@@ -939,9 +934,6 @@ the default setting in xend-config.sxp f +@@ -952,9 +947,6 @@ the default setting in xend-config.sxp f Passes the specified IP Address to the adapter on creation. @@ -579,7 +579,7 @@ =item B<mac=>I<macaddr> The MAC address that the domain will see on its Ethernet device. If -@@ -967,9 +959,6 @@ Removes the network device from the doma +@@ -980,9 +972,6 @@ Removes the network device from the doma I<devid> is the virtual interface device number within the domain (i.e. the 3 in vif22.3). @@ -5159,7 +5159,7 @@ =================================================================== --- xen-4.3.0-testing.orig/tools/libxl/libxl_dm.c +++ xen-4.3.0-testing/tools/libxl/libxl_dm.c -@@ -222,6 +222,12 @@ static char ** libxl__build_device_model +@@ -220,6 +220,12 @@ static char ** libxl__build_device_model } } } @@ -5172,7 +5172,7 @@ if (b_info->u.hvm.soundhw) { flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL); } -@@ -520,6 +526,12 @@ static char ** libxl__build_device_model +@@ -507,6 +513,12 @@ static char ** libxl__build_device_model } } } @@ -5189,7 +5189,7 @@ =================================================================== --- xen-4.3.0-testing.orig/tools/libxl/libxl_types.idl +++ xen-4.3.0-testing/tools/libxl/libxl_types.idl -@@ -333,6 +333,8 @@ libxl_domain_build_info = Struct("domain +@@ -332,6 +332,8 @@ libxl_domain_build_info = Struct("domain ("soundhw", string), ("xen_platform_pci", libxl_defbool), ("usbdevice_list", libxl_string_list), @@ -5202,7 +5202,7 @@ =================================================================== --- xen-4.3.0-testing.orig/tools/libxl/xl_cmdimpl.c +++ xen-4.3.0-testing/tools/libxl/xl_cmdimpl.c -@@ -1518,6 +1518,8 @@ skip_vfb: +@@ -1516,6 +1516,8 @@ skip_vfb: xlu_cfg_replace_string (config, "soundhw", &b_info->u.hvm.soundhw, 0); xlu_cfg_get_defbool(config, "xen_platform_pci", &b_info->u.hvm.xen_platform_pci, 0); -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org