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(-)
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):
--
1.8.3.1
Hi, Daniel. Sorry to bother you, but i have a request of you. I'm posting a simple patch of Qemu guestperf test to support dirty ring migration test. I'm very pleased if you could spare some time to review it and even give some advices. Yong 在 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(黄勇)
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(黄勇)
© 2016 - 2024 Red Hat, Inc.