QAPI patches patches for 2023-08-02

-----BEGIN PGP SIGNATURE-----
 
 iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmTKB9wSHGFybWJydUBy
 ZWRoYXQuY29tAAoJEDhwtADrkYZT5w4P/ReWCzwnNWDHAlInd91gQxmH5AB5VRMK
 jnLLLxzMx3KIk2cjoHG7nvVBpHKaEzhwZoyjQvILnSoHVeHUteHNvfJAS/LG0bYw
 ujpSem7C1LXT/+WPf/j2eIdfZ243Z1/WkJW4ZXWuUyZYea0Uc6M+eXgnw1VfZOPn
 UmTXrJzV35KY2mB4EMdBON2P/0VnqoXH17Ke13JxI10NDgFzzhlltM5J4CBKFqPM
 XcrpeuQdfk3NR1XxDIUIVNcYkbg1EMVrnZs1m8M8hcgnUKAxoPyYFdq2m+bVITmL
 C4uxdqg6UUvtHzwdp/CbeXPBKuuZnR4TcFIW+4uJHoCJxhLjKhACbowz8fCHh8dg
 5999ZsmgCfK4P4KxcOYQpGG5qLm4G8L+cxx/b5Tu/UlguCwc6/CRs6njpzA0trDy
 4Qz+F7hSGQqSX5hZT6h94l88fZ+tfrSnXGRxhpwF2pFOzTZsIvE8X43KIXo1jMWf
 M4mwb7TtMmBgF4Q6rfg1GxcYkJ7weFlro7nsWUOxPZXINJO17pDx8OI9bLkBV99x
 UQ1pfGhhTncVGai/eNOtr+REXpW0mse5DAX8UlxiBJyerQhjbqq4cKHrbMvoRE1D
 YJRt7h8t2mKwmdXpGRkVtLEvTKivhJ9x4/ZRmoKzWDlTucNN/gW5rUahbJ68d3Qf
 tsq+a97nbfp4
 =/Xq1
 -----END PGP SIGNATURE-----

Merge tag 'pull-qapi-2023-08-02' of https://repo.or.cz/qemu/armbru into staging

QAPI patches patches for 2023-08-02

# -----BEGIN PGP SIGNATURE-----
#
# iQJGBAABCAAwFiEENUvIs9frKmtoZ05fOHC0AOuRhlMFAmTKB9wSHGFybWJydUBy
# ZWRoYXQuY29tAAoJEDhwtADrkYZT5w4P/ReWCzwnNWDHAlInd91gQxmH5AB5VRMK
# jnLLLxzMx3KIk2cjoHG7nvVBpHKaEzhwZoyjQvILnSoHVeHUteHNvfJAS/LG0bYw
# ujpSem7C1LXT/+WPf/j2eIdfZ243Z1/WkJW4ZXWuUyZYea0Uc6M+eXgnw1VfZOPn
# UmTXrJzV35KY2mB4EMdBON2P/0VnqoXH17Ke13JxI10NDgFzzhlltM5J4CBKFqPM
# XcrpeuQdfk3NR1XxDIUIVNcYkbg1EMVrnZs1m8M8hcgnUKAxoPyYFdq2m+bVITmL
# C4uxdqg6UUvtHzwdp/CbeXPBKuuZnR4TcFIW+4uJHoCJxhLjKhACbowz8fCHh8dg
# 5999ZsmgCfK4P4KxcOYQpGG5qLm4G8L+cxx/b5Tu/UlguCwc6/CRs6njpzA0trDy
# 4Qz+F7hSGQqSX5hZT6h94l88fZ+tfrSnXGRxhpwF2pFOzTZsIvE8X43KIXo1jMWf
# M4mwb7TtMmBgF4Q6rfg1GxcYkJ7weFlro7nsWUOxPZXINJO17pDx8OI9bLkBV99x
# UQ1pfGhhTncVGai/eNOtr+REXpW0mse5DAX8UlxiBJyerQhjbqq4cKHrbMvoRE1D
# YJRt7h8t2mKwmdXpGRkVtLEvTKivhJ9x4/ZRmoKzWDlTucNN/gW5rUahbJ68d3Qf
# tsq+a97nbfp4
# =/Xq1
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed 02 Aug 2023 12:38:04 AM PDT
# gpg:                using RSA key 354BC8B3D7EB2A6B68674E5F3870B400EB918653
# gpg:                issuer "armbru@redhat.com"
# gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [undefined]
# gpg:                 aka "Markus Armbruster <armbru@pond.sub.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: 354B C8B3 D7EB 2A6B 6867  4E5F 3870 B400 EB91 8653

* tag 'pull-qapi-2023-08-02' of https://repo.or.cz/qemu/armbru:
  MAINTAINERS: Add section "Migration dirty limit and dirty page rate"
  qapi: Craft the dirty-limit capability comment
  qapi: Reformat the dirty-limit migration doc comments

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
Richard Henderson 2023-08-02 06:51:53 -07:00
commit fb695ae3fd
2 changed files with 39 additions and 34 deletions

View File

@ -3209,6 +3209,15 @@ F: qapi/migration.json
F: tests/migration/ F: tests/migration/
F: util/userfaultfd.c F: util/userfaultfd.c
Migration dirty limit and dirty page rate
M: Hyman Huang <yong.huang@smartx.com>
S: Maintained
F: softmmu/dirtylimit.c
F: include/sysemu/dirtylimit.h
F: migration/dirtyrate.c
F: migration/dirtyrate.h
F: include/sysemu/dirtyrate.h
D-Bus D-Bus
M: Marc-André Lureau <marcandre.lureau@redhat.com> M: Marc-André Lureau <marcandre.lureau@redhat.com>
S: Maintained S: Maintained

