qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 00a3f9: migration/calc-dirty-rate: replaced C


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] 00a3f9: migration/calc-dirty-rate: replaced CRC32 with xxHash
Date: Mon, 15 May 2023 13:26:59 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 00a3f9c60ab0e5c8fd7bfbc300323f012cdd2fa6
      
https://github.com/qemu/qemu/commit/00a3f9c60ab0e5c8fd7bfbc300323f012cdd2fa6
  Author: Andrei Gudkov <gudkov.andrei@huawei.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/dirtyrate.c
    M migration/trace-events

  Log Message:
  -----------
  migration/calc-dirty-rate: replaced CRC32 with xxHash

This significantly reduces overhead of dirty page
rate calculation in sampling mode.
Tested using 32GiB VM on E5-2690 CPU.

With CRC32:
total_pages=8388608 sampled_pages=16384 millis=71

With xxHash:
total_pages=8388608 sampled_pages=16384 millis=14

Signed-off-by: Andrei Gudkov <gudkov.andrei@huawei.com>
Message-Id: 
<cd115a89fc81d5f2eeb4ea7d57a98b84f794f340.1682598010.git.gudkov.andrei@huawei.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>


  Commit: 62c5e181eef9482c081bed2cdcc61c1091a7739c
      
https://github.com/qemu/qemu/commit/62c5e181eef9482c081bed2cdcc61c1091a7739c
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M include/exec/target_page.h
    M softmmu/physmem.c

  Log Message:
  -----------
  softmmu: Create qemu_target_pages_to_MiB()

Function that convert a number of target_pages into its size in MiB.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-Id: <20230511141208.17779-2-quintela@redhat.com>


  Commit: beeda9b7cde6d62cda4700dc4c28e1142690cae2
      
https://github.com/qemu/qemu/commit/beeda9b7cde6d62cda4700dc4c28e1142690cae2
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/dirtyrate.c
    M softmmu/dirtylimit.c

  Log Message:
  -----------
  Use new created qemu_target_pages_to_MiB()

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230511141208.17779-3-quintela@redhat.com>


  Commit: edd83a70dc448f9b7d0f636ff822d1284f8f95d1
      
https://github.com/qemu/qemu/commit/edd83a70dc448f9b7d0f636ff822d1284f8f95d1
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/dirtyrate.c

  Log Message:
  -----------
  migration: Teach dirtyrate about qemu_target_page_size()

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230511141208.17779-4-quintela@redhat.com>


  Commit: 148b1ad83ca5ea0b0456942d5f40d943a68b6102
      
https://github.com/qemu/qemu/commit/148b1ad83ca5ea0b0456942d5f40d943a68b6102
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/dirtyrate.c

  Log Message:
  -----------
  migration: Teach dirtyrate about qemu_target_page_bits()

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230511141208.17779-5-quintela@redhat.com>


  Commit: dc2836c3806f004f36d423cedba86103c87a21a3
      
https://github.com/qemu/qemu/commit/dc2836c3806f004f36d423cedba86103c87a21a3
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/dirtyrate.c
    M migration/meson.build

  Log Message:
  -----------
  migration: Make dirtyrate.c target independent

After the previous two patches, there is nothing else that is target
specific.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230511141208.17779-6-quintela@redhat.com>


  Commit: 52d01d4a5d6963e24ff59af0c39b47fd5d229fb7
      
https://github.com/qemu/qemu/commit/52d01d4a5d6963e24ff59af0c39b47fd5d229fb7
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: A rate limit value of 0 is valid

And it is the best way to not have rate_limit.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20230508130909.65420-2-quintela@redhat.com>


  Commit: 9d3ebbe21749937f9c9270d0841016e57de3fb92
      
https://github.com/qemu/qemu/commit/9d3ebbe21749937f9c9270d0841016e57de3fb92
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/migration.c
    M migration/options.c
    M migration/qemu-file.c

  Log Message:
  -----------
  migration: We set the rate_limit by a second

That the implementation does the check every 100 milliseconds is an
implementation detail that shouldn't be seen on the interfaz.
Notice that all callers of qemu_file_set_rate_limit() used the
division or pass 0, so this change is a NOP.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20230508130909.65420-4-quintela@redhat.com>


  Commit: bffc0441d52e1b88c7fca857cc8e2d5c24c15c5e
      
https://github.com/qemu/qemu/commit/bffc0441d52e1b88c7fca857cc8e2d5c24c15c5e
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/qemu-file.c
    M migration/qemu-file.h

  Log Message:
  -----------
  qemu-file: make qemu_file_[sg]et_rate_limit() use an uint64_t

It is really size_t.  Everything else uses uint64_t, so move this to
uint64_t as well.  A size can't be negative anyways.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20230508130909.65420-5-quintela@redhat.com>


  Commit: f87e4d6d43d7020783d18d8657b4f9c21f9e3427
      
