qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] c286c4: ram: Add public helper to set colo bi


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] c286c4: ram: Add public helper to set colo bitmap
Date: Wed, 10 May 2023 02:33:15 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: c286c4d784db846b6a8ad877766ebd6a701bfdda
      
https://github.com/qemu/qemu/commit/c286c4d784db846b6a8ad877766ebd6a701bfdda
  Author: Lukas Straub <lukasstraub2@web.de>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M migration/ram.c
    M migration/ram.h

  Log Message:
  -----------
  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>


  Commit: 2012f2d14303e5b070552c1c01d0ec8d8c8a7ef2
      
https://github.com/qemu/qemu/commit/2012f2d14303e5b070552c1c01d0ec8d8c8a7ef2
  Author: Lukas Straub <lukasstraub2@web.de>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  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>


  Commit: aa1b3b676a977aea3ddda2345340f6112dc789ff
      
https://github.com/qemu/qemu/commit/aa1b3b676a977aea3ddda2345340f6112dc789ff
  Author: Lukas Straub <lukasstraub2@web.de>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M migration/multifd.c
    M migration/multifd.h

  Log Message:
  -----------
  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>


  Commit: 54a60726c0338408ae73001b58feb7dc5fab52c3
      
https://github.com/qemu/qemu/commit/54a60726c0338408ae73001b58feb7dc5fab52c3
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M block/meson.build

  Log Message:
  -----------
  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>


  Commit: 89a93a7e5b734aa9b55da8f599920c001baa970e
      
https://github.com/qemu/qemu/commit/89a93a7e5b734aa9b55da8f599920c001baa970e
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M include/migration/colo.h
    M migration/colo.c
    M migration/options.c

  Log Message:
  -----------
  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>


  Commit: a7a28868565c1fad6a46845fd766edeb64e7de64
      
https://github.com/qemu/qemu/commit/a7a28868565c1fad6a46845fd766edeb64e7de64
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M hmp-commands.hx
    M migration/colo.c
    M migration/meson.build
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M qapi/migration.json
    A stubs/colo.c
    M stubs/meson.build

  Log Message:
  -----------
  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>


  Commit: 42884e4327758962f75d29a0075a7d41549ffc65
      
https://github.com/qemu/qemu/commit/42884e4327758962f75d29a0075a7d41549ffc65
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M migration/migration.c
    M migration/migration.h

  Log Message:
  -----------
  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>


  Commit: cded6246c6ef2f34565e23a81a431ff69ed7e3f6
      
https://github.com/qemu/qemu/commit/cded6246c6ef2f34565e23a81a431ff69ed7e3f6
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  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>


  Commit: c08d6114f29d21c8010b7021a8a1b8ae5b1a6f33
      
https://github.com/qemu/qemu/commit/c08d6114f29d21c8010b7021a8a1b8ae5b1a6f33
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M migration/migration.c
    M migration/options.c

  Log Message:
  -----------
  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>


  Commit: 5f43d297bc2b9530805ad8602c6e2ea284b08628
      
https://github.com/qemu/qemu/commit/5f43d297bc2b9530805ad8602c6e2ea284b08628
  Author: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
  Date:   2023-05-09 (Tue, 09 May 2023)

  Changed paths:
    M docs/COLO-FT.txt
    M migration/migration.c

  Log Message:
  -----------
  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>


  Commit: 7534695b405e8abb4eb61d082da1d7610f6585bf
      
https://github.com/qemu/qemu/commit/7534695b405e8abb4eb61d082da1d7610f6585bf
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2023-05-10 (Wed, 10 May 2023)

  Changed paths:
    M target/loongarch/machine.c

  Log Message:
  -----------
  target/loongarch: Terminate vmstate subsections list

This list requires a NULL terminator.

Fixes: 16f5396cec23 ("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>


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

  Changed paths:
    M block/meson.build
    M docs/COLO-FT.txt
    M hmp-commands.hx
    M include/migration/colo.h
    M migration/colo.c
    M migration/meson.build
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M migration/migration.h
    M migration/multifd.c
    M migration/multifd.h
    M migration/options.c
    M migration/ram.c
    M migration/ram.h
    M qapi/migration.json
    A stubs/colo.c
    M stubs/meson.build

  Log Message:
  -----------
  Merge tag 'migration-20230509-pull-request' of 
https://gitlab.com/juan.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>


Compare: https://github.com/qemu/qemu/compare/577e648bdb52...aab6a1b97322



reply via email to

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