]> git.proxmox.com Git - pve-qemu-kvm.git/commitdiff
updates for qemu 1.4.0
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 12 Feb 2013 08:33:45 +0000 (09:33 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Tue, 12 Feb 2013 11:38:30 +0000 (12:38 +0100)
21 files changed:
Makefile
debian/changelog
debian/patches/0001-RFC-Efficient-VM-backup-for-qemu.patch
debian/patches/0002-add-basic-backup-support-to-block-driver.patch
debian/patches/0003-add-backup-related-monitor-commands.patch
debian/patches/0004-introduce-new-vma-archive-format.patch
debian/patches/0005-add-regression-tests-for-backup.patch
debian/patches/0006-add-vm-state-to-backups.patch
debian/patches/adjust-path.diff
debian/patches/enable-kvm-by-default.patch
debian/patches/fairsched.diff
debian/patches/fix-qemu-img-snapshot-removal.patch
debian/patches/internal-snapshot-async.patch
debian/patches/keymap.diff
debian/patches/move-bdrv-snapshot-find.patch
debian/patches/pve-auth.patch
debian/patches/qemu-img-convert-skipcreate-option.patch
debian/patches/series
debian/patches/vencrypt-auth-plain.patch
debian/rules
qemu-kvm-src.tar.gz

index 8222c39164ca741afe32cb5984f42f9051ea73e0..559706824b0063edc9090069d2e3f3d74d5d68cd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
 RELEASE=2.3
 
 # also update debian/changelog
-KVMVER=1.3
-KVMPKGREL=18
+KVMVER=1.4
+KVMPKGREL=1
 
 KVMPACKAGE=pve-qemu-kvm
 KVMDIR=qemu-kvm
@@ -18,7 +18,7 @@ all: ${KVM_DEB} ${KVMSRC}
 download:
        rm -rf ${KVMDIR} ${KVMSRC}
        git clone git://git.qemu-project.org/qemu.git -b master ${KVMDIR} 
-       cd ${KVMDIR}; git checkout -b local v1.3.1
+       #cd ${KVMDIR}; git checkout -b local v1.4.0rc1
        tar czf ${KVMSRC} --exclude CVS --exclude .git --exclude .svn ${KVMDIR}
 
 ${KVM_DEB} kvm: ${KVMSRC}
index 382437e4b8dc529371e8c248745fba1d5fd558b1..edfa7eb79ee80b6b8776802dce5406333d7864b5 100644 (file)
@@ -1,3 +1,19 @@
+pve-qemu-kvm (1.4-1) unstable; urgency=low
+
+  * update to latest 1.4.0 (03ec2f83087de34924489eeae0ea6fe7785cc050)
+
+  * remove ahci-add_migration-support.patch
+  
+  * remove balloon stat patches
+  
+  * remove always-update-expected-downtime.patch: seems latest qemu does 
+  not set that value anymore?
+  
+  * configure with --disable-smartcard-nss (else we need to install
+    vscclient and dynamic libraries)
+
+ -- Proxmox Support Team <support@proxmox.com>  Tue, 12 Feb 2013 12:04:09 +0100
+
 pve-qemu-kvm (1.3-18) unstable; urgency=low
 
   * update qemu to v1.3.1
index 6a7717e4b392154e70ef1bae0562cc472a244fe0..09df992bc4612a50744faf2b2e7d36f52006ef74 100644 (file)
@@ -1,4 +1,4 @@
-From 5a37c10eb0991e86cba666b82ac756dc2ff1cd8c Mon Sep 17 00:00:00 2001
+From e9d7fc0567eb5bef368a950a4813d6eb5867572b Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Tue, 13 Nov 2012 09:24:50 +0100
 Subject: [PATCH v3 1/6] RFC: Efficient VM backup for qemu
index 6224bf472cdfcaac466f42a596aadf0307df550a..a43bb03f3ebce458c5d44aad01f884779444bb41 100644 (file)
@@ -1,4 +1,4 @@
-From c51e1c591401926d7a5c3a41011736c329c6ef82 Mon Sep 17 00:00:00 2001
+From eb29d6acb8d8e671e292c9f50655bc87d9742282 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Tue, 13 Nov 2012 10:03:52 +0100
 Subject: [PATCH v3 2/6] add basic backup support to block driver
@@ -15,34 +15,34 @@ Currently backup cluster size is hardcoded to 65536 bytes.
 
 Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 ---
- Makefile.objs |    1 +
- backup.c      |  339 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- backup.h      |   32 ++++++
- block.c       |   71 +++++++++++-
block.h       |    2 +
blockjob.h    |   10 ++
- 6 files changed, 449 insertions(+), 6 deletions(-)
+ Makefile.objs            |    1 +
+ backup.c                 |  338 ++++++++++++++++++++++++++++++++++++++++++++++
+ backup.h                 |   32 +++++
+ block.c                  |   71 +++++++++-
include/block/block.h    |    2 +
include/block/blockjob.h |   10 ++
+ 6 files changed, 448 insertions(+), 6 deletions(-)
  create mode 100644 backup.c
  create mode 100644 backup.h
 
 diff --git a/Makefile.objs b/Makefile.objs
-index 3c7abca..cb46be5 100644
+index 21e9c91..d72822b 100644
 --- a/Makefile.objs
 +++ b/Makefile.objs
-@@ -48,6 +48,7 @@ coroutine-obj-$(CONFIG_WIN32) += coroutine-win32.o
- block-obj-y = iov.o cache-utils.o qemu-option.o module.o async.o
- block-obj-y += nbd.o block.o blockjob.o aes.o qemu-config.o
- block-obj-y += thread-pool.o qemu-progress.o qemu-sockets.o uri.o notify.o
+@@ -13,6 +13,7 @@ block-obj-$(CONFIG_POSIX) += aio-posix.o
+ block-obj-$(CONFIG_WIN32) += aio-win32.o
+ block-obj-y += block/
+ block-obj-y += qapi-types.o qapi-visit.o
 +block-obj-y += backup.o
- block-obj-y += $(coroutine-obj-y) $(qobject-obj-y) $(version-obj-y)
- block-obj-$(CONFIG_POSIX) += event_notifier-posix.o aio-posix.o
- block-obj-$(CONFIG_WIN32) += event_notifier-win32.o aio-win32.o
+ block-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o
+ block-obj-y += qemu-coroutine-sleep.o
 diff --git a/backup.c b/backup.c
 new file mode 100644
-index 0000000..5dcbd11
+index 0000000..61ca668
 --- /dev/null
 +++ b/backup.c
-@@ -0,0 +1,339 @@
+@@ -0,0 +1,338 @@
 +/*
 + * QEMU backup
 + *
@@ -60,9 +60,9 @@ index 0000000..5dcbd11
 +#include <errno.h>
 +#include <unistd.h>
 +
-+#include "block.h"
-+#include "block_int.h"
-+#include "blockjob.h"
++#include "block/block.h"
++#include "block/block_int.h"
++#include "block/blockjob.h"
 +#include "qemu/ratelimit.h"
 +#include "backup.h"
 +
@@ -73,7 +73,6 @@ index 0000000..5dcbd11
 +    while (0)
 +
 +
-+#define BITS_PER_LONG  (sizeof(unsigned long) * 8)
 +#define SLICE_TIME 100000000ULL /* ns */
 +
 +typedef struct BackupBlockJob {
@@ -421,7 +420,7 @@ index 0000000..20a9016
 +
 +#endif /* QEMU_BACKUP_H */
 diff --git a/block.c b/block.c
-index c05875f..4de7fbd 100644
+index 50dab8e..6e6d08f 100644
 --- a/block.c
 +++ b/block.c
 @@ -54,6 +54,7 @@
@@ -432,7 +431,7 @@ index c05875f..4de7fbd 100644
  } BdrvRequestFlags;
  
  static void bdrv_dev_change_media_cb(BlockDriverState *bs, bool load);
-@@ -1542,7 +1543,7 @@ int bdrv_commit(BlockDriverState *bs)
+@@ -1554,7 +1555,7 @@ int bdrv_commit(BlockDriverState *bs)
  
      if (!drv)
          return -ENOMEDIUM;
@@ -441,7 +440,7 @@ index c05875f..4de7fbd 100644
      if (!bs->backing_hd) {
          return -ENOTSUP;
      }
-@@ -1679,6 +1680,22 @@ static void round_to_clusters(BlockDriverState *bs,
+@@ -1691,6 +1692,22 @@ void bdrv_round_to_clusters(BlockDriverState *bs,
      }
  }
  
@@ -464,7 +463,7 @@ index c05875f..4de7fbd 100644
  static bool tracked_request_overlaps(BdrvTrackedRequest *req,
                                       int64_t sector_num, int nb_sectors) {
      /*        aaaa   bbbb */
-@@ -1693,7 +1710,9 @@ static bool tracked_request_overlaps(BdrvTrackedRequest *req,
+@@ -1705,7 +1722,9 @@ static bool tracked_request_overlaps(BdrvTrackedRequest *req,
  }
  
  static void coroutine_fn wait_for_overlapping_requests(BlockDriverState *bs,
@@ -475,9 +474,9 @@ index c05875f..4de7fbd 100644
  {
      BdrvTrackedRequest *req;
      int64_t cluster_sector_num;
-@@ -1709,6 +1728,11 @@ static void coroutine_fn wait_for_overlapping_requests(BlockDriverState *bs,
-     round_to_clusters(bs, sector_num, nb_sectors,
-                       &cluster_sector_num, &cluster_nb_sectors);
+@@ -1721,6 +1740,11 @@ static void coroutine_fn wait_for_overlapping_requests(BlockDriverState *bs,
+     bdrv_round_to_clusters(bs, sector_num, nb_sectors,
+                            &cluster_sector_num, &cluster_nb_sectors);
  
 +    if (job_cluster_size) {
 +        round_to_job_clusters(bs, sector_num, nb_sectors, job_cluster_size,
@@ -487,7 +486,7 @@ index c05875f..4de7fbd 100644
      do {
          retry = false;
          QLIST_FOREACH(req, &bs->tracked_requests, list) {
-@@ -2278,12 +2302,24 @@ static int coroutine_fn bdrv_co_do_readv(BlockDriverState *bs,
+@@ -2260,12 +2284,24 @@ static int coroutine_fn bdrv_co_do_readv(BlockDriverState *bs,
          bs->copy_on_read_in_flight++;
      }
  
@@ -514,7 +513,7 @@ index c05875f..4de7fbd 100644
      if (flags & BDRV_REQ_COPY_ON_READ) {
          int pnum;
  
-@@ -2327,6 +2363,17 @@ int coroutine_fn bdrv_co_copy_on_readv(BlockDriverState *bs,
+@@ -2309,6 +2345,17 @@ int coroutine_fn bdrv_co_copy_on_readv(BlockDriverState *bs,
                              BDRV_REQ_COPY_ON_READ);
  }
  
@@ -532,7 +531,7 @@ index c05875f..4de7fbd 100644
  static int coroutine_fn bdrv_co_do_write_zeroes(BlockDriverState *bs,
      int64_t sector_num, int nb_sectors)
  {
-@@ -2384,12 +2431,23 @@ static int coroutine_fn bdrv_co_do_writev(BlockDriverState *bs,
+@@ -2366,12 +2413,23 @@ static int coroutine_fn bdrv_co_do_writev(BlockDriverState *bs,
          bdrv_io_limits_intercept(bs, true, nb_sectors);
      }
  
@@ -558,7 +557,7 @@ index c05875f..4de7fbd 100644
      if (flags & BDRV_REQ_ZERO_WRITE) {
          ret = bdrv_co_do_write_zeroes(bs, sector_num, nb_sectors);
      } else {
-@@ -2408,6 +2466,7 @@ static int coroutine_fn bdrv_co_do_writev(BlockDriverState *bs,
+@@ -2390,6 +2448,7 @@ static int coroutine_fn bdrv_co_do_writev(BlockDriverState *bs,
          bs->wr_highest_sector = sector_num + nb_sectors - 1;
      }
  
@@ -566,10 +565,10 @@ index c05875f..4de7fbd 100644
      tracked_request_end(&req);
  
      return ret;
-diff --git a/block.h b/block.h
-index 722c620..94e5903 100644
---- a/block.h
-+++ b/block.h
+diff --git a/include/block/block.h b/include/block/block.h
+index 5c3b911..b6144be 100644
+--- a/include/block/block.h
++++ b/include/block/block.h
 @@ -172,6 +172,8 @@ int coroutine_fn bdrv_co_readv(BlockDriverState *bs, int64_t sector_num,
      int nb_sectors, QEMUIOVector *qiov);
  int coroutine_fn bdrv_co_copy_on_readv(BlockDriverState *bs,
@@ -579,10 +578,10 @@ index 722c620..94e5903 100644
  int coroutine_fn bdrv_co_writev(BlockDriverState *bs, int64_t sector_num,
      int nb_sectors, QEMUIOVector *qiov);
  /*
-diff --git a/blockjob.h b/blockjob.h
-index 3792b73..6621173 100644
---- a/blockjob.h
-+++ b/blockjob.h
+diff --git a/include/block/blockjob.h b/include/block/blockjob.h
+index c290d07..6f42495 100644
+--- a/include/block/blockjob.h
++++ b/include/block/blockjob.h
 @@ -50,6 +50,13 @@ typedef struct BlockJobType {
       * manually.
       */
index 1de493e96223b4cc7ddd5a1ac24101570e29fea2..a9135f7fab3102b45c3e73e3b2a84b8e654f7122 100644 (file)
@@ -1,4 +1,4 @@
-From 4c0880f2561de8dec379eb6f02b3df88c023270c Mon Sep 17 00:00:00 2001
+From 02f8d395026b507cdcaaec00b324a67779298383 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Tue, 13 Nov 2012 11:27:56 +0100
 Subject: [PATCH v3 3/6] add backup related monitor commands
@@ -44,18 +44,18 @@ index 20a9016..be52ea4 100644
 +
  #endif /* QEMU_BACKUP_H */
 diff --git a/blockdev.c b/blockdev.c
-index e73fd6e..c559903 100644
+index 63e6f1e..92a7ca3 100644
 --- a/blockdev.c
 +++ b/blockdev.c
 @@ -20,6 +20,7 @@
  #include "qmp-commands.h"
  #include "trace.h"
- #include "arch_init.h"
+ #include "sysemu/arch_init.h"
 +#include "backup.h"
  
  static QTAILQ_HEAD(drivelist, DriveInfo) drives = QTAILQ_HEAD_INITIALIZER(drives);
  
-@@ -1321,6 +1322,428 @@ void qmp_drive_mirror(const char *device, const char *target,
+@@ -1334,6 +1335,428 @@ void qmp_drive_mirror(const char *device, const char *target,
      drive_get_ref(drive_get_by_blockdev(bs));
  }
  
@@ -485,7 +485,7 @@ index e73fd6e..c559903 100644
  {
      BlockDriverState *bs;
 diff --git a/hmp-commands.hx b/hmp-commands.hx
-index 010b8c9..57be357 100644
+index 64008a9..0f178d8 100644
 --- a/hmp-commands.hx
 +++ b/hmp-commands.hx
 @@ -83,6 +83,35 @@ STEXI
@@ -524,7 +524,7 @@ index 010b8c9..57be357 100644
      {
          .name       = "block_job_set_speed",
          .args_type  = "device:B,speed:o",
-@@ -1558,6 +1587,8 @@ show CPU statistics
+@@ -1630,6 +1659,8 @@ show CPU statistics
  show user network stack connection states
  @item info migrate
  show migration status
@@ -534,14 +534,14 @@ index 010b8c9..57be357 100644
  show current migration capabilities
  @item info migrate_cache_size
 diff --git a/hmp.c b/hmp.c
-index 180ba2b..27fd421 100644
+index 2f47a8a..9ac34c5 100644
 --- a/hmp.c
 +++ b/hmp.c
-@@ -130,6 +130,38 @@ void hmp_info_mice(Monitor *mon)
+@@ -131,6 +131,38 @@ void hmp_info_mice(Monitor *mon, const QDict *qdict)
      qapi_free_MouseInfoList(mice_list);
  }
  
-+void hmp_info_backup(Monitor *mon)
++void hmp_info_backup(Monitor *mon, const QDict *qdict)
 +{
 +    BackupStatus *info;
 +
@@ -573,10 +573,10 @@ index 180ba2b..27fd421 100644
 +    qapi_free_BackupStatus(info);
 +}
 +
- void hmp_info_migrate(Monitor *mon)
+ void hmp_info_migrate(Monitor *mon, const QDict *qdict)
  {
      MigrationInfo *info;
-@@ -977,6 +1009,37 @@ void hmp_block_stream(Monitor *mon, const QDict *qdict)
+@@ -998,6 +1030,37 @@ void hmp_block_stream(Monitor *mon, const QDict *qdict)
      hmp_handle_error(mon, &error);
  }
  
@@ -615,18 +615,18 @@ index 180ba2b..27fd421 100644
  {
      Error *error = NULL;
 diff --git a/hmp.h b/hmp.h
-index 0ab03be..20c9a62 100644
+index 30b3c20..ad4cf80 100644
 --- a/hmp.h
 +++ b/hmp.h
-@@ -28,6 +28,7 @@ void hmp_info_mice(Monitor *mon);
- void hmp_info_migrate(Monitor *mon);
- void hmp_info_migrate_capabilities(Monitor *mon);
- void hmp_info_migrate_cache_size(Monitor *mon);
-+void hmp_info_backup(Monitor *mon);
- void hmp_info_cpus(Monitor *mon);
- void hmp_info_block(Monitor *mon);
- void hmp_info_blockstats(Monitor *mon);
-@@ -63,6 +64,8 @@ void hmp_eject(Monitor *mon, const QDict *qdict);
+@@ -28,6 +28,7 @@ void hmp_info_mice(Monitor *mon, const QDict *qdict);
+ void hmp_info_migrate(Monitor *mon, const QDict *qdict);
+ void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict);
+ void hmp_info_migrate_cache_size(Monitor *mon, const QDict *qdict);
++void hmp_info_backup(Monitor *mon, const QDict *qdict);
+ void hmp_info_cpus(Monitor *mon, const QDict *qdict);
+ void hmp_info_block(Monitor *mon, const QDict *qdict);
+ void hmp_info_blockstats(Monitor *mon, const QDict *qdict);
+@@ -65,6 +66,8 @@ void hmp_eject(Monitor *mon, const QDict *qdict);
  void hmp_change(Monitor *mon, const QDict *qdict);
  void hmp_block_set_io_throttle(Monitor *mon, const QDict *qdict);
  void hmp_block_stream(Monitor *mon, const QDict *qdict);
@@ -636,10 +636,10 @@ index 0ab03be..20c9a62 100644
  void hmp_block_job_cancel(Monitor *mon, const QDict *qdict);
  void hmp_block_job_pause(Monitor *mon, const QDict *qdict);
 diff --git a/monitor.c b/monitor.c
-index c0e32d6..85cf47e 100644
+index 20bd19b..5f979ce 100644
 --- a/monitor.c
 +++ b/monitor.c
-@@ -2680,6 +2680,13 @@ static mon_cmd_t info_cmds[] = {
+@@ -2666,6 +2666,13 @@ static mon_cmd_t info_cmds[] = {
      },
  #endif
      {
@@ -647,17 +647,17 @@ index c0e32d6..85cf47e 100644
 +        .args_type  = "",
 +        .params     = "",
 +        .help       = "show backup status",
-+        .mhandler.info = hmp_info_backup,
++        .mhandler.cmd = hmp_info_backup,
 +    },
 +    {
          .name       = "migrate",
          .args_type  = "",
          .params     = "",
 diff --git a/qapi-schema.json b/qapi-schema.json
-index 5dfa052..2d3699b 100644
+index bd289ae..c91df47 100644
 --- a/qapi-schema.json
 +++ b/qapi-schema.json
-@@ -358,6 +358,39 @@
+@@ -425,6 +425,39 @@
  { 'type': 'EventInfo', 'data': {'name': 'str'} }
  
  ##
@@ -697,7 +697,7 @@ index 5dfa052..2d3699b 100644
  # @query-events:
  #
  # Return a list of supported QMP events by this server
-@@ -1764,6 +1797,64 @@
+@@ -1824,6 +1857,64 @@
    'data': { 'path': 'str' },
    'returns': [ 'ObjectPropertyInfo' ] }
  
@@ -763,10 +763,10 @@ index 5dfa052..2d3699b 100644
  # @qom-get:
  #
 diff --git a/qmp-commands.hx b/qmp-commands.hx
-index 5c692d0..c46fdc4 100644
+index 799adea..ca601b3 100644
 --- a/qmp-commands.hx
 +++ b/qmp-commands.hx
-@@ -822,6 +822,18 @@ EQMP
+@@ -889,6 +889,18 @@ EQMP
      },
  
      {
@@ -785,7 +785,7 @@ index 5c692d0..c46fdc4 100644
          .name       = "block-job-set-speed",
          .args_type  = "device:B,speed:o",
          .mhandler.cmd_new = qmp_marshal_input_block_job_set_speed,
-@@ -2491,6 +2503,21 @@ EQMP
+@@ -2566,6 +2578,21 @@ EQMP
      },
  
  SQMP
index d1f27b964b739721b0e0ef96bd59e2324d579c92..0b54ae3bfb67b80edfb14175b4dcc1f434266318 100644 (file)
@@ -1,4 +1,4 @@
-From 86ddce6dbd1cc88a0fad43b36300b8ffa573bd04 Mon Sep 17 00:00:00 2001
+From c04d17631e00ff368e42dc5d24e94152b6526014 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Tue, 13 Nov 2012 11:11:38 +0100
 Subject: [PATCH v3 4/6] introduce new vma archive format
@@ -9,13 +9,14 @@ Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 ---
  Makefile                |    3 +-
  Makefile.objs           |    2 +-
+ backup.h                |    1 +
  blockdev.c              |    6 +-
  docs/specs/vma_spec.txt |   24 ++
- vma-reader.c            |  801 ++++++++++++++++++++++++++++++++++++++++
- vma-writer.c            |  935 +++++++++++++++++++++++++++++++++++++++++++++++
- vma.c                   |  561 ++++++++++++++++++++++++++++
+ vma-reader.c            |  799 ++++++++++++++++++++++++++++++++++++++++
+ vma-writer.c            |  932 +++++++++++++++++++++++++++++++++++++++++++++++
+ vma.c                   |  559 ++++++++++++++++++++++++++++
  vma.h                   |  145 ++++++++
8 files changed, 2473 insertions(+), 4 deletions(-)
9 files changed, 2467 insertions(+), 4 deletions(-)
  create mode 100644 docs/specs/vma_spec.txt
  create mode 100644 vma-reader.c
  create mode 100644 vma-writer.c
@@ -23,52 +24,64 @@ Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
  create mode 100644 vma.h
 
 diff --git a/Makefile b/Makefile
-index 9ecbcbb..30a9268 100644
+index 0d9099a..16f1c25 100644
 --- a/Makefile
 +++ b/Makefile
-@@ -100,7 +100,7 @@ defconfig:
- -include config-all-devices.mak
+@@ -115,7 +115,7 @@ ifeq ($(CONFIG_SMARTCARD_NSS),y)
+ include $(SRC_PATH)/libcacard/Makefile
+ endif
  
 -all: $(DOCS) $(TOOLS) $(HELPERS-y) recurse-all
 +all: $(DOCS) $(TOOLS) vma$(EXESUF) $(HELPERS-y) recurse-all
  
  config-host.h: config-host.h-timestamp
  config-host.h-timestamp: config-host.mak
-@@ -194,6 +194,7 @@ tools-obj-$(CONFIG_POSIX) += compatfd.o
- qemu-img$(EXESUF): qemu-img.o $(tools-obj-y) $(block-obj-y) libqemustub.a
- qemu-nbd$(EXESUF): qemu-nbd.o $(tools-obj-y) $(block-obj-y) libqemustub.a
- qemu-io$(EXESUF): qemu-io.o cmd.o $(tools-obj-y) $(block-obj-y) libqemustub.a
-+vma$(EXESUF): vma.o vma-writer.o vma-reader.o $(tools-obj-y) $(block-obj-y) libqemustub.a
+@@ -167,6 +167,7 @@ qemu-img.o: qemu-img-cmds.h
+ qemu-img$(EXESUF): qemu-img.o $(block-obj-y) libqemuutil.a libqemustub.a
+ qemu-nbd$(EXESUF): qemu-nbd.o $(block-obj-y) libqemuutil.a libqemustub.a
+ qemu-io$(EXESUF): qemu-io.o cmd.o $(block-obj-y) libqemuutil.a libqemustub.a
++vma$(EXESUF): vma.o vma-writer.o vma-reader.o $(block-obj-y)  libqemuutil.a libqemustub.a
  
  qemu-bridge-helper$(EXESUF): qemu-bridge-helper.o
  
 diff --git a/Makefile.objs b/Makefile.objs
-index cb46be5..b5732e2 100644
+index d72822b..111b9f8 100644
 --- a/Makefile.objs
 +++ b/Makefile.objs
-@@ -48,7 +48,7 @@ coroutine-obj-$(CONFIG_WIN32) += coroutine-win32.o
- block-obj-y = iov.o cache-utils.o qemu-option.o module.o async.o
- block-obj-y += nbd.o block.o blockjob.o aes.o qemu-config.o
- block-obj-y += thread-pool.o qemu-progress.o qemu-sockets.o uri.o notify.o
+@@ -13,7 +13,7 @@ block-obj-$(CONFIG_POSIX) += aio-posix.o
+ block-obj-$(CONFIG_WIN32) += aio-win32.o
+ block-obj-y += block/
+ block-obj-y += qapi-types.o qapi-visit.o
 -block-obj-y += backup.o
 +block-obj-y += vma-writer.o backup.o
- block-obj-y += $(coroutine-obj-y) $(qobject-obj-y) $(version-obj-y)
- block-obj-$(CONFIG_POSIX) += event_notifier-posix.o aio-posix.o
- block-obj-$(CONFIG_WIN32) += event_notifier-win32.o aio-win32.o
+ block-obj-y += qemu-coroutine.o qemu-coroutine-lock.o qemu-coroutine-io.o
+ block-obj-y += qemu-coroutine-sleep.o
+diff --git a/backup.h b/backup.h
+index be52ea4..3a81e52 100644
+--- a/backup.h
++++ b/backup.h
+@@ -15,6 +15,7 @@
+ #define QEMU_BACKUP_H
+ #include <uuid/uuid.h>
++#include "block/block.h"
+ #define BACKUP_CLUSTER_BITS 16
+ #define BACKUP_CLUSTER_SIZE (1<<BACKUP_CLUSTER_BITS)
 diff --git a/blockdev.c b/blockdev.c
-index c559903..467667e 100644
+index 92a7ca3..aad6e0c 100644
 --- a/blockdev.c
 +++ b/blockdev.c
 @@ -21,6 +21,7 @@
  #include "trace.h"
- #include "arch_init.h"
+ #include "sysemu/arch_init.h"
  #include "backup.h"
 +#include "vma.h"
  
  static QTAILQ_HEAD(drivelist, DriveInfo) drives = QTAILQ_HEAD_INITIALIZER(drives);
  
-@@ -1517,10 +1518,11 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
+@@ -1530,10 +1531,11 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
      /* Todo: try to auto-detect format based on file name */
      format = has_format ? format : BACKUP_FORMAT_VMA;
  
@@ -114,10 +127,10 @@ index 0000000..052c629
 +
 diff --git a/vma-reader.c b/vma-reader.c
 new file mode 100644
-index 0000000..2217a94
+index 0000000..7e81847
 --- /dev/null
 +++ b/vma-reader.c
-@@ -0,0 +1,801 @@
+@@ -0,0 +1,799 @@
 +/*
 + * VMA: Virtual Machine Archive
 + *
@@ -143,12 +156,10 @@ index 0000000..2217a94
 +#include <uuid/uuid.h>
 +
 +#include "qemu-common.h"
-+#include "qemu_socket.h"
-+#include "qemu-coroutine.h"
-+#include "qemu-aio.h"
++#include "qemu/timer.h"
 +#include "qemu/ratelimit.h"
 +#include "vma.h"
-+#include "block.h"
++#include "block/block.h"
 +
 +#define BITS_PER_LONG  (sizeof(unsigned long) * 8)
 +
@@ -921,10 +932,10 @@ index 0000000..2217a94
 +
 diff --git a/vma-writer.c b/vma-writer.c
 new file mode 100644
-index 0000000..6ecbaf4
+index 0000000..04a346e
 --- /dev/null
 +++ b/vma-writer.c
-@@ -0,0 +1,935 @@
+@@ -0,0 +1,932 @@
 +/*
 + * VMA: Virtual Machine Archive
 + *
@@ -950,12 +961,9 @@ index 0000000..6ecbaf4
 +#include <uuid/uuid.h>
 +
 +#include "qemu-common.h"
-+#include "qemu_socket.h"
-+#include "qemu-coroutine.h"
-+#include "qemu-aio.h"
 +#include "vma.h"
-+#include "block.h"
-+#include "monitor.h"
++#include "block/block.h"
++#include "monitor/monitor.h"
 +
 +#define DEBUG_VMA 0
 +
@@ -1862,10 +1870,10 @@ index 0000000..6ecbaf4
 +
 diff --git a/vma.c b/vma.c
 new file mode 100644
-index 0000000..66de9bb
+index 0000000..64da334
 --- /dev/null
 +++ b/vma.c
-@@ -0,0 +1,561 @@
+@@ -0,0 +1,559 @@
 +/*
 + * VMA: Virtual Machine Archive
 + *
@@ -1890,13 +1898,9 @@ index 0000000..66de9bb
 +#include <glib.h>
 +
 +#include "qemu-common.h"
-+#include "qemu-option.h"
-+#include "qemu-error.h"
-+#include "osdep.h"
-+#include "sysemu.h"
-+#include "block_int.h"
-+#include <stdio.h>
++#include "qemu/error-report.h"
 +#include "vma.h"
++#include "block/block.h"
 +
 +static void help(void)
 +{
@@ -2155,9 +2159,11 @@ index 0000000..66de9bb
 +                                        dirname, di->devname);
 +                printf("DEVINFO %s %zd\n", devfn, di->size);
 +
-+                if (bdrv_img_create(devfn, "raw", NULL, NULL, NULL,
-+                                    di->size, flags)) {
-+                    g_error("can't create file %s", devfn);
++                bdrv_img_create(devfn, "raw", NULL, NULL, NULL, di->size, 
++                                flags, &errp);
++                if (error_is_set(&errp)) {
++                    g_error("can't create file %s: %s", devfn, 
++                            error_get_pretty(errp));
 +                }
 +
 +                /* Note: we created an empty file above, so there is no
index 4571a2fed2a988973acfb61e8c2feeb665585d14..8c6dc116c00346eefd58ff5d7f4ef852188a0ea3 100644 (file)
@@ -1,4 +1,4 @@
-From 2f16d5e7a7fdcbb83f2643cbbbf872e1b4fbac2f Mon Sep 17 00:00:00 2001
+From 6b0aa521526e0cc35539ee327b3e6c976da6e361 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Wed, 14 Nov 2012 09:57:04 +0100
 Subject: [PATCH v3 5/6] add regression tests for backup
@@ -10,15 +10,15 @@ Note: the call to g_thread_init() solves problems with g_slice_alloc() - without
 Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 ---
  tests/Makefile      |   11 +-
- tests/backup-test.c |  516 +++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 525 insertions(+), 2 deletions(-)
+ tests/backup-test.c |  517 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 526 insertions(+), 2 deletions(-)
  create mode 100644 tests/backup-test.c
 
 diff --git a/tests/Makefile b/tests/Makefile
-index b60f0fb..cffbd22 100644
+index a2d62b8..c3d8b4a 100644
 --- a/tests/Makefile
 +++ b/tests/Makefile
-@@ -20,6 +20,8 @@ check-unit-y += tests/test-thread-pool$(EXESUF)
+@@ -57,6 +57,8 @@ gcov-files-test-cutils-y += util/cutils.c
  
  check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh
  
@@ -27,15 +27,15 @@ index b60f0fb..cffbd22 100644
  # All QTests for now are POSIX-only, but the dependencies are
  # really in libqtest, not in the testcases themselves.
  check-qtest-i386-y = tests/fdc-test$(EXESUF)
-@@ -54,6 +56,7 @@ tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(coroutine-obj-y) $(tools
- tests/test-aio$(EXESUF): tests/test-aio.o $(coroutine-obj-y) $(tools-obj-y) $(block-obj-y) libqemustub.a
- tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(coroutine-obj-y) $(tools-obj-y) $(block-obj-y) libqemustub.a
- tests/test-iov$(EXESUF): tests/test-iov.o iov.o
-+tests/backup-test$(EXESUF): tests/backup-test.o vma-reader.o $(tools-obj-y) $(block-obj-y) libqemustub.a
- tests/test-qapi-types.c tests/test-qapi-types.h :\
- $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py
-@@ -146,10 +149,14 @@ check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF)
+@@ -100,6 +102,7 @@ tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(block-obj-y) libqemuutil
+ tests/test-aio$(EXESUF): tests/test-aio.o $(block-obj-y) libqemuutil.a libqemustub.a
+ tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(block-obj-y) libqemuutil.a libqemustub.a
+ tests/test-iov$(EXESUF): tests/test-iov.o libqemuutil.a
++tests/backup-test$(EXESUF): tests/backup-test.o vma-reader.o $(block-obj-y) libqemuutil.a libqemustub.a
+ tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o libqemuutil.a libqemustub.a
+ tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o
+ tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o xbzrle.o page_cache.o libqemuutil.a
+@@ -209,10 +212,14 @@ check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF)
  
  # Consolidated targets
  
@@ -54,10 +54,10 @@ index b60f0fb..cffbd22 100644
  -include $(wildcard tests/*.d)
 diff --git a/tests/backup-test.c b/tests/backup-test.c
 new file mode 100644
-index 0000000..36a6389
+index 0000000..5ee3b90
 --- /dev/null
 +++ b/tests/backup-test.c
-@@ -0,0 +1,516 @@
+@@ -0,0 +1,517 @@
 +/*
 + * QEMU backup test suit
 + *
@@ -82,8 +82,7 @@ index 0000000..36a6389
 +#include <libgen.h>
 +
 +#include "qemu-common.h"
-+#include "main-loop.h"
-+#include "block_int.h"
++#include "block/block.h"
 +
 +#include "vma.h"
 +
@@ -306,9 +305,11 @@ index 0000000..36a6389
 +
 +    int flags = BDRV_O_NATIVE_AIO|BDRV_O_RDWR|BDRV_O_CACHE_WB;
 +
-+    if (bdrv_img_create(TEST_IMG_RESTORE_NAME, "raw", NULL, NULL, NULL,
-+                        size, flags)) {
-+        g_error("can't create file %s", TEST_IMG_RESTORE_NAME);
++    bdrv_img_create(TEST_IMG_RESTORE_NAME, "raw", NULL, NULL, NULL,
++                  size, flags, &errp);
++    if (error_is_set(&errp)) {
++        g_error("can't create file %s: %s", TEST_IMG_RESTORE_NAME,
++                error_get_pretty(errp));
 +    }
 +
 +    BlockDriverState *bs = NULL;
index ad3affcb5677f99a38b2e8bbe0cb8003e2bc1597..2ee9176bfc872e28b430ad49dbb9f046cec56ef8 100644 (file)
@@ -1,4 +1,4 @@
-From 1f4df212ac4408eaf685cd0febf2ae86ea96e6f3 Mon Sep 17 00:00:00 2001
+From 2b1f27dec5e3f38d00b7905870337025bed8f366 Mon Sep 17 00:00:00 2001
 From: Dietmar Maurer <dietmar@proxmox.com>
 Date: Thu, 29 Nov 2012 10:46:49 +0100
 Subject: [PATCH v3 6/6] add vm state to backups
@@ -12,11 +12,11 @@ Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
  3 files changed, 200 insertions(+), 5 deletions(-)
 
 diff --git a/blockdev.c b/blockdev.c
-index 467667e..b6d80a4 100644
+index aad6e0c..2805a1e 100644
 --- a/blockdev.c
 +++ b/blockdev.c
 @@ -22,6 +22,8 @@
- #include "arch_init.h"
+ #include "sysemu/arch_init.h"
  #include "backup.h"
  #include "vma.h"
 +#include "qemu-file.h"
@@ -24,7 +24,7 @@ index 467667e..b6d80a4 100644
  
  static QTAILQ_HEAD(drivelist, DriveInfo) drives = QTAILQ_HEAD_INITIALIZER(drives);
  
-@@ -1342,6 +1344,10 @@ static struct GenericBackupState {
+@@ -1355,6 +1357,10 @@ static struct GenericBackupState {
      size_t total;
      size_t transferred;
      size_t zero_bytes;
@@ -35,7 +35,7 @@ index 467667e..b6d80a4 100644
  } backup_state;
  
  typedef struct BackupCB {
-@@ -1497,10 +1503,170 @@ static void backup_start_jobs(void)
+@@ -1510,10 +1516,170 @@ static void backup_start_jobs(void)
      backup_run_next_job();
  }
  
@@ -207,7 +207,7 @@ index 467667e..b6d80a4 100644
  {
      BlockDriverState *bs;
      Error *local_err = NULL;
-@@ -1515,6 +1681,8 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
+@@ -1528,6 +1694,8 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
          return NULL;
      }
  
@@ -216,7 +216,7 @@ index 467667e..b6d80a4 100644
      /* Todo: try to auto-detect format based on file name */
      format = has_format ? format : BACKUP_FORMAT_VMA;
  
-@@ -1595,6 +1763,22 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
+@@ -1608,6 +1776,22 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
      size_t total = 0;
  
      /* register all devices for vma writer */
@@ -239,7 +239,7 @@ index 467667e..b6d80a4 100644
      l = bcblist;
      while (l) {
          BackupCB *bcb = l->data;
-@@ -1662,6 +1846,9 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
+@@ -1675,6 +1859,9 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
      backup_state.total = total;
      backup_state.transferred = 0;
      backup_state.zero_bytes = 0;
@@ -249,7 +249,7 @@ index 467667e..b6d80a4 100644
  
      /* Grab a reference so hotplug does not delete the
       * BlockDriverState from underneath us.
-@@ -1673,7 +1860,12 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
+@@ -1686,7 +1873,12 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
          drive_get_ref(drive_get_by_blockdev(bcb->bs));
      }
  
@@ -264,10 +264,10 @@ index 467667e..b6d80a4 100644
      return g_strdup(backup_state.uuid_str);
  
 diff --git a/hmp.c b/hmp.c
-index 27fd421..56e1cdc 100644
+index 9ac34c5..7b401cc 100644
 --- a/hmp.c
 +++ b/hmp.c
-@@ -1031,7 +1031,8 @@ void hmp_backup(Monitor *mon, const QDict *qdict)
+@@ -1052,7 +1052,8 @@ void hmp_backup(Monitor *mon, const QDict *qdict)
      Error *errp = NULL;
  
      qmp_backup(backupfile, true, BACKUP_FORMAT_VMA, false, NULL, !!devlist,
@@ -278,10 +278,10 @@ index 27fd421..56e1cdc 100644
      if (error_is_set(&errp)) {
          monitor_printf(mon, "%s\n", error_get_pretty(errp));
 diff --git a/qapi-schema.json b/qapi-schema.json
-index 2d3699b..3f4889e 100644
+index c91df47..53655e6 100644
 --- a/qapi-schema.json
 +++ b/qapi-schema.json
-@@ -1822,13 +1822,15 @@
+@@ -1882,13 +1882,15 @@
  #
  # @speed: #optional the maximum speed, in bytes per second
  #
index 748e907089ab3530c0d2b4d1cd040140a88bdbe5..a6e83cd7d3a71a4cf16b20cf037e05705401e83f 100644 (file)
@@ -1,10 +1,10 @@
-Index: new/net.h
+Index: new/include/net/net.h
 ===================================================================
---- new.orig/net.h     2012-11-21 11:11:22.000000000 +0100
-+++ new/net.h  2012-11-21 11:17:51.000000000 +0100
-@@ -161,8 +161,9 @@
void netdev_add(QemuOpts *opts, Error **errp);
int qmp_netdev_add(Monitor *mon, const QDict *qdict, QObject **ret);
+--- new.orig/include/net/net.h 2013-02-11 11:06:09.000000000 +0100
++++ new/include/net/net.h      2013-02-11 11:15:16.000000000 +0100
+@@ -168,8 +168,9 @@
int net_hub_id_for_client(NetClientState *nc, int *id);
NetClientState *net_hub_port_find(int hub_id);
  
 -#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
 -#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
@@ -14,10 +14,10 @@ Index: new/net.h
  #define DEFAULT_BRIDGE_HELPER CONFIG_QEMU_HELPERDIR "/qemu-bridge-helper"
  #define DEFAULT_BRIDGE_INTERFACE "br0"
  
-Index: new/net/tap.h
+Index: new/net/tap_int.h
 ===================================================================
---- new.orig/net/tap.h 2012-11-21 11:11:22.000000000 +0100
-+++ new/net/tap.h      2012-11-21 11:17:51.000000000 +0100
+--- new.orig/net/tap_int.h     2013-02-11 11:06:09.000000000 +0100
++++ new/net/tap_int.h  2013-02-11 11:15:16.000000000 +0100
 @@ -29,8 +29,6 @@
  #include "qemu-common.h"
  #include "qapi-types.h"
@@ -25,5 +25,5 @@ Index: new/net/tap.h
 -#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
 -#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
  
- int tap_open(char *ifname, int ifname_size, int *vnet_hdr, int vnet_hdr_required);
+ int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
+              int vnet_hdr_required, int mq_required);
index 61352d26b455bdfb2f602f348fef22c98a13f75a..bdae4c3f3e87d8257885b9d2de798a3e166b81f8 100644 (file)
@@ -1,65 +1,73 @@
 Index: new/hw/pc_piix.c
 ===================================================================
---- new.orig/hw/pc_piix.c      2012-11-22 10:10:56.000000000 +0100
-+++ new/hw/pc_piix.c   2012-11-22 10:16:29.000000000 +0100
-@@ -352,6 +352,8 @@
+--- new.orig/hw/pc_piix.c      2013-02-11 11:06:09.000000000 +0100
++++ new/hw/pc_piix.c   2013-02-11 12:18:14.000000000 +0100
+@@ -294,6 +294,8 @@
  }
  #endif
  
 +#define KVM_MACHINE_OPTIONS "accel=kvm"
 +
- static QEMUMachine pc_machine_v1_3 = {
-     .name = "pc-1.3",
+ static QEMUMachine pc_i440fx_machine_v1_4 = {
+     .name = "pc-i440fx-1.4",
      .alias = "pc",
-@@ -359,6 +361,7 @@
-     .init = pc_init_pci_1_3,
+@@ -301,6 +303,7 @@
+     .init = pc_init_pci,
      .max_cpus = 255,
      .is_default = 1,
 +    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     DEFAULT_MACHINE_OPTIONS,
+ };
+@@ -328,6 +331,7 @@
+         PC_COMPAT_1_3,
+         { /* end of list */ }
+     },
++    .default_machine_opts = KVM_MACHINE_OPTIONS,
+     DEFAULT_MACHINE_OPTIONS,
  };
  
- #define PC_COMPAT_1_2 \
-@@ -393,6 +396,7 @@
+@@ -364,6 +368,7 @@
      .desc = "Standard PC",
-     .init = pc_init_pci,
+     .init = pc_init_pci_1_2,
      .max_cpus = 255,
 +    .default_machine_opts = KVM_MACHINE_OPTIONS,
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_1_2,
          { /* end of list */ }
-@@ -436,6 +440,7 @@
+@@ -408,6 +413,7 @@
      .desc = "Standard PC",
-     .init = pc_init_pci,
+     .init = pc_init_pci_1_2,
      .max_cpus = 255,
 +    .default_machine_opts = KVM_MACHINE_OPTIONS,
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_1_1,
          { /* end of list */ }
-@@ -471,6 +476,7 @@
+@@ -444,6 +450,7 @@
      .desc = "Standard PC",
-     .init = pc_init_pci,
+     .init = pc_init_pci_1_2,
      .max_cpus = 255,
 +    .default_machine_opts = KVM_MACHINE_OPTIONS,
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_1_0,
          { /* end of list */ }
-@@ -486,6 +492,7 @@
+@@ -460,6 +467,7 @@
      .desc = "Standard PC",
-     .init = pc_init_pci,
+     .init = pc_init_pci_1_2,
      .max_cpus = 255,
 +    .default_machine_opts = KVM_MACHINE_OPTIONS,
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_0_15,
          { /* end of list */ }
-@@ -518,6 +525,7 @@
+@@ -493,6 +501,7 @@
      .desc = "Standard PC",
-     .init = pc_init_pci,
+     .init = pc_init_pci_1_2,
      .max_cpus = 255,
 +    .default_machine_opts = KVM_MACHINE_OPTIONS,
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_0_14, 
          {
-@@ -551,6 +559,7 @@
+@@ -527,6 +536,7 @@
      .desc = "Standard PC",
      .init = pc_init_pci_no_kvmclock,
      .max_cpus = 255,
@@ -67,7 +75,7 @@ Index: new/hw/pc_piix.c
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_0_13,
          {
-@@ -588,6 +597,7 @@
+@@ -565,6 +575,7 @@
      .desc = "Standard PC",
      .init = pc_init_pci_no_kvmclock,
      .max_cpus = 255,
@@ -75,7 +83,7 @@ Index: new/hw/pc_piix.c
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_0_12,
          {
-@@ -621,6 +631,7 @@
+@@ -599,6 +610,7 @@
      .desc = "Standard PC, qemu 0.11",
      .init = pc_init_pci_no_kvmclock,
      .max_cpus = 255,
@@ -83,7 +91,7 @@ Index: new/hw/pc_piix.c
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_0_11,
          {
-@@ -642,6 +653,7 @@
+@@ -621,6 +633,7 @@
      .desc = "Standard PC, qemu 0.10",
      .init = pc_init_pci_no_kvmclock,
      .max_cpus = 255,
@@ -91,7 +99,7 @@ Index: new/hw/pc_piix.c
      .compat_props = (GlobalProperty[]) {
          PC_COMPAT_0_11,
          {
-@@ -675,6 +687,7 @@
+@@ -655,6 +668,7 @@
      .desc = "ISA-only PC",
      .init = pc_init_isa,
      .max_cpus = 1,
index 7e1799ef39ab6c2906185eda954b3bb3f2f3a3a3..9ac9a00b2ba39985eb781b3e55da14f9ed9aa9fc 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/qemu-options.hx
 ===================================================================
---- new.orig/qemu-options.hx   2012-11-21 11:11:22.000000000 +0100
-+++ new/qemu-options.hx        2012-11-21 11:25:23.000000000 +0100
+--- new.orig/qemu-options.hx   2013-02-12 12:05:14.000000000 +0100
++++ new/qemu-options.hx        2013-02-12 12:06:20.000000000 +0100
 @@ -103,6 +103,12 @@
  are split equally.
  ETEXI
@@ -17,26 +17,26 @@ Index: new/qemu-options.hx
  DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL)
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2012-11-21 11:11:22.000000000 +0100
-+++ new/vl.c   2012-11-21 11:25:23.000000000 +0100
+--- new.orig/vl.c      2013-02-12 12:05:14.000000000 +0100
++++ new/vl.c   2013-02-12 12:06:20.000000000 +0100
 @@ -154,6 +154,8 @@
  #endif
- #include "qtest.h"
+ #include "sysemu/qtest.h"
  
 +#include "vzsyscalls.h"
 +
- #include "disas.h"
+ #include "disas/disas.h"
  
- #include "qemu_socket.h"
-@@ -205,6 +207,7 @@
- CharDriverState *virtcon_hds[MAX_VIRTIO_CONSOLES];
+ #include "qemu/sockets.h"
+@@ -207,6 +209,7 @@
+ CharDriverState *sclp_hds[MAX_SCLP_CONSOLES];
  int win2k_install_hack = 0;
  int singlestep = 0;
 +int fairsched_id = 0;
  int smp_cpus = 1;
  int max_cpus = 0;
  int smp_cores = 1;
-@@ -2275,7 +2278,7 @@
+@@ -2544,7 +2547,7 @@
  }
  
  static int debugcon_parse(const char *devname)
@@ -45,7 +45,7 @@ Index: new/vl.c
      QemuOpts *opts;
  
      if (!qemu_chr_new("debugcon", devname, NULL)) {
-@@ -2527,6 +2530,9 @@
+@@ -2798,6 +2801,9 @@
  int main(int argc, char **argv, char **envp)
  {
      int i;
@@ -55,7 +55,7 @@ Index: new/vl.c
      int snapshot, linux_boot;
      const char *icount_option = NULL;
      const char *initrd_filename;
-@@ -3306,6 +3312,21 @@
+@@ -3582,6 +3588,21 @@
                      exit(1);
                  }
                  break;
@@ -77,7 +77,7 @@ Index: new/vl.c
            case QEMU_OPTION_vnc:
  #ifdef CONFIG_VNC
                  display_remote++;
-@@ -3377,8 +3398,8 @@
+@@ -3656,8 +3677,8 @@
                        }
                        p += 8;
                        os_set_proc_name(p);
@@ -88,7 +88,7 @@ Index: new/vl.c
                  break;
              case QEMU_OPTION_prom_env:
                  if (nb_prom_envs >= MAX_PROM_ENVS) {
-@@ -3765,6 +3786,39 @@
+@@ -4085,6 +4106,39 @@
          }
      }
  
@@ -131,7 +131,7 @@ Index: new/vl.c
 Index: new/vzsyscalls.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/vzsyscalls.h   2012-11-21 11:25:23.000000000 +0100
++++ new/vzsyscalls.h   2013-02-12 12:06:20.000000000 +0100
 @@ -0,0 +1,47 @@
 +/*
 + *  Copyright (C) 2000-2008, Parallels, Inc. All rights reserved.
index 7a6ad3bdfcbbb05d62172fa70c5df1520331a7ac..ca3c7b350a6c2e9fba23528f75086953213d1508 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/qemu-img.c
 ===================================================================
---- new.orig/qemu-img.c        2012-11-21 11:11:22.000000000 +0100
-+++ new/qemu-img.c     2012-11-21 11:51:19.000000000 +0100
-@@ -1580,7 +1580,9 @@
+--- new.orig/qemu-img.c        2013-02-11 11:06:09.000000000 +0100
++++ new/qemu-img.c     2013-02-11 11:23:17.000000000 +0100
+@@ -1585,7 +1585,9 @@
              error_report("Could not delete snapshot '%s': %d (%s)",
                  snapshot_name, ret, strerror(-ret));
          }
index 6c86de3a6160c58d77baa41a7774c4a80e63639e..c67a97ea497fe31ff449acb79e04dc1c53b25578 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/qapi-schema.json
 ===================================================================
---- new.orig/qapi-schema.json  2012-11-23 07:30:15.000000000 +0100
-+++ new/qapi-schema.json       2012-11-23 07:31:44.000000000 +0100
-@@ -461,6 +461,40 @@
+--- new.orig/qapi-schema.json  2013-02-12 12:05:14.000000000 +0100
++++ new/qapi-schema.json       2013-02-12 12:07:05.000000000 +0100
+@@ -528,6 +528,40 @@
             '*downtime': 'int'} }
  
  ##
@@ -43,7 +43,7 @@ Index: new/qapi-schema.json
  # @query-migrate
  #
  # Returns information about current migration process.
-@@ -2902,6 +2936,14 @@
+@@ -2965,6 +2999,14 @@
  ##
  { 'command': 'query-target', 'returns': 'TargetInfo' }
  
@@ -60,12 +60,13 @@ Index: new/qapi-schema.json
  #
 Index: new/qmp-commands.hx
 ===================================================================
---- new.orig/qmp-commands.hx   2012-11-23 07:30:15.000000000 +0100
-+++ new/qmp-commands.hx        2012-11-23 07:31:44.000000000 +0100
-@@ -2654,3 +2654,34 @@
-         .args_type  = "",
-         .mhandler.cmd_new = qmp_marshal_input_query_target,
-     },
+--- new.orig/qmp-commands.hx   2013-02-12 12:05:14.000000000 +0100
++++ new/qmp-commands.hx        2013-02-12 12:07:05.000000000 +0100
+@@ -2775,3 +2775,34 @@
+ <- { "return": {} }
+ EQMP
++
 +
 +    {
 +        .name       = "savevm-start",
@@ -96,14 +97,13 @@ Index: new/qmp-commands.hx
 +        .args_type  = "",
 +        .mhandler.cmd_new = qmp_marshal_input_query_savevm,
 +    },
-+
 Index: new/hmp.c
 ===================================================================
---- new.orig/hmp.c     2012-11-23 07:30:15.000000000 +0100
-+++ new/hmp.c  2012-11-23 07:31:44.000000000 +0100
-@@ -1335,3 +1335,60 @@
-     qmp_nbd_server_stop(&errp);
-     hmp_handle_error(mon, &errp);
+--- new.orig/hmp.c     2013-02-12 12:05:14.000000000 +0100
++++ new/hmp.c  2013-02-12 12:07:05.000000000 +0100
+@@ -1379,3 +1379,60 @@
+     qmp_chardev_remove(qdict_get_str(qdict, "id"), &local_err);
+     hmp_handle_error(mon, &local_err);
  }
 +
 +void hmp_savevm_start(Monitor *mon, const QDict *qdict)
@@ -143,7 +143,7 @@ Index: new/hmp.c
 +    hmp_handle_error(mon, &errp);
 +}
 +
-+void hmp_info_savevm(Monitor *mon)
++void hmp_info_savevm(Monitor *mon, const QDict *qdict)
 +{
 +    SaveVMInfo *info;
 +    info = qmp_query_savevm(NULL);
@@ -164,17 +164,17 @@ Index: new/hmp.c
 +}
 Index: new/hmp.h
 ===================================================================
---- new.orig/hmp.h     2012-11-23 07:30:15.000000000 +0100
-+++ new/hmp.h  2012-11-23 07:31:44.000000000 +0100
+--- new.orig/hmp.h     2013-02-12 12:05:14.000000000 +0100
++++ new/hmp.h  2013-02-12 12:07:05.000000000 +0100
 @@ -25,6 +25,7 @@
- void hmp_info_uuid(Monitor *mon);
- void hmp_info_chardev(Monitor *mon);
- void hmp_info_mice(Monitor *mon);
-+void hmp_info_savevm(Monitor *mon);
- void hmp_info_migrate(Monitor *mon);
- void hmp_info_migrate_capabilities(Monitor *mon);
- void hmp_info_migrate_cache_size(Monitor *mon);
-@@ -75,6 +76,10 @@
+ void hmp_info_uuid(Monitor *mon, const QDict *qdict);
+ void hmp_info_chardev(Monitor *mon, const QDict *qdict);
+ void hmp_info_mice(Monitor *mon, const QDict *qdict);
++void hmp_info_savevm(Monitor *mon, const QDict *qdict);
+ void hmp_info_migrate(Monitor *mon, const QDict *qdict);
+ void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict);
+ void hmp_info_migrate_cache_size(Monitor *mon, const QDict *qdict);
+@@ -77,6 +78,10 @@
  void hmp_netdev_del(Monitor *mon, const QDict *qdict);
  void hmp_getfd(Monitor *mon, const QDict *qdict);
  void hmp_closefd(Monitor *mon, const QDict *qdict);
@@ -187,9 +187,9 @@ Index: new/hmp.h
  void hmp_nbd_server_start(Monitor *mon, const QDict *qdict);
 Index: new/hmp-commands.hx
 ===================================================================
---- new.orig/hmp-commands.hx   2012-11-23 07:30:15.000000000 +0100
-+++ new/hmp-commands.hx        2012-11-23 07:31:44.000000000 +0100
-@@ -1562,6 +1562,8 @@
+--- new.orig/hmp-commands.hx   2013-02-12 12:05:14.000000000 +0100
++++ new/hmp-commands.hx        2013-02-12 12:07:05.000000000 +0100
+@@ -1634,6 +1634,8 @@
  show current migration capabilities
  @item info migrate_cache_size
  show current migration XBZRLE cache size
@@ -198,7 +198,7 @@ Index: new/hmp-commands.hx
  @item info balloon
  show balloon information
  @item info qtree
-@@ -1581,3 +1583,35 @@
+@@ -1653,3 +1655,35 @@
  STEXI
  @end table
  ETEXI
@@ -237,16 +237,16 @@ Index: new/hmp-commands.hx
 Index: new/savevm-async.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/savevm-async.c 2012-11-23 07:32:48.000000000 +0100
-@@ -0,0 +1,458 @@
-+#include "qemu-common.h"
-+#include "qerror.h"
-+#include "sysemu.h"
++++ new/savevm-async.c 2013-02-12 12:07:05.000000000 +0100
+@@ -0,0 +1,459 @@
++#include "include/qemu-common.h"
++#include "include/qapi/qmp/qerror.h"
++#include "include/sysemu/sysemu.h"
 +#include "qmp-commands.h"
-+#include "blockdev.h"
-+#include "qemu/qom-qobject.h"
-+#include "buffered_file.h"
-+#include "migration.h"
++#include "include/migration/qemu-file.h"
++#include "include/sysemu/blockdev.h"
++#include "include/qom/qom-qobject.h"
++#include "include/migration/migration.h"
 +
 +/* #define DEBUG_SAVEVM_STATE */
 +
@@ -395,7 +395,6 @@ Index: new/savevm-async.c
 +static void process_savevm_co(void *opaque)
 +{
 +    int ret;
-+    uint64_t remaining;
 +    int64_t maxlen;
 +    MigrationParams params = {
 +        .blk = 0,
@@ -411,40 +410,42 @@ Index: new/savevm-async.c
 +    }
 +
 +    while (snap_state.state == SAVE_STATE_ACTIVE) {
-+
-+        ret = qemu_savevm_state_iterate(snap_state.file);
-+        remaining = ram_bytes_remaining();
-+
-+        DPRINTF("savevm inerate %zd %d\n", remaining, ret);
-+
-+        if (ret < 0) {
-+            save_snapshot_error("qemu_savevm_state_iterate error %d", ret);
-+            return;
-+        }
-+
-+        /* stop the VM if we get to the end of available space,
-+         * or if remaining is just a few MB
-+         */
-+        maxlen = bdrv_getlength(snap_state.bs) - 30*1024*1024;
-+        if ((remaining < 100000) ||
-+            ((snap_state.bs_pos + remaining) >= maxlen)) {
-+            if (runstate_is_running()) {
-+                vm_stop(RUN_STATE_SAVE_VM);
-+            }
-+        }
-+
-+        if (ret == 1) { /* finished */
++        uint64_t pending_size;
++
++        pending_size = qemu_savevm_state_pending(snap_state.file, 0);
++
++        if (pending_size) {
++                ret = qemu_savevm_state_iterate(snap_state.file);
++                if (ret < 0) {
++                    save_snapshot_error("qemu_savevm_state_iterate error %d", ret);
++                    break;
++                }
++                DPRINTF("savevm inerate pending size %lu ret %d\n", pending_size, ret);
++        } else {
++            DPRINTF("done iterating\n");
 +            if (runstate_is_running()) {
 +                vm_stop(RUN_STATE_SAVE_VM);
 +            }
 +            DPRINTF("savevm inerate finished\n");
-+            if ((ret = qemu_savevm_state_complete(snap_state.file)) < 0) {
++            ret = qemu_savevm_state_complete(snap_state.file);
++            if (ret < 0) {
 +                save_snapshot_error("qemu_savevm_state_complete error %d", ret);
-+                return;
++                break;
 +            } else {
 +                DPRINTF("save complete\n");
 +                save_snapshot_completed();
-+                return;
++                break;
++            }
++        }
++
++        /* stop the VM if we get to the end of available space,
++         * or if pending_size is just a few MB
++         */
++        maxlen = bdrv_getlength(snap_state.bs) - 30*1024*1024;
++        if ((pending_size < 100000) ||
++            ((snap_state.bs_pos + pending_size) >= maxlen)) {
++            if (runstate_is_running()) {
++                vm_stop(RUN_STATE_SAVE_VM);
 +            }
 +        }
 +    }
@@ -699,33 +700,21 @@ Index: new/savevm-async.c
 +}
 Index: new/Makefile.objs
 ===================================================================
---- new.orig/Makefile.objs     2012-11-23 07:30:15.000000000 +0100
-+++ new/Makefile.objs  2012-11-23 07:31:44.000000000 +0100
-@@ -84,6 +84,7 @@
- common-obj-y += block-migration.o iohandler.o
- common-obj-y += bitmap.o bitops.o
- common-obj-y += page_cache.o
+--- new.orig/Makefile.objs     2013-02-12 12:05:14.000000000 +0100
++++ new/Makefile.objs  2013-02-12 12:07:05.000000000 +0100
+@@ -60,6 +60,7 @@
+ common-obj-y += qemu-char.o #aio.o
+ common-obj-y += block-migration.o
+ common-obj-y += page_cache.o xbzrle.o
 +common-obj-y += savevm-async.o
  
  common-obj-$(CONFIG_POSIX) += migration-exec.o migration-unix.o migration-fd.o
- common-obj-$(CONFIG_WIN32) += version.o
-Index: new/sysemu.h
-===================================================================
---- new.orig/sysemu.h  2012-11-23 07:30:15.000000000 +0100
-+++ new/sysemu.h       2012-11-23 07:31:44.000000000 +0100
-@@ -67,6 +67,7 @@
- void do_savevm(Monitor *mon, const QDict *qdict);
- int load_vmstate(const char *name);
-+int load_state_from_blockdev(const char *filename);
- void do_delvm(Monitor *mon, const QDict *qdict);
- void do_info_snapshots(Monitor *mon);
  
 Index: new/qemu-options.hx
 ===================================================================
---- new.orig/qemu-options.hx   2012-11-23 07:31:24.000000000 +0100
-+++ new/qemu-options.hx        2012-11-23 07:31:44.000000000 +0100
-@@ -2575,6 +2575,19 @@
+--- new.orig/qemu-options.hx   2013-02-12 12:06:20.000000000 +0100
++++ new/qemu-options.hx        2013-02-12 12:07:05.000000000 +0100
+@@ -2605,6 +2605,19 @@
  Start right away with a saved state (@code{loadvm} in monitor)
  ETEXI
  
@@ -747,9 +736,9 @@ Index: new/qemu-options.hx
      "-daemonize      daemonize QEMU after initializing\n", QEMU_ARCH_ALL)
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2012-11-23 07:31:29.000000000 +0100
-+++ new/vl.c   2012-11-23 07:31:44.000000000 +0100
-@@ -2545,6 +2545,7 @@
+--- new.orig/vl.c      2013-02-12 12:06:40.000000000 +0100
++++ new/vl.c   2013-02-12 12:07:05.000000000 +0100
+@@ -2816,6 +2816,7 @@
      int optind;
      const char *optarg;
      const char *loadvm = NULL;
@@ -757,7 +746,7 @@ Index: new/vl.c
      QEMUMachine *machine;
      const char *cpu_model;
      const char *vga_model = "none";
-@@ -3185,6 +3186,9 @@
+@@ -3466,6 +3467,9 @@
            case QEMU_OPTION_loadvm:
                loadvm = optarg;
                break;
@@ -767,7 +756,7 @@ Index: new/vl.c
              case QEMU_OPTION_full_screen:
                  full_screen = 1;
                  break;
-@@ -4038,6 +4042,10 @@
+@@ -4361,6 +4365,10 @@
          if (load_vmstate(loadvm) < 0) {
              autostart = 0;
          }
@@ -780,19 +769,31 @@ Index: new/vl.c
      if (incoming) {
 Index: new/monitor.c
 ===================================================================
---- new.orig/monitor.c 2012-11-23 07:30:15.000000000 +0100
-+++ new/monitor.c      2012-11-23 07:31:44.000000000 +0100
-@@ -2701,6 +2701,13 @@
-         .mhandler.info = hmp_info_migrate_cache_size,
+--- new.orig/monitor.c 2013-02-12 12:05:14.000000000 +0100
++++ new/monitor.c      2013-02-12 12:07:05.000000000 +0100
+@@ -2687,6 +2687,13 @@
+         .mhandler.cmd = hmp_info_migrate_cache_size,
      },
      {
 +        .name       = "savevm",
 +        .args_type  = "",
 +        .params     = "",
 +        .help       = "show savevm status",
-+        .mhandler.info = hmp_info_savevm,
++        .mhandler.cmd = hmp_info_savevm,
 +    },
 +    {
          .name       = "balloon",
          .args_type  = "",
          .params     = "",
+Index: new/include/sysemu/sysemu.h
+===================================================================
+--- new.orig/include/sysemu/sysemu.h   2013-02-12 12:05:14.000000000 +0100
++++ new/include/sysemu/sysemu.h        2013-02-12 12:07:05.000000000 +0100
+@@ -67,6 +67,7 @@
+ void do_savevm(Monitor *mon, const QDict *qdict);
+ int load_vmstate(const char *name);
++int load_state_from_blockdev(const char *filename);
+ void do_delvm(Monitor *mon, const QDict *qdict);
+ void do_info_snapshots(Monitor *mon, const QDict *qdict);
index 8a659e2f8a9ef41ba0c883974840b8fe2aa07955..27b276a770bf63e78ee6ce18ef16bd301ac94153 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/ui/vnc.c
 ===================================================================
---- new.orig/ui/vnc.c  2012-11-21 11:11:22.000000000 +0100
-+++ new/ui/vnc.c       2012-11-21 11:25:33.000000000 +0100
-@@ -1497,6 +1497,10 @@
+--- new.orig/ui/vnc.c  2013-02-11 11:06:09.000000000 +0100
++++ new/ui/vnc.c       2013-02-11 11:18:28.000000000 +0100
+@@ -1540,6 +1540,10 @@
  
  static void do_key_event(VncState *vs, int down, int keycode, int sym)
  {
@@ -13,7 +13,7 @@ Index: new/ui/vnc.c
      /* QEMU console switch */
      switch(keycode) {
      case 0x2a:                          /* Left Shift */
-@@ -1567,12 +1571,42 @@
+@@ -1610,12 +1614,42 @@
      }
  
      if (is_graphic_console()) {
@@ -56,7 +56,7 @@ Index: new/ui/vnc.c
      } else {
          bool numlock = vs->modifiers_state[0x45];
          bool control = (vs->modifiers_state[0x1d] ||
-@@ -1709,7 +1743,8 @@
+@@ -1752,7 +1786,8 @@
          lsym = lsym - 'A' + 'a';
      }
  
index 33e6357352a90fe1677fb4dd370e3240ff4d91fd..0cb7d488ad539c04876c49f420a1f77fcab9f661 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/block.c
 ===================================================================
---- new.orig/block.c   2012-11-21 11:11:22.000000000 +0100
-+++ new/block.c        2012-11-21 11:51:35.000000000 +0100
-@@ -3137,6 +3137,28 @@
+--- new.orig/block.c   2013-02-12 12:05:14.000000000 +0100
++++ new/block.c        2013-02-12 12:06:52.000000000 +0100
+@@ -3162,6 +3162,28 @@
      return -ENOTSUP;
  }
  
@@ -31,11 +31,11 @@ Index: new/block.c
  int bdrv_snapshot_load_tmp(BlockDriverState *bs,
          const char *snapshot_name)
  {
-Index: new/block.h
+Index: new/include/block/block.h
 ===================================================================
---- new.orig/block.h   2012-11-21 11:11:22.000000000 +0100
-+++ new/block.h        2012-11-21 11:51:35.000000000 +0100
-@@ -327,6 +327,8 @@
+--- new.orig/include/block/block.h     2013-02-12 12:05:14.000000000 +0100
++++ new/include/block/block.h  2013-02-12 12:06:52.000000000 +0100
+@@ -331,6 +331,8 @@
  int bdrv_snapshot_delete(BlockDriverState *bs, const char *snapshot_id);
  int bdrv_snapshot_list(BlockDriverState *bs,
                         QEMUSnapshotInfo **psn_info);
@@ -46,9 +46,9 @@ Index: new/block.h
  char *bdrv_snapshot_dump(char *buf, int buf_size, QEMUSnapshotInfo *sn);
 Index: new/savevm.c
 ===================================================================
---- new.orig/savevm.c  2012-11-21 11:11:22.000000000 +0100
-+++ new/savevm.c       2012-11-21 11:51:35.000000000 +0100
-@@ -2061,28 +2061,6 @@
+--- new.orig/savevm.c  2013-02-12 12:05:14.000000000 +0100
++++ new/savevm.c       2013-02-12 12:06:52.000000000 +0100
+@@ -2055,28 +2055,6 @@
      return ret;
  }
  
index 241cd79e9303682167e39441100ba8f94e24a895..e4800645445df308a60069abeb535a8398be5db9 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/ui/vnc.c
 ===================================================================
---- new.orig/ui/vnc.c  2012-11-21 11:25:33.000000000 +0100
-+++ new/ui/vnc.c       2012-11-21 11:32:25.000000000 +0100
+--- new.orig/ui/vnc.c  2013-02-12 12:06:38.000000000 +0100
++++ new/ui/vnc.c       2013-02-12 12:06:40.000000000 +0100
 @@ -43,6 +43,125 @@
  #include "vnc_keysym.h"
  #include "d3des.h"
@@ -128,7 +128,7 @@ Index: new/ui/vnc.c
  static VncDisplay *vnc_display; /* needed for info vnc */
  static DisplayChangeListener *dcl;
  
-@@ -1982,7 +2101,7 @@
+@@ -2025,7 +2144,7 @@
          vnc_write_u8(vs, VNC_MSG_SERVER_FRAMEBUFFER_UPDATE);
          vnc_write_u8(vs, 0);
          vnc_write_u16(vs, 1); /* number of rects */
@@ -137,7 +137,7 @@ Index: new/ui/vnc.c
                                 ds_get_height(vs->ds), VNC_ENCODING_WMVi);
          pixel_format_message(vs);
          vnc_unlock_output(vs);
-@@ -2892,7 +3011,7 @@
+@@ -2989,7 +3108,7 @@
  char *vnc_display_local_addr(DisplayState *ds)
  {
      VncDisplay *vs = ds ? (VncDisplay *)ds->opaque : vnc_display;
@@ -146,7 +146,7 @@ Index: new/ui/vnc.c
      return vnc_socket_local_addr("%s:%s", vs->lsock);
  }
  
-@@ -2950,6 +3069,7 @@
+@@ -3077,6 +3196,7 @@
              tls = 1; /* Require TLS */
          } else if (strncmp(options, "x509", 4) == 0) {
              char *start, *end;
@@ -154,7 +154,7 @@ Index: new/ui/vnc.c
              x509 = 1; /* Require x509 certificates */
              if (strncmp(options, "x509verify", 10) == 0)
                  vs->tls.x509verify = 1; /* ...and verify client certs */
-@@ -2970,8 +3090,10 @@
+@@ -3097,8 +3217,10 @@
                  }
                  g_free(path);
              } else {
@@ -167,7 +167,7 @@ Index: new/ui/vnc.c
              }
  #endif
  #if defined(CONFIG_VNC_TLS) || defined(CONFIG_VNC_SASL)
-@@ -3035,10 +3157,10 @@
+@@ -3162,10 +3284,10 @@
              vs->auth = VNC_AUTH_VENCRYPT;
              if (x509) {
                  VNC_DEBUG("Initializing VNC server with x509 password auth\n");
@@ -182,8 +182,8 @@ Index: new/ui/vnc.c
  #endif /* CONFIG_VNC_TLS */
 Index: new/ui/vnc-auth-vencrypt.c
 ===================================================================
---- new.orig/ui/vnc-auth-vencrypt.c    2012-11-21 11:11:22.000000000 +0100
-+++ new/ui/vnc-auth-vencrypt.c 2012-11-21 11:26:06.000000000 +0100
+--- new.orig/ui/vnc-auth-vencrypt.c    2013-02-12 12:05:14.000000000 +0100
++++ new/ui/vnc-auth-vencrypt.c 2013-02-12 12:06:40.000000000 +0100
 @@ -25,7 +25,107 @@
   */
  
@@ -307,9 +307,9 @@ Index: new/ui/vnc-auth-vencrypt.c
         VNC_DEBUG("Start TLS auth VNC\n");
 Index: new/ui/vnc.h
 ===================================================================
---- new.orig/ui/vnc.h  2012-11-21 11:11:22.000000000 +0100
-+++ new/ui/vnc.h       2012-11-21 11:26:06.000000000 +0100
-@@ -264,6 +264,8 @@
+--- new.orig/ui/vnc.h  2013-02-12 12:05:14.000000000 +0100
++++ new/ui/vnc.h       2013-02-12 12:06:40.000000000 +0100
+@@ -272,6 +272,8 @@
      char challenge[VNC_AUTH_CHALLENGE_SIZE];
  #ifdef CONFIG_VNC_TLS
      int subauth; /* Used by VeNCrypt */
@@ -318,7 +318,7 @@ Index: new/ui/vnc.h
      VncStateTLS tls;
  #endif
  #ifdef CONFIG_VNC_SASL
-@@ -560,4 +562,6 @@
+@@ -581,4 +583,6 @@
  int vnc_zywrle_send_framebuffer_update(VncState *vs, int x, int y, int w, int h);
  void vnc_zrle_clear(VncState *vs);
  
@@ -327,8 +327,8 @@ Index: new/ui/vnc.h
  #endif /* __QEMU_VNC_H */
 Index: new/ui/vnc-tls.c
 ===================================================================
---- new.orig/ui/vnc-tls.c      2012-11-21 11:11:22.000000000 +0100
-+++ new/ui/vnc-tls.c   2012-11-21 11:26:06.000000000 +0100
+--- new.orig/ui/vnc-tls.c      2013-02-12 12:05:14.000000000 +0100
++++ new/ui/vnc-tls.c   2013-02-12 12:06:40.000000000 +0100
 @@ -302,6 +302,14 @@
  
  static int vnc_set_gnutls_priority(gnutls_session_t s, int x509)
@@ -383,8 +383,8 @@ Index: new/ui/vnc-tls.c
                                 const char *certdir)
 Index: new/ui/vnc-tls.h
 ===================================================================
---- new.orig/ui/vnc-tls.h      2012-11-21 11:11:22.000000000 +0100
-+++ new/ui/vnc-tls.h   2012-11-21 11:26:06.000000000 +0100
+--- new.orig/ui/vnc-tls.h      2013-02-12 12:05:14.000000000 +0100
++++ new/ui/vnc-tls.h   2013-02-12 12:06:40.000000000 +0100
 @@ -68,6 +68,8 @@
  
  int vnc_tls_validate_certificate(VncState *vs);
@@ -396,9 +396,9 @@ Index: new/ui/vnc-tls.h
  
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2012-11-21 11:25:23.000000000 +0100
-+++ new/vl.c   2012-11-21 11:26:06.000000000 +0100
-@@ -3319,6 +3319,7 @@
+--- new.orig/vl.c      2013-02-12 12:06:20.000000000 +0100
++++ new/vl.c   2013-02-12 12:06:40.000000000 +0100
+@@ -3595,6 +3595,7 @@
                    fprintf(stderr, "Invalid ID\n");
                    exit(1);
                }
@@ -406,11 +406,11 @@ Index: new/vl.c
                  break;
              case QEMU_OPTION_cpuunits:
                  cpuunits = atoi(optarg);
-Index: new/console.h
+Index: new/include/ui/console.h
 ===================================================================
---- new.orig/console.h 2012-11-21 11:11:22.000000000 +0100
-+++ new/console.h      2012-11-21 11:26:06.000000000 +0100
-@@ -448,6 +448,7 @@
+--- new.orig/include/ui/console.h      2013-02-12 12:05:14.000000000 +0100
++++ new/include/ui/console.h   2013-02-12 12:06:40.000000000 +0100
+@@ -457,6 +457,7 @@
  void cocoa_display_init(DisplayState *ds, int full_screen);
  
  /* vnc.c */
index 6bd1d434984b0019c7fcbb95907a27d02050b9bf..cae8a260c1b9ad401cdfc3ac356343643de85899 100644 (file)
@@ -11,9 +11,9 @@ Signed-off-by: Alexandre Derumier <aderumier@odiso.com>
 
 Index: new/qemu-img.c
 ===================================================================
---- new.orig/qemu-img.c        2012-11-21 11:51:19.000000000 +0100
-+++ new/qemu-img.c     2012-11-21 12:45:10.000000000 +0100
-@@ -660,7 +660,7 @@
+--- new.orig/qemu-img.c        2013-02-11 12:01:06.000000000 +0100
++++ new/qemu-img.c     2013-02-11 12:12:34.000000000 +0100
+@@ -665,7 +665,7 @@
  
  static int img_convert(int argc, char **argv)
  {
@@ -22,7 +22,7 @@ Index: new/qemu-img.c
      int progress = 0, flags;
      const char *fmt, *out_fmt, *cache, *out_baseimg, *out_filename;
      BlockDriver *drv, *proto_drv;
-@@ -682,8 +682,9 @@
+@@ -687,8 +687,9 @@
      cache = "unsafe";
      out_baseimg = NULL;
      compress = 0;
@@ -33,7 +33,7 @@ Index: new/qemu-img.c
          if (c == -1) {
              break;
          }
-@@ -704,6 +705,9 @@
+@@ -709,6 +710,9 @@
          case 'c':
              compress = 1;
              break;
@@ -43,7 +43,7 @@ Index: new/qemu-img.c
          case 'e':
              error_report("option -e is deprecated, please use \'-o "
                    "encryption\' instead!");
-@@ -864,20 +868,22 @@
+@@ -869,20 +873,22 @@
          }
      }
  
index e395d15fdffdfcbf2d343495ab377fb9d6a5d724..2dcd84b364f832d8bf3a866ca60b5b7490ae49d7 100644 (file)
@@ -4,7 +4,6 @@ fairsched.diff
 keymap.diff
 pve-auth.patch
 vencrypt-auth-plain.patch
-ahci-add_migration-support.patch
 fix-qemu-img-snapshot-removal.patch
 move-bdrv-snapshot-find.patch
 internal-snapshot-async.patch
@@ -16,9 +15,5 @@ enable-kvm-by-default.patch
 0003-add-backup-related-monitor-commands.patch
 0004-introduce-new-vma-archive-format.patch
 0005-add-regression-tests-for-backup.patch
-0006-add-vm-state-to-backups.patch
-virtio-balloon-drop-old-stats-code.patch
-virtio-balloon-re-enable-balloon-stats.patch
-virtio-balloon-document-stats.patch
-virtio-balloon-fix-query.patch
-always-update-expected-downtime.patch
+#0006-add-vm-state-to-backups.patch
+# always-update-expected-downtime.patch
index d8844e4412ad2b321bdc865470b284aa6076f73b..5adbc331c1c4c0f325d3704a459f3436f1633712 100644 (file)
@@ -1,7 +1,16 @@
 Index: new/ui/vnc-auth-vencrypt.c
 ===================================================================
---- new.orig/ui/vnc-auth-vencrypt.c    2012-09-24 07:15:24.000000000 +0200
-+++ new/ui/vnc-auth-vencrypt.c 2012-09-24 07:15:27.000000000 +0200
+--- new.orig/ui/vnc-auth-vencrypt.c    2013-02-11 11:18:48.000000000 +0100
++++ new/ui/vnc-auth-vencrypt.c 2013-02-11 11:54:47.000000000 +0100
+@@ -25,7 +25,7 @@
+  */
+ #include "vnc.h"
+-#include "qemu_socket.h"
++#include "qemu/sockets.h"
+ static int protocol_client_auth_plain(VncState *vs, uint8_t *data, size_t len)
+ {
 @@ -143,6 +143,11 @@
         vnc_read_when(vs, protocol_client_auth_plain_start, 8);
         break;
index 6cfa98e6b3333b7eb41153bbfec7e162e253f32b..762159dded322c8c827d9c9b7fdd32184a11ac56 100755 (executable)
@@ -33,7 +33,7 @@ endif
 config.status: configure
        dh_testdir
        # Add here commands to configure the package.
-       ./configure --with-confsuffix="/kvm" --target-list=x86_64-softmmu --prefix=/usr --datadir=/usr/share --docdir=/usr/share/doc/pve-qemu-kvm --sysconfdir=/etc --disable-xen --enable-vnc-tls --enable-sdl --enable-uuid --enable-linux-aio --enable-rbd --enable-libiscsi --audio-drv-list="alsa"
+       ./configure --with-confsuffix="/kvm" --target-list=x86_64-softmmu --prefix=/usr --datadir=/usr/share --docdir=/usr/share/doc/pve-qemu-kvm --sysconfdir=/etc --disable-xen --enable-vnc-tls --enable-sdl --enable-uuid --enable-linux-aio --enable-rbd --enable-libiscsi --disable-smartcard-nss --audio-drv-list="alsa"
 
 build: patch build-stamp
 
index 3b4e85ff75e2357457188eb008e791a065dbca2b..f7a9938aca6e220bea7315a9b2812ce9fa6306d9 100644 (file)
Binary files a/qemu-kvm-src.tar.gz and b/qemu-kvm-src.tar.gz differ