ping1

在 2023/10/23 10:03, Yong Huang 写道:
ping.

Regarding the performance of the live migration, Guestperf could provide us with a clear response. IMHO, by just adding a few metrics, it might be developed
into a more user-friendly metrics system in the future.

We may still enrich it prior to that.

On Fri, Oct 20, 2023 at 11:24 PM Hyman Huang <yong.hu...@smartx.com> wrote:

    Dirty ring size configuration is not supported by guestperf tool.

    Introduce dirty-ring-size (ranges in [1024, 65536]) option so
    developers can play with dirty-ring and dirty-limit feature easier.

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

    Signed-off-by: Hyman Huang <yong.hu...@smartx.com>
    ---
     tests/migration/guestperf/engine.py   | 6 +++++-
     tests/migration/guestperf/hardware.py | 8 ++++++--
     tests/migration/guestperf/shell.py    | 6 +++++-
     3 files changed, 16 insertions(+), 4 deletions(-)

    diff --git a/tests/migration/guestperf/engine.py
    b/tests/migration/guestperf/engine.py
    index da96ca034a..aabf6de4d9 100644
    --- a/tests/migration/guestperf/engine.py
    +++ b/tests/migration/guestperf/engine.py
    @@ -325,7 +325,6 @@ def _get_common_args(self, hardware,
    tunnelled=False):
                 cmdline = "'" + cmdline + "'"

             argv = [
    -            "-accel", "kvm",
                 "-cpu", "host",
                 "-kernel", self._kernel,
                 "-initrd", self._initrd,
    @@ -333,6 +332,11 @@ def _get_common_args(self, hardware,
    tunnelled=False):
                 "-m", str((hardware._mem * 1024) + 512),
                 "-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"])

             argv.extend(self._get_qemu_serial_args())

    diff --git a/tests/migration/guestperf/hardware.py
    b/tests/migration/guestperf/hardware.py
    index 3145785ffd..f779cc050b 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 8a809e3dda..7d6b8cd7cf 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,9 @@ 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):
-- 2.39.1



--
Best regards

Reply via email to