]> git.proxmox.com Git - pve-qemu-kvm.git/blobdiff - debian/patches/0004-introduce-new-vma-archive-format.patch
update backup patches - removed threaded code
[pve-qemu-kvm.git] / debian / patches / 0004-introduce-new-vma-archive-format.patch
index 5be20d37c97f68c769c0618b7ebb4660cde3b969..0f07c018f4b8988bdf00eee8331c31ba1ee6cb52 100644 (file)
@@ -1,7 +1,7 @@
-From 69a3f26bdbe445ce01f096b9d5e1aaf45ad98b81 Mon Sep 17 00:00:00 2001
+From bb18514bdcb93d9b2906bfb2a8aa9fd6c2265710 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/7] introduce new vma archive format
+Subject: [PATCH v3 4/6] introduce new vma archive format
 
 This is a very simple archive format, see docs/specs/vma_spec.txt
 
@@ -11,11 +11,11 @@ Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
  Makefile.objs           |    2 +-
  blockdev.c              |    6 +-
  docs/specs/vma_spec.txt |   24 ++
- vma-reader.c            |  801 ++++++++++++++++++++++++++++++++++++++++
- vma-writer.c            |  931 +++++++++++++++++++++++++++++++++++++++++++++++
- vma.c                   |  561 ++++++++++++++++++++++++++++
- vma.h                   |  146 ++++++++
- 8 files changed, 2470 insertions(+), 4 deletions(-)
+ vma-reader.c            |  801 +++++++++++++++++++++++++++++++++++++++++
+ vma-writer.c            |  914 +++++++++++++++++++++++++++++++++++++++++++++++
+ vma.c                   |  561 +++++++++++++++++++++++++++++
+ vma.h                   |  145 ++++++++
+ 8 files changed, 2452 insertions(+), 4 deletions(-)
  create mode 100644 docs/specs/vma_spec.txt
  create mode 100644 vma-reader.c
  create mode 100644 vma-writer.c
@@ -57,7 +57,7 @@ index cb46be5..b5732e2 100644
  block-obj-$(CONFIG_POSIX) += event_notifier-posix.o aio-posix.o
  block-obj-$(CONFIG_WIN32) += event_notifier-win32.o aio-win32.o
 diff --git a/blockdev.c b/blockdev.c
-index 37edb75..0632c57 100644
+index bd2198e..99f3e02 100644
 --- a/blockdev.c
 +++ b/blockdev.c
 @@ -21,6 +21,7 @@
@@ -68,7 +68,7 @@ index 37edb75..0632c57 100644
  
  static QTAILQ_HEAD(drivelist, DriveInfo) drives = QTAILQ_HEAD_INITIALIZER(drives);
  
-@@ -1507,10 +1508,11 @@ char *qmp_backup(const char *backupfile, bool has_format, BackupFormat format,
+@@ -1508,10 +1509,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;
  
@@ -921,10 +921,10 @@ index 0000000..2217a94
 +
 diff --git a/vma-writer.c b/vma-writer.c
 new file mode 100644
-index 0000000..688af4b
+index 0000000..3f5bbd5
 --- /dev/null
 +++ b/vma-writer.c
-@@ -0,0 +1,931 @@
+@@ -0,0 +1,914 @@
 +/*
 + * VMA: Virtual Machine Archive
 + *
@@ -953,7 +953,6 @@ index 0000000..688af4b
 +#include "qemu_socket.h"
 +#include "qemu-coroutine.h"
 +#include "qemu-aio.h"
-+#include "qemu/ratelimit.h"
 +#include "vma.h"
 +#include "block.h"
 +#include "monitor.h"
@@ -995,7 +994,6 @@ index 0000000..688af4b
 +    CoMutex writer_lock;
 +    CoMutex flush_lock;
 +    Coroutine *co_writer;
-+    RateLimit limit;
 +
 +    /* drive informations */
 +    VmaStreamInfo stream_info[256];
@@ -1283,8 +1281,7 @@ index 0000000..688af4b
 +    return bytes;
 +}
 +
