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: 577e648bdb52
Choose a base ref
...
head repository: qemu/qemu
compare: aab6a1b97322
Choose a head ref
  • 12 commits
  • 18 files changed
  • 3 contributors

Commits on May 9, 2023

  1. ram: Add public helper to set colo bitmap

    The overhead of the mutex in non-multifd mode is negligible,
    because in that case its just the single thread taking the mutex.
    
    This will be used in the next commits to add colo support to multifd.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Message-Id: <22d83cb428f37929563155531bfb69fd8953cc61.1683572883.git.lukasstraub2@web.de>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    c286c4d View commit details
    Browse the repository at this point in the history
  2. ram: Let colo_flush_ram_cache take the bitmap_mutex

    This is not required, colo_flush_ram_cache does not run concurrently
    with the multifd threads since the cache is only flushed after
    everything has been received. But it makes me more comfortable.
    
    This will be used in the next commits to add colo support to multifd.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Message-Id: <35cb23ba854151d38a31e3a5c8a1020e4283cb4a.1683572883.git.lukasstraub2@web.de>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    2012f2d View commit details
    Browse the repository at this point in the history
  3. multifd: Add the ramblock to MultiFDRecvParams

    This will be used in the next commits to add colo support to multifd.
    
    Signed-off-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Message-Id: <88135197411df1a71d7832962b39abf60faf0021.1683572883.git.lukasstraub2@web.de>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Lukey3332 authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    aa1b3b6 View commit details
    Browse the repository at this point in the history
  4. block/meson.build: prefer positive condition for replication

    Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Zhang Chen <chen.zhang@intel.com>
    Message-Id: <20230428194928.1426370-2-vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Vladimir Sementsov-Ogievskiy authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    54a6072 View commit details
    Browse the repository at this point in the history
  5. colo: make colo_checkpoint_notify static and provide simpler API

    colo_checkpoint_notify() is mostly used in colo.c. Outside we use it
    once when x-checkpoint-delay migration parameter is set. So, let's
    simplify the external API to only that function - notify COLO that
    parameter was set. This make external API more robust and hides
    implementation details from external callers. Also this helps us to
    make COLO module optional in further patch (i.e. we are going to add
    possibility not build the COLO module).
    
    Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Peter Xu <peterx@redhat.com>
    Reviewed-by: Zhang Chen <chen.zhang@intel.com>
    Message-Id: <20230428194928.1426370-3-vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Vladimir Sementsov-Ogievskiy authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    89a93a7 View commit details
    Browse the repository at this point in the history
  6. build: move COLO under CONFIG_REPLICATION

    We don't allow to use x-colo capability when replication is not
    configured. So, no reason to build COLO when replication is disabled,
    it's unusable in this case.
    
    Note also that the check in migrate_caps_check() is not the only
    restriction: some functions in migration/colo.c will just abort if
    called with not defined CONFIG_REPLICATION, for example:
    
        migration_iteration_finish()
           case MIGRATION_STATUS_COLO:
               migrate_start_colo_process()
                   colo_process_checkpoint()
                       abort()
    
    It could probably make sense to have possibility to enable COLO without
    REPLICATION, but this requires deeper audit of colo & replication code,
    which may be done later if needed.
    
    Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Acked-by: Dr. David Alan Gilbert <dave@treblig.org>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Message-Id: <20230428194928.1426370-4-vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Vladimir Sementsov-Ogievskiy authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    a7a2886 View commit details
    Browse the repository at this point in the history
  7. migration: drop colo_incoming_thread from MigrationIncomingState

    have_colo_incoming_thread variable is unused. colo_incoming_thread can
    be local.
    
    Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Peter Xu <peterx@redhat.com>
    Reviewed-by: Zhang Chen <chen.zhang@intel.com>
    Message-Id: <20230428194928.1426370-6-vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Vladimir Sementsov-Ogievskiy authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    42884e4 View commit details
    Browse the repository at this point in the history
  8. migration: process_incoming_migration_co: simplify code flow around ret

    Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Peter Xu <peterx@redhat.com>
    Reviewed-by: Zhang Chen <chen.zhang@intel.com>
    Message-Id: <20230428194928.1426370-7-vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Vladimir Sementsov-Ogievskiy authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    cded624 View commit details
    Browse the repository at this point in the history
  9. migration: disallow change capabilities in COLO state

    COLO is not listed as running state in migrate_is_running(), so, it's
    theoretically possible to disable colo capability in COLO state and the
    unexpected error in migration_iteration_finish() is reachable.
    
    Let's disallow that in qmp_migrate_set_capabilities. Than the error
    becomes absolutely unreachable: we can get into COLO state only with
    enabled capability and can't disable it while we are in COLO state. So
    substitute the error by simple assertion.
    
    Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Peter Xu <peterx@redhat.com>
    Message-Id: <20230428194928.1426370-10-vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Vladimir Sementsov-Ogievskiy authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    c08d611 View commit details
    Browse the repository at this point in the history
  10. migration: block incoming colo when capability is disabled

    We generally require same set of capabilities on source and target.
    Let's require x-colo capability to use COLO on target.
    
    Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
    Reviewed-by: Juan Quintela <quintela@redhat.com>
    Reviewed-by: Peter Xu <peterx@redhat.com>
    Reviewed-by: Lukas Straub <lukasstraub2@web.de>
    Reviewed-by: Zhang Chen <chen.zhang@intel.com>
    Message-Id: <20230428194928.1426370-11-vsementsov@yandex-team.ru>
    Signed-off-by: Juan Quintela <quintela@redhat.com>
    Vladimir Sementsov-Ogievskiy authored and Juan Quintela committed May 9, 2023
    Copy the full SHA
    5f43d29 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2023

  1. target/loongarch: Terminate vmstate subsections list

    This list requires a NULL terminator.
    
    Fixes: 16f5396 ("target/loongarch: Add LSX data type VReg")
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    Message-Id: <20230510062405.127260-1-richard.henderson@linaro.org>
    rth7680 committed May 10, 2023
    Copy the full SHA
    7534695 View commit details
    Browse the repository at this point in the history
  2. Merge tag 'migration-20230509-pull-request' of https://gitlab.com/jua…

    …n.quintela/qemu into staging
    
    Migration Pull request (20230509 vintage)
    
    Hi
    In this PULL request:
    - 1st part of colo support for multifd (lukas)
    - 1st part of disabling colo option (vladimir)
    
    Please, apply.
    
    # -----BEGIN PGP SIGNATURE-----
    #
    # iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmRanDwACgkQ9IfvGFhy
    # 1yOe6w/+MLg6l5WOYV/VemfKg6SZ8J1LPT4fLqYP4Er6qVU14lt/UAvWNg2wo/ym
    # if0QjXwXsyGOy6Gh0jIE7ggiE5FOErLt/KBdoh6Fg98L7RvsFXiNOFuKwSbz3j/K
    # qllxnrnYWNHPhgPf/UDm7p8cPW72HdgM9+yDFiH4v3zwKF/uW6Y4uwIlfD/hl7+T
    # lC7vSoafPAdWpVrDDuJ2Y9iX5P0EPJhpfW5Ulq82Zo4YcehmUEfP0G18ixlJxAZN
    # T0AnumZuULJK/BcfSVh41C600Ymr8krUnvylHY0oMIP2716F9pC5U8OI285gsTbu
    # eYIVwhbcHqmfkGf60qvH8ea7KGnfAnXy6eM7x/YeR6V1/t1PUkYmQ3+1ZqwlXIag
    # byz9wTi/HC+1/ptSqTTjN6z1YZOtdgZHnberfohACG0CDsrdyeNUkXlPWjNuhqHV
    # PYkI11FVhiFQANbfCN0UKamZe28m13rDWfGF0Kr0j776UkRqFf9HKI3eMYfP2s8u
    # gy3sscMz+Hxl0y3kWHjD3Cqr8JDKg92gJxrH8gB+yAKd9lMlvh59y16LOV71Xmw3
    # 1JXEy+XMZSEtrhDLjgcdnDdzRKsT5DASJhakCpcqVDuoHW4gyFisLxPGUvWZLFQw
    # 4MTh9W7FkmH1E2z8jNVozS5x82m/6Y3oUTB7lRItRnJwicFJbRw=
    # =soGf
    # -----END PGP SIGNATURE-----
    # gpg: Signature made Tue 09 May 2023 08:17:16 PM BST
    # 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-20230509-pull-request' of https://gitlab.com/juan.quintela/qemu:
      migration: block incoming colo when capability is disabled
      migration: disallow change capabilities in COLO state
      migration: process_incoming_migration_co: simplify code flow around ret
      migration: drop colo_incoming_thread from MigrationIncomingState
      build: move COLO under CONFIG_REPLICATION
      colo: make colo_checkpoint_notify static and provide simpler API
      block/meson.build: prefer positive condition for replication
      multifd: Add the ramblock to MultiFDRecvParams
      ram: Let colo_flush_ram_cache take the bitmap_mutex
      ram: Add public helper to set colo bitmap
    
    Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
    rth7680 committed May 10, 2023
    Copy the full SHA
    aab6a1b View commit details
    Browse the repository at this point in the history