View File

@ -258,17 +258,17 @@
# blocked. Present and non-empty when migration is blocked. # blocked. Present and non-empty when migration is blocked.
# (since 6.0) # (since 6.0)
# #
# @dirty-limit-throttle-time-per-round: Maximum throttle time (in microseconds) of virtual # @dirty-limit-throttle-time-per-round: Maximum throttle time
# CPUs each dirty ring full round, which shows how # (in microseconds) of virtual CPUs each dirty ring full round,
# MigrationCapability dirty-limit affects the guest # which shows how MigrationCapability dirty-limit affects the
# during live migration. (since 8.1) # guest during live migration. (Since 8.1)
# #
# @dirty-limit-ring-full-time: Estimated average dirty ring full time (in microseconds) # @dirty-limit-ring-full-time: Estimated average dirty ring full time
# each dirty ring full round, note that the value equals # (in microseconds) for each dirty ring full round. The value
# dirty ring memory size divided by average dirty page rate # equals the dirty ring memory size divided by the average dirty
# of virtual CPU, which can be used to observe the average # page rate of the virtual CPU, which can be used to observe the
# memory load of virtual CPU indirectly. Note that zero # average memory load of the virtual CPU indirectly. Note that
# means guest doesn't dirty memory (since 8.1) # zero means guest doesn't dirty memory. (Since 8.1)
# #
# Since: 0.14 # Since: 0.14
## ##
@ -519,15 +519,11 @@
# are present. 'return-path' capability must be enabled to use # are present. 'return-path' capability must be enabled to use
# it. (since 8.1) # it. (since 8.1)
# #
# @dirty-limit: If enabled, migration will use the dirty-limit algo to # @dirty-limit: If enabled, migration will throttle vCPUs as needed to
# throttle down guest instead of auto-converge algo. # keep their dirty page rate within @vcpu-dirty-limit. This can
# Throttle algo only works when vCPU's dirtyrate greater # improve responsiveness of large guests during live migration,
# than 'vcpu-dirty-limit', read processes in guest os # and can result in more stable read performance. Requires KVM
# aren't penalized any more, so this algo can improve # with accelerator property "dirty-ring-size" set. (Since 8.1)
# performance of vCPU during live migration. This is an
# optional performance feature and should not affect the
# correctness of the existing auto-converge algo.
# (since 8.1)
# #
# Features: # Features:
# #
@ -822,17 +818,17 @@
# Nodes are mapped to their block device name if there is one, and # Nodes are mapped to their block device name if there is one, and
# to their node name otherwise. (Since 5.2) # to their node name otherwise. (Since 5.2)
# #
# @x-vcpu-dirty-limit-period: Periodic time (in milliseconds) of dirty limit during # @x-vcpu-dirty-limit-period: Periodic time (in milliseconds) of dirty
# live migration. Should be in the range 1 to 1000ms, # limit during live migration. Should be in the range 1 to 1000ms.
# defaults to 1000ms. (Since 8.1) # Defaults to 1000ms. (Since 8.1)
# #
# @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration. # @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration.
# Defaults to 1. (Since 8.1) # Defaults to 1. (Since 8.1)
# #
# Features: # Features:
# #
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
# are experimental. # are experimental.
# #
# Since: 2.4 # Since: 2.4
## ##
@ -988,17 +984,17 @@
# Nodes are mapped to their block device name if there is one, and # Nodes are mapped to their block device name if there is one, and
# to their node name otherwise. (Since 5.2) # to their node name otherwise. (Since 5.2)
# #
# @x-vcpu-dirty-limit-period: Periodic time (in milliseconds) of dirty limit during # @x-vcpu-dirty-limit-period: Periodic time (in milliseconds) of dirty
# live migration. Should be in the range 1 to 1000ms, # limit during live migration. Should be in the range 1 to 1000ms.
# defaults to 1000ms. (Since 8.1) # Defaults to 1000ms. (Since 8.1)
# #
# @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration. # @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration.
# Defaults to 1. (Since 8.1) # Defaults to 1. (Since 8.1)
# #
# Features: # Features:
# #
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
# are experimental. # are experimental.
# #
# TODO: either fuse back into MigrationParameters, or make # TODO: either fuse back into MigrationParameters, or make
# MigrationParameters members mandatory # MigrationParameters members mandatory
@ -1191,17 +1187,17 @@
# Nodes are mapped to their block device name if there is one, and # Nodes are mapped to their block device name if there is one, and
# to their node name otherwise. (Since 5.2) # to their node name otherwise. (Since 5.2)
# #
# @x-vcpu-dirty-limit-period: Periodic time (in milliseconds) of dirty limit during # @x-vcpu-dirty-limit-period: Periodic time (in milliseconds) of dirty
# live migration. Should be in the range 1 to 1000ms, # limit during live migration. Should be in the range 1 to 1000ms.
# defaults to 1000ms. (Since 8.1) # Defaults to 1000ms. (Since 8.1)
# #
# @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration. # @vcpu-dirty-limit: Dirtyrate limit (MB/s) during live migration.
# Defaults to 1. (Since 8.1) # Defaults to 1. (Since 8.1)
# #
# Features: # Features:
# #
# @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period # @unstable: Members @x-checkpoint-delay and @x-vcpu-dirty-limit-period
# are experimental. # are experimental.
# #
# Since: 2.4 # Since: 2.4
## ##