Revision tags: v9.2.0, v9.1.2, v9.1.1 |
|
#
a66f28df |
| 10-Sep-2024 |
Peter Maydell <peter.maydell@linaro.org> |
Merge tag 'migration-20240909-pull-request' of https://gitlab.com/peterx/qemu into staging
Migration pull request for 9.2
- Mattias's patch to support concurrent bounce buffers for PCI devices - Da
Merge tag 'migration-20240909-pull-request' of https://gitlab.com/peterx/qemu into staging
Migration pull request for 9.2
- Mattias's patch to support concurrent bounce buffers for PCI devices - David's memory leak fix in dirty_memory_extend() - Fabiano's CI fix to disable vmstate-static-checker test in compat tests - Denis's patch that adds one more trace point for cpu throttle changes - Yichen's multifd qatzip compressor support
# -----BEGIN PGP SIGNATURE----- # # iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCZt9VlhIccGV0ZXJ4QHJl # ZGhhdC5jb20ACgkQO1/MzfOr1wZ+4QD+NPzprFD7RF2DPHT5bdo6NTWFSZxW4dyD # oFp2vhYDEAYA/A5TTfOh3QpYBOaP2PxztZIZSLgs1bokhp+sLM3/PVsK # =6JYP # -----END PGP SIGNATURE----- # gpg: Signature made Mon 09 Sep 2024 21:07:50 BST # gpg: using EDDSA key B9184DC20CC457DACF7DD1A93B5FCCCDF3ABD706 # gpg: issuer "peterx@redhat.com" # gpg: Good signature from "Peter Xu <xzpeter@gmail.com>" [marginal] # gpg: aka "Peter Xu <peterx@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: B918 4DC2 0CC4 57DA CF7D D1A9 3B5F CCCD F3AB D706
* tag 'migration-20240909-pull-request' of https://gitlab.com/peterx/qemu: system: improve migration debug tests/migration: Add integration test for 'qatzip' compression method migration: Introduce 'qatzip' compression method migration: Add migration parameters for QATzip meson: Introduce 'qatzip' feature to the build system docs/migration: add qatzip compression feature ci: migration: Don't run python tests in the compat job softmmu/physmem: fix memory leak in dirty_memory_extend() softmmu: Support concurrent bounce buffers
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
show more ...
|
Revision tags: v9.1.0 |
|
#
80484f94 |
| 30-Aug-2024 |
Bryan Zhang <bryan.zhang@bytedance.com> |
migration: Introduce 'qatzip' compression method
Adds support for 'qatzip' as an option for the multifd compression method parameter, and implements using QAT for 'qatzip' compression and decompress
migration: Introduce 'qatzip' compression method
Adds support for 'qatzip' as an option for the multifd compression method parameter, and implements using QAT for 'qatzip' compression and decompression.
Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Prasad Pandit <pjp@fedoraproject.org> Signed-off-by: Bryan Zhang <bryan.zhang@bytedance.com> Signed-off-by: Hao Xiang <hao.xiang@linux.dev> Signed-off-by: Yichen Wang <yichen.wang@bytedance.com> Link: https://lore.kernel.org/r/20240830232722.58272-5-yichen.wang@bytedance.com Signed-off-by: Peter Xu <peterx@redhat.com>
show more ...
|
#
becd6944 |
| 06-Sep-2024 |
Peter Maydell <peter.maydell@linaro.org> |
Merge tag 'migration-20240904-pull-request' of https://gitlab.com/farosas/qemu into staging
Migration pull request
- Steve's cleanup of unused variable - Peter Maydell's fixes for several leaks in
Merge tag 'migration-20240904-pull-request' of https://gitlab.com/farosas/qemu into staging
Migration pull request
- Steve's cleanup of unused variable - Peter Maydell's fixes for several leaks in migration-test - Fabiano's flexibilization of multifd data structures for device state migration - Arman Nabiev's fix for ppc e500 migration - Thomas' fix for migration-test vs. --without-default-devices
# -----BEGIN PGP SIGNATURE----- # # iQJEBAABCAAuFiEEqhtIsKIjJqWkw2TPx5jcdBvsMZ0FAmbYVXwQHGZhcm9zYXNA # c3VzZS5kZQAKCRDHmNx0G+wxnRucEAC1vo046UGdUmbb4PaF5vKAg97io6RB2nrH # HMz56Yc0AcAKRUGwe2Z80e2jY8B6zi8Ha8b9l7cVsej095eGCF+tINIL4wRX4lHm # alDY/LkhuqjE5g5c/DaeTztyBOFLvdWHPU5eJyDOC9r7kSlnUcL1gAslH23b8uL0 # xvhPVKaTWjGIzNL1q/XfBr1WgRGqfD6dYb32HJDTq85yOnUT5sEr55aoEEu0euKh # MYbXPmi5AMbrp8nP21kzUopX8iYERRdoKwhF0ZssciGi/qJVevH70tNdbDEQSxyp # +vtP54TnL3LrzD4uY5Snng9zT9h0QrZujY79OEcxu20U0s29OQaudWkIjp7yLLUv # UnPZHS+bIyaS53DdpV94GKGGBX1wrjGC/sn8eGYzmb2yMlMjLTBoE8L5r9cadshX # XTeF4MtKGqaS3xDM2fIgACHHFl6qr/l0nENspv0raFzpf9Jx/WbpekghvTuWN6/B # pZHnoOTNiAqXS/Rnyy829vsQ0Pw4hi6wx79Z73RP+35ubZTgTmOsQx9f2FjuEh6k # JS+q9k4VJ+nntUWsYn4GS1Jlt+FXJ2hfzNj1NNFN4xLT1oioc6pCHsQyV7SBArB1 # ml2zYyfKCTC3riIRhcv/ew6OcKbhHcPFOpd/v0y40LO3mx8S0LZnUWXkcrl3XIZS # Mj5CBdlFgA== # =SRN4 # -----END PGP SIGNATURE----- # gpg: Signature made Wed 04 Sep 2024 13:41:32 BST # gpg: using RSA key AA1B48B0A22326A5A4C364CFC798DC741BEC319D # gpg: issuer "farosas@suse.de" # gpg: Good signature from "Fabiano Rosas <farosas@suse.de>" [unknown] # gpg: aka "Fabiano Almeida Rosas <fabiano.rosas@suse.com>" [unknown] # 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: AA1B 48B0 A223 26A5 A4C3 64CF C798 DC74 1BEC 319D
* tag 'migration-20240904-pull-request' of https://gitlab.com/farosas/qemu: (34 commits) tests/qtest/migration: Add a check for the availability of the "pc" machine target/ppc: Fix migration of CPUs with TLB_EMB TLB type migration/multifd: Add documentation for multifd methods migration/multifd: Add a couple of asserts for p->iov migration/multifd: Fix p->iov leak in multifd-uadk.c migration/multifd: Stop changing the packet on recv side migration/multifd: Make MultiFDMethods const migration/multifd: Move nocomp code into multifd-nocomp.c migration/multifd: Register nocomp ops dynamically migration/multifd: Standardize on multifd ops names migration/multifd: Allow multifd sync without flush migration/multifd: Replace multifd_send_state->pages with client data migration/multifd: Don't send ram data during SYNC migration/multifd: Isolate ram pages packet data migration/multifd: Remove total pages tracing migration/multifd: Move pages accounting into multifd_send_zero_page_detect() migration/multifd: Replace p->pages with an union pointer migration/multifd: Make MultiFDPages_t:offset a flexible array member migration/multifd: Introduce MultiFDSendData migration/multifd: Pass in MultiFDPages_t to file_write_ramblock_iov ...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
show more ...
|
#
62e1af13 |
| 28-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Add documentation for multifd methods
Add documentation clarifying the usage of the multifd methods. The general idea is that the client code calls into multifd to trigger send/re
migration/multifd: Add documentation for multifd methods
Add documentation clarifying the usage of the multifd methods. The general idea is that the client code calls into multifd to trigger send/recv of data and multifd then calls these hooks back from the worker threads at opportune moments so the client can process a portion of the data.
Suggested-by: Peter Xu <peterx@redhat.com> Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
308d165c |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Make MultiFDMethods const
The methods are defined at module_init time and don't ever change. Make them const.
Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by
migration/multifd: Make MultiFDMethods const
The methods are defined at module_init time and don't ever change. Make them const.
Suggested-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
40c9471e |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Move nocomp code into multifd-nocomp.c
In preparation for adding new payload types to multifd, move most of the no-compression code into multifd-nocomp.c. Let's try to keep a semb
migration/multifd: Move nocomp code into multifd-nocomp.c
In preparation for adding new payload types to multifd, move most of the no-compression code into multifd-nocomp.c. Let's try to keep a semblance of layering by not mixing general multifd control flow with the details of transmitting pages of ram.
There are still some pieces leftover, namely the p->normal, p->zero, etc variables that we use for zero page tracking and the packet allocation which is heavily dependent on the ram code.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
a0c78d81 |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Allow multifd sync without flush
Separate the multifd sync from flushing the client data to the channels. These two operations are closely related but not strictly necessary to be
migration/multifd: Allow multifd sync without flush
Separate the multifd sync from flushing the client data to the channels. These two operations are closely related but not strictly necessary to be executed together.
The multifd sync is intrinsic to how multifd works. The multiple channels operate independently and may finish IO out of order in relation to each other. This applies also between the source and destination QEMU.
Flushing the data that is left in the client-owned data structures (e.g. MultiFDPages_t) prior to sync is usually the right thing to do, but that is particular to how the ram migration is implemented with several passes over dirty data.
Make these two routines separate, allowing future code to call the sync by itself if needed. This also allows the usage of multifd_ram_send to be isolated to ram code.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
a71ef5c7 |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Replace multifd_send_state->pages with client data
Multifd currently has a simple scheduling mechanism that distributes work to the various channels by keeping storage space withi
migration/multifd: Replace multifd_send_state->pages with client data
Multifd currently has a simple scheduling mechanism that distributes work to the various channels by keeping storage space within each channel and an extra space that is given to the client. Each time the client fills the space with data and calls into multifd, that space is given to the next idle channel and a free storage space is taken from the channel and given to client for the next iteration.
This means we always need (#multifd_channels + 1) memory slots to operate multifd.
This is fine, except that the presence of this one extra memory slot doesn't allow different types of payloads to be processed at the same time in different channels, i.e. the data type of multifd_send_state->pages needs to be the same as p->pages.
For each new data type different from MultiFDPage_t that is to be handled, this logic would need to be duplicated by adding new fields to multifd_send_state, to the channels and to multifd_send_pages().
Fix this situation by moving the extra slot into the client and using only the generic type MultiFDSendData in the multifd core.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
96d396bf |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Remove total pages tracing
The total_normal_pages and total_zero_pages elements are used only for the end tracepoints of the multifd threads. These are not super useful since they
migration/multifd: Remove total pages tracing
The total_normal_pages and total_zero_pages elements are used only for the end tracepoints of the multifd threads. These are not super useful since they record per-channel numbers and are just the sum of all the pages that are transmitted per-packet, for which we already have tracepoints. Remove the totals from the tracing.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
9f0e1089 |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Replace p->pages with an union pointer
We want multifd to be able to handle more types of data than just ram pages. To start decoupling multifd from pages, replace p->pages (Multi
migration/multifd: Replace p->pages with an union pointer
We want multifd to be able to handle more types of data than just ram pages. To start decoupling multifd from pages, replace p->pages (MultiFDPages_t) with the new type MultiFDSendData that hides the client payload inside an union.
The general idea here is to isolate functions that *need* to handle MultiFDPages_t and move them in the future to multifd-ram.c, while multifd.c will stay with only the core functions that handle MultiFDSendData/MultiFDRecvData.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
0e427da0 |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Make MultiFDPages_t:offset a flexible array member
We're about to use MultiFDPages_t from inside the MultiFDSendData payload union, which means we cannot have pointers to allocate
migration/multifd: Make MultiFDPages_t:offset a flexible array member
We're about to use MultiFDPages_t from inside the MultiFDSendData payload union, which means we cannot have pointers to allocated data inside the pages structure, otherwise we'd lose the reference to that memory once another payload type touches the union. Move the offset array into the end of the structure and turn it into a flexible array member, so it is allocated along with the rest of MultiFDSendData in the next patches.
Note that other pointers, such as the ramblock pointer are still fine as long as the storage for them is not owned by the migration code and can be correctly released at some point.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
addd7d15 |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Introduce MultiFDSendData
Add a new data structure to replace p->pages in the multifd channel. This new structure will hide the multifd payload type behind an union, so we don't n
migration/multifd: Introduce MultiFDSendData
Add a new data structure to replace p->pages in the multifd channel. This new structure will hide the multifd payload type behind an union, so we don't need to add a new field to the channel each time we want to handle a different data type.
This also allow us to keep multifd_send_pages() as is, without needing to complicate the pointer switching.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
171056ec |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Remove pages->allocated
This value never changes and is always the same as page_count. We don't need a copy of it per-channel plus one in the extra slot. Remove it.
Reviewed-by:
migration/multifd: Remove pages->allocated
This value never changes and is always the same as page_count. We don't need a copy of it per-channel plus one in the extra slot. Remove it.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
90fa121c |
| 27-Aug-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Inline page_size and page_count
The MultiFD*Params structures are for per-channel data. Constant values should not be there because that needlessly wastes cycles and storage. The
migration/multifd: Inline page_size and page_count
The MultiFD*Params structures are for per-channel data. Constant values should not be there because that needlessly wastes cycles and storage. The page_size and page_count fall into this category so move them inline in multifd.h.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
b23acd3e |
| 15-Jun-2024 |
Richard Henderson <richard.henderson@linaro.org> |
Merge tag 'migration-20240614-pull-request' of https://gitlab.com/farosas/qemu into staging
Migration pull request
- Nick's reenabling of ppc64 tests + speed improvements - Yuan's IAA/QPL compressi
Merge tag 'migration-20240614-pull-request' of https://gitlab.com/farosas/qemu into staging
Migration pull request
- Nick's reenabling of ppc64 tests + speed improvements - Yuan's IAA/QPL compression support for multifd - Shameer's UADK compression support for multifd
# -----BEGIN PGP SIGNATURE----- # # iQJEBAABCAAuFiEEqhtIsKIjJqWkw2TPx5jcdBvsMZ0FAmZseDcQHGZhcm9zYXNA # c3VzZS5kZQAKCRDHmNx0G+wxncT/D/0RkSBDyY7Mg+WLIUkbXBFKxnCwpiDiub4K # FsesQfTU8IBLTHSkAMeTipZ8MMg1odfTcB6CCzRpXdJ4V07UGCxKEV77WftiomUm # bA/FmkvQRQh2iuEESV+6ciomvI33085TuZLguMQCsER1gv3BPCVjLZ3n7/oTm9MD # IdLJx9x5vLKLgT1pfHJt0x9joER77Vk7JN97fuHHvcWBlUnZ1vsmWf3ZQnnWLJNf # bg5TSlmxV1x/iGJh0GDIVyZHgBJ1jWKA7qONHxACP4mF14WFCVaQ8DYS+yL6Ggs3 # vAdOjTECE7kAbb6zk33NoZ8GO39xzrGTvYoxOGEnOCB8pco/dHyr01mdiH/NM+uF # +OTymQhO8LqJ1VGPvkDfQy2CZmb7DbkER5Y/0zBPaUJCjqNlEQUoq5UfCJDPp5Am # u5e29QQLWA1j4rsIA7L4HUP8KEuJrnANMSGaomJIjbR/rbLXwb0k5Fr9DL4J4bIu # z6e+SMrY+0SMAmx5u9WG7HhVTw8yvZM1PnrvCvFGX35nNB0VJ0//lejLGNOXjcXm # QZcytlkyKeLwn6mRJWCWlasbW07/lNegNRqBP394awFtG8OYKDgrHfTtxtJcLIiK # buLmZezuI4XVPA2WxmK+viCAfPTukpnoLaQr1yxGH22VThqwjfcEyAHQFccSvY3y # F3n9dtwpUQ== # =HAv2 # -----END PGP SIGNATURE----- # gpg: Signature made Fri 14 Jun 2024 10:04:55 AM PDT # gpg: using RSA key AA1B48B0A22326A5A4C364CFC798DC741BEC319D # gpg: issuer "farosas@suse.de" # gpg: Good signature from "Fabiano Rosas <farosas@suse.de>" [unknown] # gpg: aka "Fabiano Almeida Rosas <fabiano.rosas@suse.com>" [unknown] # 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: AA1B 48B0 A223 26A5 A4C3 64CF C798 DC74 1BEC 319D
* tag 'migration-20240614-pull-request' of https://gitlab.com/farosas/qemu: tests/migration-test: add uadk compression test migration/multifd: Switch to no compression when no hardware support migration/multifd: Add UADK based compression and decompression migration/multifd: Add UADK initialization migration/multifd: add uadk compression framework configure: Add uadk option docs/migration: add uadk compression feature tests/migration-test: add qpl compression test migration/multifd: implement qpl compression and decompression migration/multifd: implement initialization of qpl compression migration/multifd: add qpl compression method configure: add --enable-qpl build option migration/multifd: put IOV initialization into compression method docs/migration: add qpl compression feature tests/qtest/migration-test: Use custom asm bios for ppc64 tests/qtest/migration-test: Enable on ppc64 TCG tests/qtest/migration-test: Quieten ppc64 QEMU warnings tests/qtest: Move common define from libqos-spapr.h to new ppc-util.h
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
show more ...
|
#
f3d8bb75 |
| 07-Jun-2024 |
Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> |
migration/multifd: add uadk compression framework
Adds the skeleton to support uadk compression method. Complete functionality will be added in subsequent patches.
Acked-by: Markus Armbruster <armb
migration/multifd: add uadk compression framework
Adds the skeleton to support uadk compression method. Complete functionality will be added in subsequent patches.
Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com> Reviewed-by: Zhangfei Gao <zhangfei.gao@linaro.org> Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
354cac28 |
| 10-Jun-2024 |
Yuan Liu <yuan1.liu@intel.com> |
migration/multifd: add qpl compression method
add the Query Processing Library (QPL) compression method
Introduce the qpl as a new multifd migration compression method, it can use In-Memory Analyti
migration/multifd: add qpl compression method
add the Query Processing Library (QPL) compression method
Introduce the qpl as a new multifd migration compression method, it can use In-Memory Analytics Accelerator(IAA) to accelerate compression and decompression, which can not only reduce network bandwidth requirement but also reduce host compression and decompression CPU overhead.
How to enable qpl compression during migration: migrate_set_parameter multifd-compression qpl
There is no qpl compression level parameter added since it only supports level one, users do not need to specify the qpl compression level.
Signed-off-by: Yuan Liu <yuan1.liu@intel.com> Reviewed-by: Nanhai Zou <nanhai.zou@intel.com> Reviewed-by: Peter Xu <peterx@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> [fixed docs spacing in migration.json] Signed-off-by: Fabiano Rosas <farosas@suse.de>
show more ...
|
#
8f3f329f |
| 12-Mar-2024 |
Peter Maydell <peter.maydell@linaro.org> |
Merge tag 'migration-20240311-pull-request' of https://gitlab.com/peterx/qemu into staging
Migration pull request
- Avihai's fix to allow vmstate iterators to not starve for VFIO - Maksim's fix on
Merge tag 'migration-20240311-pull-request' of https://gitlab.com/peterx/qemu into staging
Migration pull request
- Avihai's fix to allow vmstate iterators to not starve for VFIO - Maksim's fix on additional check on precopy load error - Fabiano's fix on fdatasync() hang in mapped-ram - Jonathan's fix on vring cached access over MMIO regions - Cedric's cleanup patches 1-4 out of his error report series - Yu's fix for RDMA migration (which used to be broken even for 8.2) - Anthony's small cleanup/fix on err message - Steve's patches on privatize migration.h - Xiang's patchset to enable zero page detections in multifd threads
# -----BEGIN PGP SIGNATURE----- # # iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCZe9+uBIccGV0ZXJ4QHJl # ZGhhdC5jb20ACgkQO1/MzfOr1wamaQD/SvmpMEcuRndT9LPSxzXowAGDZTBpYUfv # 5XAbx80dS9IBAO8PJJgQJIBHBeacyLBjHP9CsdVtgw5/VW+wCsbfV4AB # =xavb # -----END PGP SIGNATURE----- # gpg: Signature made Mon 11 Mar 2024 21:59:20 GMT # gpg: using EDDSA key B9184DC20CC457DACF7DD1A93B5FCCCDF3ABD706 # gpg: issuer "peterx@redhat.com" # gpg: Good signature from "Peter Xu <xzpeter@gmail.com>" [marginal] # gpg: aka "Peter Xu <peterx@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: B918 4DC2 0CC4 57DA CF7D D1A9 3B5F CCCD F3AB D706
* tag 'migration-20240311-pull-request' of https://gitlab.com/peterx/qemu: (34 commits) migration/multifd: Add new migration test cases for legacy zero page checking. migration/multifd: Enable multifd zero page checking by default. migration/multifd: Implement ram_save_target_page_multifd to handle multifd version of MigrationOps::ram_save_target_page. migration/multifd: Implement zero page transmission on the multifd thread. migration/multifd: Add new migration option zero-page-detection. migration/multifd: Allow clearing of the file_bmap from multifd migration/multifd: Allow zero pages in file migration migration: purge MigrationState from public interface migration: delete unused accessors migration: privatize colo interfaces migration: migration_file_set_error migration: migration_is_device migration: migration_thread_is_self migration: export vcpu_dirty_limit_period migration: export migration_is_running migration: export migration_is_active migration: export migration_is_setup_or_active migration: remove migration.h references migration: export fewer options migration: Fix format in error message ...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
show more ...
|
#
303e6f54 |
| 11-Mar-2024 |
Hao Xiang <hao.xiang@bytedance.com> |
migration/multifd: Implement zero page transmission on the multifd thread.
1. Add zero_pages field in MultiFDPacket_t. 2. Implements the zero page detection and handling on the multifd threads for n
migration/multifd: Implement zero page transmission on the multifd thread.
1. Add zero_pages field in MultiFDPacket_t. 2. Implements the zero page detection and handling on the multifd threads for non-compression, zlib and zstd compression backends. 3. Added a new value 'multifd' in ZeroPageDetection enumeration. 4. Adds zero page counters and updates multifd send/receive tracing format to track the newly added counters.
Signed-off-by: Hao Xiang <hao.xiang@bytedance.com> Acked-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240311180015.3359271-5-hao.xiang@linux.dev Signed-off-by: Peter Xu <peterx@redhat.com>
show more ...
|
#
c90cfb52 |
| 05-Mar-2024 |
Peter Maydell <peter.maydell@linaro.org> |
Merge tag 'migration-next-pull-request' of https://gitlab.com/peterx/qemu into staging
Migartion pull request for 20240304
- Bryan's fix on multifd compression level API - Fabiano's mapped-ram seri
Merge tag 'migration-next-pull-request' of https://gitlab.com/peterx/qemu into staging
Migartion pull request for 20240304
- Bryan's fix on multifd compression level API - Fabiano's mapped-ram series (base + multifd only) - Steve's amend on cpr document in qapi/
# -----BEGIN PGP SIGNATURE----- # # iIgEABYKADAWIQS5GE3CDMRX2s990ak7X8zN86vXBgUCZeUjKhIccGV0ZXJ4QHJl # ZGhhdC5jb20ACgkQO1/MzfOr1wbv5QD/ZexBUsmZA5qyxgGvZ2yvlUBEGNOvtmKY # kRdiYPU7khMA/0N43rn4LcqKCoq4+T+EAnYizGjIyhH/7BRUyn4DUxgO # =AeEn # -----END PGP SIGNATURE----- # gpg: Signature made Mon 04 Mar 2024 01:26:02 GMT # gpg: using EDDSA key B9184DC20CC457DACF7DD1A93B5FCCCDF3ABD706 # gpg: issuer "peterx@redhat.com" # gpg: Good signature from "Peter Xu <xzpeter@gmail.com>" [marginal] # gpg: aka "Peter Xu <peterx@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: B918 4DC2 0CC4 57DA CF7D D1A9 3B5F CCCD F3AB D706
* tag 'migration-next-pull-request' of https://gitlab.com/peterx/qemu: (27 commits) migration/multifd: Document two places for mapped-ram tests/qtest/migration: Add a multifd + mapped-ram migration test migration/multifd: Add mapped-ram support to fd: URI migration/multifd: Support incoming mapped-ram stream format migration/multifd: Support outgoing mapped-ram stream format migration/multifd: Prepare multifd sync for mapped-ram migration migration/multifd: Add incoming QIOChannelFile support migration/multifd: Add outgoing QIOChannelFile support migration/multifd: Add a wrapper for channels_created migration/multifd: Allow receiving pages without packets migration/multifd: Allow multifd without packets migration/multifd: Decouple recv method from pages migration/multifd: Rename MultiFDSend|RecvParams::data to compress_data tests/qtest/migration: Add tests for mapped-ram file-based migration migration/ram: Add incoming 'mapped-ram' migration migration/ram: Add outgoing 'mapped-ram' migration migration: Add mapped-ram URI compatibility check migration/ram: Introduce 'mapped-ram' migration capability migration/qemu-file: add utility methods for working with seekable channels io: fsync before closing a file channel ...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
# Conflicts: # migration/ram.c
show more ...
|
#
a49d15a3 |
| 29-Feb-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Support incoming mapped-ram stream format
For the incoming mapped-ram migration we need to read the ramblock headers, get the pages bitmap and send the host address of each non-ze
migration/multifd: Support incoming mapped-ram stream format
For the incoming mapped-ram migration we need to read the ramblock headers, get the pages bitmap and send the host address of each non-zero page to the multifd channel thread for writing.
Usage on HMP is:
(qemu) migrate_set_capability multifd on (qemu) migrate_set_capability mapped-ram on (qemu) migrate_incoming file:migfile
(the ram.h include needs to move because we've been previously relying on it being included from migration.c. Now file.h will start including multifd.h before migration.o is processed)
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240229153017.2221-22-farosas@suse.de Signed-off-by: Peter Xu <peterx@redhat.com>
show more ...
|
#
b7b03eb6 |
| 29-Feb-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Add outgoing QIOChannelFile support
Allow multifd to open file-backed channels. This will be used when enabling the mapped-ram migration stream format which expects a seekable tra
migration/multifd: Add outgoing QIOChannelFile support
Allow multifd to open file-backed channels. This will be used when enabling the mapped-ram migration stream format which expects a seekable transport.
The QIOChannel read and write methods will use the preadv/pwritev versions which don't update the file offset at each call so we can reuse the fd without re-opening for every channel.
Contrary to the socket migration, the file migration doesn't need an asynchronous channel creation process, so expose multifd_channel_connect() and call it directly.
Note that this is just setup code and multifd cannot yet make use of the file channels.
Signed-off-by: Fabiano Rosas <farosas@suse.de> Reviewed-by: Peter Xu <peterx@redhat.com> Link: https://lore.kernel.org/r/20240229153017.2221-18-farosas@suse.de Signed-off-by: Peter Xu <peterx@redhat.com>
show more ...
|
#
a8a3e710 |
| 29-Feb-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Add a wrapper for channels_created
We'll need to access multifd_send_state->channels_created from outside multifd.c, so introduce a helper for that.
Reviewed-by: Peter Xu <peterx
migration/multifd: Add a wrapper for channels_created
We'll need to access multifd_send_state->channels_created from outside multifd.c, so introduce a helper for that.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240229153017.2221-17-farosas@suse.de Signed-off-by: Peter Xu <peterx@redhat.com>
show more ...
|
#
d117ed06 |
| 29-Feb-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Allow receiving pages without packets
Currently multifd does not need to have knowledge of pages on the receiving side because all the information needed is within the packets tha
migration/multifd: Allow receiving pages without packets
Currently multifd does not need to have knowledge of pages on the receiving side because all the information needed is within the packets that come in the stream.
We're about to add support to mapped-ram migration, which cannot use packets because it expects the ramblock section in the migration file to contain only the guest pages data.
Add a data structure to transfer pages between the ram migration code and the multifd receiving threads.
We don't want to reuse MultiFDPages_t for two reasons:
a) multifd threads don't really need to know about the data they're receiving.
b) the receiving side has to be stopped to load the pages, which means we can experiment with larger granularities than page size when transferring data.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240229153017.2221-16-farosas@suse.de Signed-off-by: Peter Xu <peterx@redhat.com>
show more ...
|
#
9db19125 |
| 29-Feb-2024 |
Fabiano Rosas <farosas@suse.de> |
migration/multifd: Decouple recv method from pages
Next patches will abstract the type of data being received by the channels, so do some cleanup now to remove references to pages and dependency on
migration/multifd: Decouple recv method from pages
Next patches will abstract the type of data being received by the channels, so do some cleanup now to remove references to pages and dependency on 'normal_num'.
Reviewed-by: Peter Xu <peterx@redhat.com> Signed-off-by: Fabiano Rosas <farosas@suse.de> Link: https://lore.kernel.org/r/20240229153017.2221-14-farosas@suse.de Signed-off-by: Peter Xu <peterx@redhat.com>
show more ...
|