Re: [PATCH 27/32] qemublocktest: Add 'basic' tests for commit bitmap handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 6/15/20 12:10 PM, Peter Krempa wrote:
In the 'basic case we have few bitmaps in only the top layer. Simulate

stray or missing '

commit into the backing of the top layer and also 2 levels deep.

Signed-off-by: Peter Krempa <pkrempa@xxxxxxxxxx>
---
  tests/qemublocktest.c                         |   4 +
  .../bitmapblockcommit/basic-1-2               | 145 ++++++++++++++++++
  .../bitmapblockcommit/basic-1-3               | 145 ++++++++++++++++++
  .../bitmapblockcommit/basic-2-3               |   1 +
  4 files changed, 295 insertions(+)
  create mode 100644 tests/qemublocktestdata/bitmapblockcommit/basic-1-2
  create mode 100644 tests/qemublocktestdata/bitmapblockcommit/basic-1-3
  create mode 100644 tests/qemublocktestdata/bitmapblockcommit/basic-2-3


+++ b/tests/qemublocktestdata/bitmapblockcommit/basic-1-2
@@ -0,0 +1,145 @@
+merge bitmpas:

bitmaps (fixing the source of the typo probably has ripple effects in expected output, and might even be in a prior patch...)

+[
+  {
+    "type": "block-dirty-bitmap-add",
+    "data": {
+      "node": "libvirt-2-format",
+      "name": "a",
+      "persistent": true,
+      "disabled": false,
+      "granularity": 65536
+    }
+  },
+  {
+    "type": "block-dirty-bitmap-merge",
+    "data": {
+      "node": "libvirt-2-format",
+      "target": "a",
+      "bitmaps": [
+        {
+          "node": "libvirt-1-format",
+          "name": "a"
+        },
+        {
+          "node": "libvirt-2-format",
+          "name": "libvirt-tmp-activewrite"
+        }

Hmm, so you are merging the 'libvirt-tmp-activewrite' bitmap into bitmap (libvirt-2-format,a)...

+      ]
+    }
+  },
+  {
+    "type": "block-dirty-bitmap-add",
+    "data": {
+      "node": "libvirt-2-format",
+      "name": "b",
+      "persistent": true,
+      "disabled": false,
+      "granularity": 65536
+    }
+  },
+  {
+    "type": "block-dirty-bitmap-merge",
+    "data": {
+      "node": "libvirt-2-format",
+      "target": "b",
+      "bitmaps": [
+        {
+          "node": "libvirt-1-format",
+          "name": "b"
+        },
+        {
+          "node": "libvirt-2-format",
+          "name": "libvirt-tmp-activewrite"

...and (libvirt-2-format,b) simultaneously. But that still makes sense: if libvirt-tmp-activewrite contains bits for everything that has changed since a certain point in time, and both bitmap a and b will be left active when the operation is done, they will both need those same bits merged in.

It took me a while to see why you were reusing a bitmap as a source to more than one destination, but it looks correct. With the typo fixed,

Reviewed-by: Eric Blake <eblake@xxxxxxxxxx>

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux