Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: qemu/qemu
base: 18b6727083ac
Choose a base ref
...
head repository: qemu/qemu
compare: c095228e8a8c
Choose a head ref
  • 12 commits
  • 13 files changed
  • 3 contributors

Commits on May 15, 2023

  1. 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>
    Andrei Gudkov authored and Juan Quintela committed May 15, 2023
    Copy the full SHA
    00a3f9c View commit details
    Browse the repository at this point in the history
  2. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    62c5e18 View commit details
    Browse the repository at this point in the history
  3. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    beeda9b View commit details
    Browse the repository at this point in the history
  4. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    edd83a7 View commit details
    Browse the repository at this point in the history
  5. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    148b1ad View commit details
    Browse the repository at this point in the history
  6. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    dc2836c View commit details
    Browse the repository at this point in the history
  7. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    52d01d4 View commit details
    Browse the repository at this point in the history
  8. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    9d3ebbe View commit details
    Browse the repository at this point in the history
  9. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    bffc044 View commit details
    Browse the repository at this point in the history
  10. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    f87e4d6 View commit details
    Browse the repository at this point in the history
  11. 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>
    Juan Quintela committed May 15, 2023
    Copy the full SHA
    6da835d View commit details
    Browse the repository at this point in the history
  12. Merge tag 'migration-20230515-pull-request' of https://gitlab.com/jua…

    …n.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>
    rth7680 committed May 15, 2023
    Copy the full SHA
    c095228 View commit details
    Browse the repository at this point in the history