-+VmaWriter *vma_writer_create(const char *filename, uuid_t uuid, int64_t speed,
-+                             Error **errp)
++VmaWriter *vma_writer_create(const char *filename, uuid_t uuid, Error **errp)
 +{
 +    const char *p;
 +
@@ -1349,12 +1346,6 @@ index 0000000..688af4b
 +
 +    uuid_copy(vmaw->uuid, uuid);
 +
-+    if (speed <= 0) {
-+        speed = 10*1024*1024*1024LLU; /* default 10GB/s */
-+    }
-+
-+    ratelimit_set_speed(&vmaw->limit, speed, 100000000ULL /* 0.1 sec */);
-+
 +    return vmaw;
 +
 +err:
@@ -1584,13 +1575,6 @@ index 0000000..688af4b
 +
 +    qemu_co_mutex_lock(&vmaw->flush_lock);
 +
-+    /* rate limit */
-+    uint64_t delay_ns = ratelimit_calculate_delay(&vmaw->limit, bytes);
-+    if (delay_ns) {
-+        DPRINTF("DELAY %zd\n", delay_ns);
-+        co_sleep_ns(rt_clock, delay_ns);
-+    }
-+
 +    /* wait until buffer is available */
 +    while (vmaw->outbuf_count >= (VMA_BLOCKS_PER_EXTENT - 1)) {
 +        ret = vma_writer_flush(vmaw);
@@ -1840,10 +1824,9 @@ index 0000000..688af4b
 +    return vma_writer_add_config(vmaw, name, data, data_len);
 +}
 +
-+static void *vma_open_cb(const char *filename, uuid_t uuid, int64_t speed,
-+                         Error **errp)
++static void *vma_open_cb(const char *filename, uuid_t uuid, Error **errp)
 +{
-+    return vma_writer_create(filename, uuid, speed, errp);
++    return vma_writer_create(filename, uuid, errp);
 +}
 +
 +const BackupDriver backup_vma_driver = {
@@ -1858,7 +1841,7 @@ index 0000000..688af4b
 +
 diff --git a/vma.c b/vma.c
 new file mode 100644
-index 0000000..9b47b92
+index 0000000..5d13906
 --- /dev/null
 +++ b/vma.c
 @@ -0,0 +1,561 @@
@@ -2277,7 +2260,7 @@ index 0000000..9b47b92
 +    uuid_generate(uuid);
 +
 +    Error *local_err = NULL;
-+    VmaWriter *vmaw = vma_writer_create(archivename, uuid, 0, &local_err);
++    VmaWriter *vmaw = vma_writer_create(archivename, uuid, &local_err);
 +
 +    if (vmaw == NULL) {
 +        g_error("%s", error_get_pretty(local_err));
@@ -2328,7 +2311,7 @@ index 0000000..9b47b92
 +        bcb->dev_id = dev_id;
 +
 +        if (backup_job_create(bs, backup_dump_cb, backup_complete_cb, 
-+                            bcb) < 0) {
++                            bcb, 0) < 0) {
 +            unlink(archivename);
 +            g_error("backup_job_start failed");
 +        } else {
@@ -2425,10 +2408,10 @@ index 0000000..9b47b92
 +}
 diff --git a/vma.h b/vma.h
 new file mode 100644
-index 0000000..689e639
+index 0000000..76d0dc8
 --- /dev/null
 +++ b/vma.h
-@@ -0,0 +1,146 @@
+@@ -0,0 +1,145 @@
 +/*
 + * VMA: Virtual Machine Archive
 + *
@@ -2544,8 +2527,7 @@ index 0000000..689e639
 +
 +extern const BackupDriver backup_vma_driver;
 +
-+VmaWriter *vma_writer_create(const char *filename, uuid_t uuid, int64_t speed,
-+                             Error **errp);
++VmaWriter *vma_writer_create(const char *filename, uuid_t uuid, Error **errp);
 +int vma_writer_close(VmaWriter *vmaw, Error **errp);
 +void vma_writer_destroy(VmaWriter *vmaw);
 +int vma_writer_add_config(VmaWriter *vmaw, const char *name, gpointer data,