qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v2] tests/migration: Introduce dirty-ring-size option into gu


From: Hyman Huang
Subject: Re: [PATCH v2] tests/migration: Introduce dirty-ring-size option into guestperf
Date: Wed, 23 Mar 2022 22:06:11 +0800
User-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0

Ping.

Hi, what do you think of this patch.

在 2022/3/16 21:39, huangy81@chinatelecom.cn 写道:
From: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>

Guestperf tool does not enable diry ring feature when test
migration by default.

To support dirty ring migration performance test, introduce
dirty-ring-size option into guestperf tools, which ranges in
[1024, 65536].

To set dirty ring size with 4096 during migration test:
$ ./tests/migration/guestperf.py --dirty-ring-size 4096 xxx

Signed-off-by: Hyman Huang(黄勇) <huangy81@chinatelecom.cn>
---
  tests/migration/guestperf/engine.py   | 6 +++++-
  tests/migration/guestperf/hardware.py | 8 ++++++--
  tests/migration/guestperf/shell.py    | 7 ++++++-
  3 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/tests/migration/guestperf/engine.py 
b/tests/migration/guestperf/engine.py
index 87a6ab2..3d3f6bd 100644
--- a/tests/migration/guestperf/engine.py
+++ b/tests/migration/guestperf/engine.py
@@ -304,7 +304,6 @@ def _get_common_args(self, hardware, tunnelled=False):
              cmdline = "'" + cmdline + "'"
argv = [
-            "-accel", "kvm",
              "-cpu", "host",
              "-kernel", self._kernel,
              "-initrd", self._initrd,
@@ -315,6 +314,11 @@ def _get_common_args(self, hardware, tunnelled=False):
              "-smp", str(hardware._cpus),
          ]
+ if hardware._dirty_ring_size:
+            argv.extend(["-accel", "kvm,dirty-ring-size=%s" % 
hardware._dirty_ring_size])
+        else:
+            argv.extend(["-accel", "kvm"])
+
          if self._debug:
              argv.extend(["-device", "sga"])
diff --git a/tests/migration/guestperf/hardware.py b/tests/migration/guestperf/hardware.py
index 3145785..f779cc0 100644
--- a/tests/migration/guestperf/hardware.py
+++ b/tests/migration/guestperf/hardware.py
@@ -23,7 +23,8 @@ def __init__(self, cpus=1, mem=1,
                   src_cpu_bind=None, src_mem_bind=None,
                   dst_cpu_bind=None, dst_mem_bind=None,
                   prealloc_pages = False,
-                 huge_pages=False, locked_pages=False):
+                 huge_pages=False, locked_pages=False,
+                 dirty_ring_size=0):
          self._cpus = cpus
          self._mem = mem # GiB
          self._src_mem_bind = src_mem_bind # List of NUMA nodes
@@ -33,6 +34,7 @@ def __init__(self, cpus=1, mem=1,
          self._prealloc_pages = prealloc_pages
          self._huge_pages = huge_pages
          self._locked_pages = locked_pages
+        self._dirty_ring_size = dirty_ring_size
def serialize(self):
@@ -46,6 +48,7 @@ def serialize(self):
              "prealloc_pages": self._prealloc_pages,
              "huge_pages": self._huge_pages,
              "locked_pages": self._locked_pages,
+            "dirty_ring_size": self._dirty_ring_size,
          }
@classmethod
@@ -59,4 +62,5 @@ def deserialize(cls, data):
              data["dst_mem_bind"],
              data["prealloc_pages"],
              data["huge_pages"],
-            data["locked_pages"])
+            data["locked_pages"],
+            data["dirty_ring_size"])
diff --git a/tests/migration/guestperf/shell.py 
b/tests/migration/guestperf/shell.py
index 8a809e3..f87bce6 100644
--- a/tests/migration/guestperf/shell.py
+++ b/tests/migration/guestperf/shell.py
@@ -60,6 +60,8 @@ def __init__(self):
          parser.add_argument("--prealloc-pages", dest="prealloc_pages", 
default=False)
          parser.add_argument("--huge-pages", dest="huge_pages", default=False)
          parser.add_argument("--locked-pages", dest="locked_pages", 
default=False)
+        parser.add_argument("--dirty-ring-size", dest="dirty_ring_size", 
default=0,
+                            type=int)
self._parser = parser @@ -89,7 +91,10 @@ def split_map(value): locked_pages=args.locked_pages,
                          huge_pages=args.huge_pages,
-                        prealloc_pages=args.prealloc_pages)
+                        prealloc_pages=args.prealloc_pages,
+
+                        dirty_ring_size=args.dirty_ring_size)
+
class Shell(BaseShell):

--
Best regard

Hyman Huang(黄勇)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]