https://github.com/qemu/qemu/commit/f87e4d6d43d7020783d18d8657b4f9c21f9e3427
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/qemu-file.c
    M migration/qemu-file.h

  Log Message:
  -----------
  qemu-file: Make rate_limit_used an uint64_t

Change all the functions that use it.  It was already passed as
uint64_t.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20230508130909.65420-6-quintela@redhat.com>


  Commit: 6da835d42a2163b43578ae745bc613b06dd5d23c
      
https://github.com/qemu/qemu/commit/6da835d42a2163b43578ae745bc613b06dd5d23c
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M migration/block.c
    M migration/migration.c
    M migration/qemu-file.c
    M migration/qemu-file.h
    M migration/savevm.c
    M migration/vmstate.c

  Log Message:
  -----------
  qemu-file: Remove total from qemu_file_total_transferred_*()

Function is already quite long.

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Message-Id: <20230508130909.65420-7-quintela@redhat.com>


  Commit: c095228e8a8cdf5c15bb8a47c4d069582ae017d1
      
https://github.com/qemu/qemu/commit/c095228e8a8cdf5c15bb8a47c4d069582ae017d1
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-15 (Mon, 15 May 2023)

  Changed paths:
    M include/exec/target_page.h
    M migration/block.c
    M migration/dirtyrate.c
    M migration/meson.build
    M migration/migration.c
    M migration/options.c
    M migration/qemu-file.c
    M migration/qemu-file.h
    M migration/savevm.c
    M migration/trace-events
    M migration/vmstate.c
    M softmmu/dirtylimit.c
    M softmmu/physmem.c

  Log Message:
  -----------
  Merge tag 'migration-20230515-pull-request' of 
https://gitlab.com/juan.quintela/qemu into staging

Migration Pull request 20230515

Hi

On this PULL:
- use xxHash for calculate dirty_rate (andrei)
- Create qemu_target_pages_to_MiB() and use them (quintela)
- make dirtyrate target independent (quintela)
- Merge 5 patches from atomic counters series (quintela)

Please apply.

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmRiJoUACgkQ9IfvGFhy
# 1yO1ExAAsSStVAUh/tSgu5fhXydJVkBMO6LOj1k+tA7qylwv4QsqZ/pLNBvY8Zms
# 8/bpYtlvw1LwCSaq01oNA6RhBhkBaZ5x0PUViCY87dsJhu0hEo68Jcp0FkrkW93E
# OiIsp9NU7wpnqd88ZhzjcZ/viWebPw3660V5KY4/8ZZFVxJaKMhG+vW3pGYH8yDR
# TmZK5E5e3t5yiwDRRPrkAw3+e+GDwfwNuOBkk+NBJdL1mOZnIfVwFwxRAXWn/vEM
# f6NdT3aXplsNeKPCN1w9zrLhOJdHeu8IlhWhT/cjTgOKemBJBYzftH6dI/X9D0ix
# ghWAzFSJh1S38gw0mMef1VERJqh7JpAkTq7vT2x7J/0UIbIAru0yRiSrHbNBCcvL
# efsVFtjyseKq70qKN515uoqbK6mlnxP+eECIAUmesUx0bJI9jDWzn+KVc86xUvWy
# +98KDcPuYVxdVp4XHAIsyHYOfTY/tJwG5KI4hYgGP7uxFVr/qus3eBB/Q5BBVPOx
# X0A/760iehfV0V0UmVEt8mC7uDjI0JBouenUHcURAtbsnuGRMCz6s1kLsZYaHuGV
# NhihXq6jnwcvn2nGGnXY44TsgBWesfUrCFZOjJzbaSjGH5UpipC0SECKqh1GKoQP
# kdknvyej5h8egU2QFdS8sCUeXIfwAtHfCamtnui3b3E3iF3TSco=
# =8gfA
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 15 May 2023 05:33:09 AM PDT
# gpg:                using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [undefined]
# gpg:                 aka "Juan Quintela <quintela@trasno.org>" [undefined]
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* tag 'migration-20230515-pull-request' of 
https://gitlab.com/juan.quintela/qemu:
  qemu-file: Remove total from qemu_file_total_transferred_*()
  qemu-file: Make rate_limit_used an uint64_t
  qemu-file: make qemu_file_[sg]et_rate_limit() use an uint64_t
  migration: We set the rate_limit by a second
  migration: A rate limit value of 0 is valid
  migration: Make dirtyrate.c target independent
  migration: Teach dirtyrate about qemu_target_page_bits()
  migration: Teach dirtyrate about qemu_target_page_size()
  Use new created qemu_target_pages_to_MiB()
  softmmu: Create qemu_target_pages_to_MiB()
  migration/calc-dirty-rate: replaced CRC32 with xxHash

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/18b6727083ac...c095228e8a8c



reply via email to

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