qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] a45680: migration/doc: Add contents


From: Alex Bennée
Subject: [Qemu-commits] [qemu/qemu] a45680: migration/doc: Add contents
Date: Wed, 25 Oct 2023 01:14:59 -0700

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: a45680c8a0dc4bfcea81966c59f8516a7ea297d2
      
https://github.com/qemu/qemu/commit/a45680c8a0dc4bfcea81966c59f8516a7ea297d2
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration/doc: Add contents

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018112827.1325-2-quintela@redhat.com>


  Commit: 17d8b6a8224a3899fc3e86ae269cbf68dd8a77dd
      
https://github.com/qemu/qemu/commit/17d8b6a8224a3899fc3e86ae269cbf68dd8a77dd
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration/doc: Add documentation for backwards compatiblity

State what are the requeriments to get migration working between qemu
versions.  And once there explain how one is supposed to implement a
new feature/default value and not break migration.

Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Acked-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018112827.1325-3-quintela@redhat.com>


  Commit: 2bf534103a3e708822339fff8cd678c824fd6c38
      
https://github.com/qemu/qemu/commit/2bf534103a3e708822339fff8cd678c824fd6c38
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration/doc: How to migrate when hosts have different features

Sometimes devices have different features depending of things outside
of qemu.  For instance the kernel.  Document how to handle that cases.

Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018112827.1325-4-quintela@redhat.com>


  Commit: 6e131cbc27be827c1740572af00409336dc58f8b
      
https://github.com/qemu/qemu/commit/6e131cbc27be827c1740572af00409336dc58f8b
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration/doc: We broke backwards compatibility

When we detect that we have broken backwards compatibility in a
released version, we can't do anything for that version.  But once we
fix that bug on the next released version, we can "mitigate" that
problem when migrating to new versions to give a way out of that
machine until it does a hard reboot.

Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018112827.1325-5-quintela@redhat.com>


  Commit: 539b8d09c18a271cd51991a91d4375873fac0162
      
https://github.com/qemu/qemu/commit/539b8d09c18a271cd51991a91d4375873fac0162
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

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

  Log Message:
  -----------
  migration: Receiving a zero page non zero is an error

We don't allow non zero compressed pages since:

commit 3edcd7e6ebae3ef0ac178eed5f4225803159562d
Author: Peter Lieven <pl@kamp.de>
Date:   Tue Mar 26 10:58:35 2013 +0100

    migration: search for zero instead of dup pages

RDMA case is a bit more complicated, but they don't handle it since:

commit a1febc4950f2c6232c002f401d7cd409f6fa6a88
Author: Richard Henderson <rth@twiddle.net>
Date:   Mon Aug 29 11:46:14 2016 -0700

    cutils: Export only buffer_is_zero

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019085259.13307-2-quintela@redhat.com>


  Commit: 510240a2feec766132576aec36d8a27b4a41c29d
      
https://github.com/qemu/qemu/commit/510240a2feec766132576aec36d8a27b4a41c29d
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

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

  Log Message:
  -----------
  migration: Rename ram_handle_compressed() to ram_handle_zero()

Now that we know it only handles zero, we can remove the ch parameter.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019085259.13307-3-quintela@redhat.com>


  Commit: 1ce83740fe989fbb84a947d9d78af125286d9aac
      
https://github.com/qemu/qemu/commit/1ce83740fe989fbb84a947d9d78af125286d9aac
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M migration/options.c

  Log Message:
  -----------
  migration: Give one error if trying to set MULTIFD and XBZRLE

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-2-quintela@redhat.com>


  Commit: 9698440f355f3e38c94709eefc9d505acc55f9a1
      
https://github.com/qemu/qemu/commit/9698440f355f3e38c94709eefc9d505acc55f9a1
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M migration/options.c

  Log Message:
  -----------
  migration: Give one error if trying to set COMPRESSION and XBZRLE

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-3-quintela@redhat.com>


  Commit: 3089e11de21ea16bdc0cd17c218d3b424695f069
      
