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

Reply via email to