* Re: [PATCH v2] tests/migration: Introduce dirty-ring-size option into guestperf
2022-03-16 13:39 ` [PATCH v2] tests/migration: Introduce dirty-ring-size option into guestperf huangy81
@ 2022-03-23 14:06 ` Hyman Huang
2022-04-01 13:05 ` Hyman Huang
1 sibling, 0 replies; 4+ messages in thread
From: Hyman Huang @ 2022-03-23 14:06 UTC (permalink / raw)
To: qemu-devel
Cc: Guoyi Tu, Juan Quintela, 袁明浩,
Dr. David Alan Gilbert, wucy11, dengpc12, Daniel P. Berrangé,
baiyw2
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(黄勇)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] tests/migration: Introduce dirty-ring-size option into guestperf
2022-03-16 13:39 ` [PATCH v2] tests/migration: Introduce dirty-ring-size option into guestperf huangy81
2022-03-23 14:06 ` Hyman Huang
@ 2022-04-01 13:05 ` Hyman Huang
1 sibling, 0 replies; 4+ messages in thread
From: Hyman Huang @ 2022-04-01 13:05 UTC (permalink / raw)
To: qemu-devel; +Cc: Daniel P. Berrangé
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(黄勇)
^ permalink raw reply [flat|nested] 4+ messages in thread