https://github.com/qemu/qemu/commit/3089e11de21ea16bdc0cd17c218d3b424695f069
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration: Remove save_page_use_compression()

After previous patch, we disable the posiblity that we use compression
together with xbzrle.  So we can use directly migrate_compress().

Once there, now we don't need the rs parameter, so remove it.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-4-quintela@redhat.com>


  Commit: 69954f5bc7a31166d7b063f0aadbd88a975d9cec
      
https://github.com/qemu/qemu/commit/69954f5bc7a31166d7b063f0aadbd88a975d9cec
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

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

  Log Message:
  -----------
  migration: Make compress_data_with_multithreads return bool

Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-5-quintela@redhat.com>


  Commit: ef2c054b5f0a158ac5b7a1aacf2b977fa9a26754
      
https://github.com/qemu/qemu/commit/ef2c054b5f0a158ac5b7a1aacf2b977fa9a26754
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M migration/ram-compress.c

  Log Message:
  -----------
  migration: Simplify compress_page_with_multithread()

Move the goto to a while true.

Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-6-quintela@redhat.com>


  Commit: 0e63b62eb500679d54e69df11a5645332b56e6ef
      
https://github.com/qemu/qemu/commit/0e63b62eb500679d54e69df11a5645332b56e6ef
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M migration/ram-compress.c
    M migration/ram.c

  Log Message:
  -----------
  migration: Move busy++ to migrate_with_multithread

And now we can simplify save_compress_page().

Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-7-quintela@redhat.com>


  Commit: 147b2d2eeba150ff6147956d5bde85777df7c471
      
https://github.com/qemu/qemu/commit/147b2d2eeba150ff6147956d5bde85777df7c471
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

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

  Log Message:
  -----------
  migration: Create compress_update_rates()

So we can move more compression_counters stuff to ram-compress.c.
Create compression_counters struct to add the stuff that was on
MigrationState.

Reviewed-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-8-quintela@redhat.com>


  Commit: 089fa2a96069546dc3a20d1e52ed08b13370c3b4
      
https://github.com/qemu/qemu/commit/089fa2a96069546dc3a20d1e52ed08b13370c3b4
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

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

  Log Message:
  -----------
  migration: Export send_queued_data()

This function is only used for compression.  So we rename it as
compress_send_queued_data().  We put it on ram-compress.h because we
are moving it later to ram-compress.c.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-9-quintela@redhat.com>


  Commit: 8ee783feeb8ef51248f583c2538595a8ad28f3f1
      
https://github.com/qemu/qemu/commit/8ee783feeb8ef51248f583c2538595a8ad28f3f1
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

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

  Log Message:
  -----------
  migration: Move ram_flush_compressed_data() to ram-compress.c

As we export it, rename it compress_flush_data().

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-10-quintela@redhat.com>


  Commit: ca655377309b66624495b4a8709a1e6382205ff5
      
https://github.com/qemu/qemu/commit/ca655377309b66624495b4a8709a1e6382205ff5
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

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

  Log Message:
  -----------
  migration: Merge flush_compressed_data() and compress_flush_data()

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-11-quintela@redhat.com>


  Commit: a36e2a80526421d17cbf1a866f54c6fd60fed562
      
https://github.com/qemu/qemu/commit/a36e2a80526421d17cbf1a866f54c6fd60fed562
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

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

  Log Message:
  -----------
  migration: Rename ram_compressed_pages() to compress_ram_pages()

We are moving to have all functions exported from ram-compress.c to
start with compress_.

Reviewed-by: Fabiano Rosas <farosas@suse.de>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231019110724.15324-12-quintela@redhat.com>


  Commit: c8403192f0e0bcb11eb5b45d2095b361ec79264c
      
https://github.com/qemu/qemu/commit/c8403192f0e0bcb11eb5b45d2095b361ec79264c
  Author: Thomas Huth <thuth@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M hw/ipmi/ipmi_bmc_extern.c
    M hw/ipmi/isa_ipmi_bt.c
    M hw/ipmi/isa_ipmi_kcs.c

  Log Message:
  -----------
  hw/ipmi: Don't call vmstate_register() from instance_init() functions

instance_init() can be called multiple times, e.g. during introspection
of the device. We should not install the vmstate handlers here. Do it
in the realize() function instead.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Acked-by: Corey Minyard <cminyard@mvista.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020145554.662751-1-thuth@redhat.com>


  Commit: ec0ec96dc4c786a4b7a8d0bf484183fbc2087b7f
      
https://github.com/qemu/qemu/commit/ec0ec96dc4c786a4b7a8d0bf484183fbc2087b7f
  Author: Thomas Huth <thuth@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M hw/s390x/s390-skeys.c

  Log Message:
  -----------
  hw/s390x/s390-skeys: Don't call register_savevm_live() during instance_init()

Since the instance_init() function immediately tries to set the
property to "true", the s390_skeys_set_migration_enabled() tries
to register a savevm handler during instance_init(). However,
instance_init() functions can be called multiple times, e.g. for
introspection of devices. That means multiple instances of devices
can be created during runtime (which is fine as long as they all
don't get realized, too), so the "Prevent double registration of
savevm handler" check in the s390_skeys_set_migration_enabled()
function does not work at all as expected (since there could be
more than one instance).

Thus we must not call register_savevm_live() from an instance_init()
function at all. Move this to the realize() function instead. This
way we can also get rid of the property getter and setter functions
completely, simplifying the code along the way quite a bit.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Acked-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020150554.664422-2-thuth@redhat.com>


  Commit: 4b2a8e0c7fd748ec3758c29db5f79a0138e5ca59
      
https://github.com/qemu/qemu/commit/4b2a8e0c7fd748ec3758c29db5f79a0138e5ca59
  Author: Thomas Huth <thuth@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M hw/s390x/s390-stattrib.c

  Log Message:
  -----------
  hw/s390x/s390-stattrib: Simplify handling of the "migration-enabled" property

There's no need for dedicated handlers here if they don't do anything
special.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Acked-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020150554.664422-3-thuth@redhat.com>


  Commit: ee93c7bda99f3588b7a89dd94306a1a608d7de77
      
https://github.com/qemu/qemu/commit/ee93c7bda99f3588b7a89dd94306a1a608d7de77
  Author: Thomas Huth <thuth@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M hw/s390x/s390-stattrib.c

  Log Message:
  -----------
  hw/s390x/s390-stattrib: Don't call register_savevm_live() during 
instance_init()

We must not call register_savevm_live() from an instance_init() function
(since this could be called multiple times during device introspection).
Move this to the realize() function instead.

Acked-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Eric Farman <farman@linux.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020150554.664422-4-thuth@redhat.com>


  Commit: ad94056eff3e9eec70087efd7f668c8aecf45c00
      
https://github.com/qemu/qemu/commit/ad94056eff3e9eec70087efd7f668c8aecf45c00
  Author: Thomas Huth <thuth@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M migration/ram.c

  Log Message:
  -----------
  migration/ram: Fix compilation with -Wshadow=local

Rename the variable here to avoid that it shadows a variable from
the beginning of the function scope. With this change the code now
successfully compiles with -Wshadow=local.

Signed-off-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231024092220.55305-1-thuth@redhat.com>


  Commit: d104789b0f5f706327aebc8a358e0d6b8524fc6d
      
https://github.com/qemu/qemu/commit/d104789b0f5f706327aebc8a358e0d6b8524fc6d
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M include/migration/vmstate.h
    M migration/savevm.c
    M migration/vmstate.c

  Log Message:
  -----------
  migration: rename vmstate_save_needed->vmstate_section_needed

The function is used on save at this point. The following commits will
use it on load.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231024084043.2926316-5-marcandre.lureau@redhat.com>


  Commit: 187423bf0622f293c9b6e2288824c757b3dfd1d7
      
https://github.com/qemu/qemu/commit/187423bf0622f293c9b6e2288824c757b3dfd1d7
  Author: Marc-André Lureau <marcandre.lureau@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M migration/vmstate.c

  Log Message:
  -----------
  migration: set file error on subsection loading

commit 13cde50889237 ("vmstate: Return error in case of error") sets
QemuFile error to stop reading from it and report to the caller (checked
by unit tests). We should do the same on subsection loading error.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231024084043.2926316-8-marcandre.lureau@redhat.com>


  Commit: 9d3e584b7dddb0497f6b4233b896b1dec8450a21
      
https://github.com/qemu/qemu/commit/9d3e584b7dddb0497f6b4233b896b1dec8450a21
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M include/migration/vmstate.h

  Log Message:
  -----------
  migration: Create vmstate_register_any()

We have lots of cases where we are using an instance_id==0 when we
should be using VMSTATE_INSTANCE_ID_ANY (-1).  Basically everything
that can have more than one needs to have a proper instance_id or -1
and the system will take one for it.

vmstate_register_any(): We register with -1.

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-2-quintela@redhat.com>


  Commit: dd9b858064c16f9d717b3051b10f0c9495fd745c
      
https://github.com/qemu/qemu/commit/dd9b858064c16f9d717b3051b10f0c9495fd745c
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M backends/dbus-vmstate.c
    M backends/tpm/tpm_emulator.c
    M hw/i2c/core.c
    M hw/input/adb.c
    M hw/input/ads7846.c
    M hw/input/stellaris_input.c
    M hw/net/eepro100.c
    M hw/pci/pci.c
    M hw/ppc/spapr_nvdimm.c
    M hw/timer/arm_timer.c
    M hw/virtio/virtio-mem.c

  Log Message:
  -----------
  migration: Use vmstate_register_any()

This are the easiest cases, where we were already using
VMSTATE_INSTANCE_ID_ANY.

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-3-quintela@redhat.com>


  Commit: f5c544ca15027053189ce1208a3e924063b24d14
      
https://github.com/qemu/qemu/commit/f5c544ca15027053189ce1208a3e924063b24d14
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M hw/ide/isa.c

  Log Message:
  -----------
  migration: Use vmstate_register_any() for isa-ide

Otherwise qom-test fails.

ok 4 /i386/qom/x-remote
qemu-system-i386: savevm_state_handler_insert: Detected duplicate 
SaveStateEntry: id=isa-ide, instance_id=0x0
Broken pipe
../../../../../mnt/code/qemu/full/tests/qtest/libqtest.c:195: kill_qemu() tried 
to terminate QEMU process but encountered exit status 1 (expected 0)
Aborted (core dumped)
$

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-4-quintela@redhat.com>


  Commit: 0e9e4a4fbc0a1944f0b8d3fa0607286ba04b99e2
      
https://github.com/qemu/qemu/commit/0e9e4a4fbc0a1944f0b8d3fa0607286ba04b99e2
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M net/slirp.c

  Log Message:
  -----------
  migration: Use VMSTATE_INSTANCE_ID_ANY for slirp

Each user network conection create a new slirp instance.  We register
more than one slirp instance for number 0.

qemu-system-x86_64: -netdev user,id=hs1: savevm_state_handler_insert: Detected 
duplicate SaveStateEntry: id=slirp, instance_id=0x0
Broken pipe
../../../../../mnt/code/qemu/full/tests/qtest/libqtest.c:195: kill_qemu() tried 
to terminate QEMU process but encountered exit status 1 (expected 0)
Aborted (core dumped)

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-6-quintela@redhat.com>


  Commit: 49d9a71ead178a0d98c4158b872de552d236d965
      
https://github.com/qemu/qemu/commit/49d9a71ead178a0d98c4158b872de552d236d965
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M hw/intc/xics.c
    M hw/ppc/spapr.c
    M include/migration/vmstate.h
    M migration/savevm.c

  Log Message:
  -----------
  migration: Hack to maintain backwards compatibility for ppc

Current code does:
- register pre_2_10_vmstate_dummy_icp with "icp/server" and instance
  dependinfg on cpu number
- for newer machines, it register vmstate_icp with "icp/server" name
  and instance 0
- now it unregisters "icp/server" for the 1st instance.

This is wrong at many levels:
- we shouldn't have two VMSTATEDescriptions with the same name
- In case this is the only solution that we can came with, it needs to
  be:
  * register pre_2_10_vmstate_dummy_icp
  * unregister pre_2_10_vmstate_dummy_icp
  * register real vmstate_icp

Created vmstate_replace_hack_for_ppc() with warnings left and right
that it is a hack.

CC: Cedric Le Goater <clg@kaod.org>
CC: Daniel Henrique Barboza <danielhb413@gmail.com>
CC: David Gibson <david@gibson.dropbear.id.au>
CC: Greg Kurz <groug@kaod.org>

Reviewed-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-8-quintela@redhat.com>


  Commit: 23c0efcaf622378670ceaedf296509355b9ad6eb
      
https://github.com/qemu/qemu/commit/23c0efcaf622378670ceaedf296509355b9ad6eb
  Author: Peter Xu <peterx@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M migration/savevm.c

  Log Message:
  -----------
  migration: Check in savevm_state_handler_insert for dups

Before finally register one SaveStateEntry, we detect for duplicated
entries.  This could be helpful to notify us asap instead of get
silent migration failures which could be hard to diagnose.

For example, this patch will generate a message like this (if without
previous fixes on x2apic) as long as we wants to boot a VM instance
with "-smp 200,maxcpus=288,sockets=2,cores=72,threads=2" and QEMU will
bail out even before VM starts:

savevm_state_handler_insert: Detected duplicate SaveStateEntry: id=apic, 
instance_id=0x0

Suggested-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-10-quintela@redhat.com>


  Commit: 51fdd22834fd38e85deb6db33c1ea57a4c54797a
      
https://github.com/qemu/qemu/commit/51fdd22834fd38e85deb6db33c1ea57a4c54797a
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/devel/migration.rst

  Log Message:
  -----------
  migration: Improve example and documentation of vmstate_register()

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-11-quintela@redhat.com>


  Commit: 8a06b7f336547e95f9a88473bcc1701f099d5b59
      
https://github.com/qemu/qemu/commit/8a06b7f336547e95f9a88473bcc1701f099d5b59
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M audio/audio.c

  Log Message:
  -----------
  migration: Use vmstate_register_any() for audio

We can have more than one audio backend.

void audio_init_audiodevs(void)
{
    AudiodevListEntry *e;

    QSIMPLEQ_FOREACH(e, &audiodevs, next) {
        audio_init(e->dev, &error_fatal);
    }
}

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-12-quintela@redhat.com>


  Commit: 933152469be3f3da435d3b240348889698c9172c
      
https://github.com/qemu/qemu/commit/933152469be3f3da435d3b240348889698c9172c
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M hw/nvram/eeprom93xx.c

  Log Message:
  -----------
  migration: Use vmstate_register_any() for eeprom93xx

We can have more than one eeprom93xx.
For instance:

e100_nic_realize() -> eeprom93xx_new()

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-13-quintela@redhat.com>


  Commit: 28cc9019c4575e07947e8c8aa60a9eef75d2b293
      
https://github.com/qemu/qemu/commit/28cc9019c4575e07947e8c8aa60a9eef75d2b293
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M hw/display/vmware_vga.c

  Log Message:
  -----------
  migration: Use vmstate_register_any() for vmware_vga

I have no idea if we can have more than one vmware_vga device, so play
it safe.

Reviewed-by: Stefan Berger <stefanb@linux.ibm.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231020090731.28701-14-quintela@redhat.com>


  Commit: 67c51985e50f16040de294443c4a1a1757abfe11
      
https://github.com/qemu/qemu/commit/67c51985e50f16040de294443c4a1a1757abfe11
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M tests/qemu-iotests/183
    M tests/qemu-iotests/common.filter

  Log Message:
  -----------
  qemu-iotests: Filter warnings about block migration being deprecated

Create a new filter that removes the two warnings for test 183.

Reviewed-by: Hanna Czenczek <hreitz@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-2-quintela@redhat.com>


  Commit: cb8865afbef7bd2dc01dca031da9b2d77457cebd
      
https://github.com/qemu/qemu/commit/cb8865afbef7bd2dc01dca031da9b2d77457cebd
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: migrate 'inc' command option is deprecated.

Use blockdev-mirror with NBD instead.

Reviewed-by: Thomas Huth <thuth@redhat.com>
Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-3-quintela@redhat.com>


  Commit: 89bb83caa6efef552fc229f8a05bcf1ecc620e33
      
https://github.com/qemu/qemu/commit/89bb83caa6efef552fc229f8a05bcf1ecc620e33
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: migrate 'blk' command option is deprecated.

Use blocked-mirror with NBD instead.

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-4-quintela@redhat.com>


  Commit: 3bf40abed96ac9ecb5e50f83296ad04e69c1b134
      
https://github.com/qemu/qemu/commit/3bf40abed96ac9ecb5e50f83296ad04e69c1b134
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M migration/block.c
    M migration/options.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: Deprecate block migration

It is obsolete.  It is better to use driver-mirror with NBD instead.

CC: Kevin Wolf <kwolf@redhat.com>
CC: Eric Blake <eblake@redhat.com>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Hanna Czenczek <hreitz@redhat.com>

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-5-quintela@redhat.com>


  Commit: 088f7f03da3f5b3487091302b795c22b1bfe56fb
      
https://github.com/qemu/qemu/commit/088f7f03da3f5b3487091302b795c22b1bfe56fb
  Author: Juan Quintela <quintela@redhat.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M docs/about/deprecated.rst
    M migration/options.c
    M qapi/migration.json

  Log Message:
  -----------
  migration: Deprecate old compression method

Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
Acked-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-ID: <20231018115513.2163-6-quintela@redhat.com>


  Commit: 7dca816d3da5a5ac3842938ef4344752de58af08
      
https://github.com/qemu/qemu/commit/7dca816d3da5a5ac3842938ef4344752de58af08
  Author: Stefan Hajnoczi <stefanha@redhat.com>
  Date:   2023-10-25 (Wed, 25 Oct 2023)

  Changed paths:
    M audio/audio.c
    M backends/dbus-vmstate.c
    M backends/tpm/tpm_emulator.c
    M docs/about/deprecated.rst
    M docs/devel/migration.rst
    M hw/display/vmware_vga.c
    M hw/i2c/core.c
    M hw/ide/isa.c
    M hw/input/adb.c
    M hw/input/ads7846.c
    M hw/input/stellaris_input.c
    M hw/intc/xics.c
    M hw/ipmi/ipmi_bmc_extern.c
    M hw/ipmi/isa_ipmi_bt.c
    M hw/ipmi/isa_ipmi_kcs.c
    M hw/net/eepro100.c
    M hw/nvram/eeprom93xx.c
    M hw/pci/pci.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_nvdimm.c
    M hw/s390x/s390-skeys.c
    M hw/s390x/s390-stattrib.c
    M hw/timer/arm_timer.c
    M hw/virtio/virtio-mem.c
    M include/migration/vmstate.h
    M migration/block.c
    M migration/migration-hmp-cmds.c
    M migration/migration.c
    M migration/options.c
    M migration/ram-compress.c
    M migration/ram-compress.h
    M migration/ram.c
    M migration/ram.h
    M migration/rdma.c
    M migration/savevm.c
    M migration/vmstate.c
    M net/slirp.c
    M qapi/migration.json
    M tests/qemu-iotests/183
    M tests/qemu-iotests/common.filter

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

Migration Pull request (20231024)

Hi

In this PULL:
- vmstate registration fixes (thomas, juan)
- start merging vmstate_section_needed changes (marc)
- migration depreactions (juan)
- migration documentation for backwards compatibility (juan)

Please apply.

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEEGJn/jt6/WMzuA0uC9IfvGFhy1yMFAmU3wpUACgkQ9IfvGFhy
# 1yNz3w//bdjePDmdbGx7PM7lDs0UNbDiDpthgfJ35LSArOlKgmxWT8AfAKdGkvhJ
# WQr35zXMrqvDugVd6sNVdQY+mOsReMtUHBvfmz30wFRarr+zf/VU46FfiGlyIm5z
# P8rUJFfWCX3NIB7PuscyeyakHPl0KgwV2Bnw9nFZ1EEOznzY+vSofu9F0vDfY9Da
# 4M0azGsXkounr7/c1pWkwXkLbUT8Lxq0nekjJnMljZ1zfm/hSCnA3fKyOz6rNWz8
# aTJAchvWE2gb1z5KMsSq61rXI+nSLeeJK08srPuW9ijgtn5b7JuU7TarWtmW7Mrb
# FroFDt0Ofskcl72Og0CcJuL6COYJgsYAANfHjqq8+qI6PZk0u/ItXQ/SSrVy6YrI
# TlKgJqxcZ1ILqxBbtw+n7uSG9B6XuxMRCLGWXPIpeVmU9DwntBlNEap9Dbg+r+a8
# oLhBlYd8QXhJHv+d1c9K/BiTxXnZ4ut3dpOHjV7t8GfjK5eHjVFnYO09DDGTQii6
# v3Q55BLRstB/5vdxWz3swfKj1rT5FC6a+k5VcGduRLjatAEYp/9StXmIkxWSKuJ8
# 1xhzuFKvuOsF+qA/dYIXIz6cbKkv5bdj+DGcv3qhDAVY69XOdmsq6bp7KbzI56N6
# ZKlXMRxAOZ20JCwQZsRyqhwKgc5rjOml3FH3dthz3MkyOnBhF0w=
# =M6or
# -----END PGP SIGNATURE-----
# gpg: Signature made Tue 24 Oct 2023 21:11:49 HKT
# gpg:                using RSA key 1899FF8EDEBF58CCEE034B82F487EF185872D723
# gpg: Good signature from "Juan Quintela <quintela@redhat.com>" [full]
# gpg:                 aka "Juan Quintela <quintela@trasno.org>" [full]
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* tag 'migration-20231024-pull-request' of 
https://gitlab.com/juan.quintela/qemu: (39 commits)
  migration: Deprecate old compression method
  migration: Deprecate block migration
  migration: migrate 'blk' command option is deprecated.
  migration: migrate 'inc' command option is deprecated.
  qemu-iotests: Filter warnings about block migration being deprecated
  migration: Use vmstate_register_any() for vmware_vga
  migration: Use vmstate_register_any() for eeprom93xx
  migration: Use vmstate_register_any() for audio
  migration: Improve example and documentation of vmstate_register()
  migration: Check in savevm_state_handler_insert for dups
  migration: Hack to maintain backwards compatibility for ppc
  migration: Use VMSTATE_INSTANCE_ID_ANY for slirp
  migration: Use vmstate_register_any() for isa-ide
  migration: Use vmstate_register_any()
  migration: Create vmstate_register_any()
  migration: set file error on subsection loading
  migration: rename vmstate_save_needed->vmstate_section_needed
  migration/ram: Fix compilation with -Wshadow=local
  hw/s390x/s390-stattrib: Don't call register_savevm_live() during 
instance_init()
  hw/s390x/s390-stattrib: Simplify handling of the "migration-enabled" property
  ...

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>


Compare: https://github.com/qemu/qemu/compare/a95260486aa7...7dca816d3da5



reply via email to

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