{"id":2227447,"url":"http://patchwork.ozlabs.org/api/1.2/patches/2227447/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260423191958.1440-1-farosas@suse.de/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/1.2/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260423191958.1440-1-farosas@suse.de>","list_archive_url":null,"date":"2026-04-23T19:19:14","name":"[PULL,00/43] Migration patches for 2026-04-23","commit_ref":null,"pull_url":"https://gitlab.com/farosas/qemu.git tags/migration-20260423-pull-request","state":"new","archived":false,"hash":null,"submitter":{"id":85343,"url":"http://patchwork.ozlabs.org/api/1.2/people/85343/?format=json","name":"Fabiano Rosas","email":"farosas@suse.de"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20260423191958.1440-1-farosas@suse.de/mbox/","series":[],"comments":"http://patchwork.ozlabs.org/api/patches/2227447/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2227447/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=suse.de header.i=@suse.de header.a=rsa-sha256\n header.s=susede2_rsa header.b=BbRfoxuw;\n\tdkim=pass header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=1qig+DuZ;\n\tdkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de\n header.a=rsa-sha256 header.s=susede2_rsa header.b=BbRfoxuw;\n\tdkim=neutral header.d=suse.de header.i=@suse.de header.a=ed25519-sha256\n header.s=susede2_ed25519 header.b=1qig+DuZ;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org\n (client-ip=209.51.188.17; helo=lists1p.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)","smtp-out1.suse.de;\n dkim=pass header.d=suse.de header.s=susede2_rsa header.b=BbRfoxuw;\n dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=1qig+DuZ"],"Received":["from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g1mCL753kz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 05:20:45 +1000 (AEST)","from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists1p.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1wFzaq-0001kx-PB; Thu, 23 Apr 2026 15:20:08 -0400","from eggs.gnu.org ([2001:470:142:3::10])\n by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <farosas@suse.de>) id 1wFzap-0001jl-9M\n for qemu-devel@nongnu.org; Thu, 23 Apr 2026 15:20:07 -0400","from smtp-out1.suse.de ([2a07:de40:b251:101:10:150:64:1])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from <farosas@suse.de>) id 1wFzal-0001Vg-Q1\n for qemu-devel@nongnu.org; Thu, 23 Apr 2026 15:20:06 -0400","from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org\n [IPv6:2a07:de40:b281:104:10:150:64:97])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-out1.suse.de (Postfix) with ESMTPS id 4AADF6A890;\n Thu, 23 Apr 2026 19:20:01 +0000 (UTC)","from imap1.dmz-prg2.suse.org (localhost [127.0.0.1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 741E0593A3;\n Thu, 23 Apr 2026 19:20:00 +0000 (UTC)","from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167])\n by imap1.dmz-prg2.suse.org with ESMTPSA id lFRpEOBw6mlJCwAAD6G6ig\n (envelope-from <farosas@suse.de>); Thu, 23 Apr 2026 19:20:00 +0000"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1776972001;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=d0r2OBS7K3Hgx5NSx5PjWG23PFhTyZSV7OHI5QLGtKM=;\n b=BbRfoxuwpwePONVK6PTCnsajRC42uAYnf3WKImmYfGwyd/306ZTbI9jUmLyOJicgOWgJ8y\n qNxbWMLIofrLA8uCwAnRW4g+Iu8bms7jMHv/CUOumoA6aHzai9sWxKhwY26O0D0mTqW5pi\n G5iSMhOnixOwdpI2owtckJLxNIpjHbk=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1776972001;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=d0r2OBS7K3Hgx5NSx5PjWG23PFhTyZSV7OHI5QLGtKM=;\n b=1qig+DuZaaLH2M2hdnpUm4yZ0LCcuLSFKLYZPRk1qlFjzkGI3shAat4i4H+3QcI5Vb+8py\n 6wn5FNfwnI2Al0Cw==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_rsa;\n t=1776972001;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=d0r2OBS7K3Hgx5NSx5PjWG23PFhTyZSV7OHI5QLGtKM=;\n b=BbRfoxuwpwePONVK6PTCnsajRC42uAYnf3WKImmYfGwyd/306ZTbI9jUmLyOJicgOWgJ8y\n qNxbWMLIofrLA8uCwAnRW4g+Iu8bms7jMHv/CUOumoA6aHzai9sWxKhwY26O0D0mTqW5pi\n G5iSMhOnixOwdpI2owtckJLxNIpjHbk=","v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de;\n s=susede2_ed25519; t=1776972001;\n h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc:\n mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding;\n bh=d0r2OBS7K3Hgx5NSx5PjWG23PFhTyZSV7OHI5QLGtKM=;\n b=1qig+DuZaaLH2M2hdnpUm4yZ0LCcuLSFKLYZPRk1qlFjzkGI3shAat4i4H+3QcI5Vb+8py\n 6wn5FNfwnI2Al0Cw=="],"From":"Fabiano Rosas <farosas@suse.de>","To":"qemu-devel@nongnu.org","Cc":"Peter Xu <peterx@redhat.com>","Subject":"[PULL 00/43] Migration patches for 2026-04-23","Date":"Thu, 23 Apr 2026 16:19:14 -0300","Message-ID":"<20260423191958.1440-1-farosas@suse.de>","X-Mailer":"git-send-email 2.51.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","X-Spamd-Result":"default: False [-3.51 / 50.00]; BAYES_HAM(-3.00)[100.00%];\n MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000];\n R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain];\n MX_GOOD(-0.01)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; ARC_NA(0.00)[];\n FUZZY_RATELIMITED(0.00)[rspamd.com]; MIME_TRACE(0.00)[0:+];\n RCPT_COUNT_TWO(0.00)[2]; RCVD_TLS_ALL(0.00)[];\n DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519];\n FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[];\n TO_DN_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2];\n TO_MATCH_ENVRCPT_ALL(0.00)[];\n DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:mid,imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns];\n DKIM_TRACE(0.00)[suse.de:+]","X-Rspamd-Action":"no action","X-Spam-Score":"-3.51","X-Rspamd-Server":"rspamd1.dmz-prg2.suse.org","X-Rspamd-Queue-Id":"4AADF6A890","Received-SPF":"pass client-ip=2a07:de40:b251:101:10:150:64:1;\n envelope-from=farosas@suse.de; helo=smtp-out1.suse.de","X-Spam_score_int":"-20","X-Spam_score":"-2.1","X-Spam_bar":"--","X-Spam_report":"(-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,\n DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001,\n SPF_PASS=-0.001 autolearn=ham autolearn_force=no","X-Spam_action":"no action","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"qemu development <qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<https://lists.nongnu.org/archive/html/qemu-devel>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n <mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org"},"content":"The following changes since commit bb230769b4d01de714bed686161ad39a8f4f3fd1:\n\n  Merge tag 'ui-pull-request' of https://gitlab.com/marcandre.lureau/qemu into staging (2026-04-22 14:30:04 -0400)\n\nare available in the Git repository at:\n\n  https://gitlab.com/farosas/qemu.git tags/migration-20260423-pull-request\n\nfor you to fetch changes up to 78532838ab9edeaced231760693898614280cbb5:\n\n  migration/qemu-file: drop incorrect const from qemu_get_buffer_at buf (2026-04-23 12:14:52 -0300)\n\n----------------------------------------------------------------\nMigration pull request\n\n- Cleanups to internal vmstate APIs\n- Cleanups to handling of vmstate flags\n- New vmstate VMS_ARRAY_OF_POINTER_AUTO_ALLOC\n- Fixes to:\n  - functional exec test\n  - leaks in file migration\n  - mapped-ram migration input validation\n  - programming errors in qemu-file and multifd\n  - qtest leaks\n- Additions to iochannel APIs:\n  qio_channel_pread{v,}_all{,_eof}\n  qio_channel_pwrite{v,}_all\n- New migration qtest for capabilities validation\n- Tweaks to documentation and checkpatch\n\n----------------------------------------------------------------\n\nAlexander Mikhalitsyn (1):\n  tests/unit/test-vmstate: add tests for VMS_ARRAY_OF_POINTER_AUTO_ALLOC\n\nFabiano Rosas (3):\n  checkpatch: Allow spaces after all coroutine annotations\n  tests/functional: Make socat wait longer in migration exec test\n  vmstate: Stop checking size for nullptr compression\n\nJunjie Cao (7):\n  io/channel: introduce qio_channel_pread{v, }_all{, _eof}()\n  io/channel: introduce qio_channel_pwrite{v,}_all()\n  migration/file: fix type mismatch and NULL deref in\n    multifd_file_recv_data\n  tests/unit: add pread/pwrite _all tests for io channel file\n  migration/qemu-file: switch buffer_at functions to positioned I/O _all\n    helpers\n  migration/file: switch file_write_ramblock_iov to pwritev_all\n  migration/qemu-file: drop incorrect const from qemu_get_buffer_at buf\n\nMarkus Armbruster (1):\n  migration: Tweak description of migration property multifd-compression\n\nPeter Xu (9):\n  vmstate: Pass in struct itself for VMSTATE_ARRAY_OF_POINTER\n  vmstate: Pass in struct itself for VMSTATE_VARRAY_OF_POINTER_UINT32\n  vmstate: Do not set size for VMS_ARRAY_OF_POINTER\n  vmstate: Update max_elems early and check field compressable once\n  vmstate: Rename VMS_NULLPTR_MARKER to VMS_MARKER_PTR_NULL\n  vmstate: Introduce vmstate_save_field_with_vmdesc()\n  vmstate: Allow vmstate_info_nullptr to emit non-NULL markers\n  vmstate: Implement load of ptr marker in vmstate core\n  vmstate: Implement VMS_ARRAY_OF_POINTER_AUTO_ALLOC\n\nTakeru Hayasaka (1):\n  tests/qtest/migration: Add mapped-ram/postcopy validation test\n\nTrieu Huynh (3):\n  migration: fix QIOChannelFile leak on error in file_connect_outgoing\n  migration: validate page_size in mapped-ram header before use\n  tests/qtest/migration: fix fd leak in ufd_version_check\n\nVladimir Sementsov-Ogievskiy (18):\n  migration: vmstate_save_state_v: fix double error_setg\n  migration: make vmstate_save_state_v() static\n  migration: make .post_save() a void function\n  migration: vmstate_load_state(): add some newlines\n  migration: vmstate_save/load_state(): refactor tracing errors\n  migration: factor out vmstate_pre_save() from vmstate_save_state()\n  migration: factor out vmstate_save_field() from vmstate_save_state()\n  migration: factor out vmstate_pre_load() from vmstate_load_state()\n  migration: factor out vmstate_load_field() from vmstate_load_state()\n  migration: factor out vmstate_post_load() from vmstate_load_state()\n  migration: convert vmstate_subsection_save/load functions to bool\n  migration: VMStateInfo: introduce new handlers with errp\n  migration: introduce vmstate_load_vmsd() and vmstate_save_vmsd()\n  migration/cpr: move to new migration APIs\n  migration/savevm: move to new migration APIs\n  hw/s390x/css: drop use of .err_hint for vmstate\n  migration: drop VMStateField.err_hint\n  migration/vmstate-types: move to new migration APIs\n\n docs/devel/migration/main.rst          |   2 +-\n hw/block/fdc.c                         |   2 +-\n hw/core/qdev-properties-system.c       |   2 +-\n hw/display/qxl.c                       |   4 +-\n hw/display/vga.c                       |   2 +-\n hw/display/virtio-gpu.c                |   2 +-\n hw/display/vmware_vga.c                |   2 +-\n hw/i386/vmmouse.c                      |   2 +-\n hw/ide/ahci.c                          |   2 +-\n hw/intc/openpic.c                      |   2 +-\n hw/intc/spapr_xive.c                   |   2 +-\n hw/intc/xics.c                         |   2 +-\n hw/intc/xive.c                         |   2 +-\n hw/nvram/eeprom93xx.c                  |   2 +-\n hw/pci/pci.c                           |   2 +-\n hw/pci/pcie_aer.c                      |   2 +-\n hw/ppc/spapr_iommu.c                   |   2 +-\n hw/ppc/spapr_pci.c                     |   7 +-\n hw/ppc/spapr_vio.c                     |   4 +-\n hw/s390x/css.c                         |  15 +-\n hw/usb/hcd-uhci.c                      |   2 +-\n include/hw/intc/riscv_aclint.h         |   6 +-\n include/io/channel.h                   | 133 +++++\n include/migration/cpr.h                |   2 +-\n include/migration/vmstate.h            | 161 ++++--\n io/channel.c                           | 139 ++++++\n migration/cpr.c                        |  22 +-\n migration/file.c                       |  23 +-\n migration/qemu-file.c                  |  37 +-\n migration/qemu-file.h                  |   2 +-\n migration/ram.c                        |   6 +\n migration/savevm.c                     | 136 ++++--\n migration/trace-events                 |  30 +-\n migration/vmstate-types.c              | 650 ++++++++++++-------------\n migration/vmstate.c                    | 593 ++++++++++++++--------\n rust/migration/src/migratable.rs       |   6 +-\n rust/migration/src/vmstate.rs          |  12 +-\n scripts/analyze-migration.py           |  22 +-\n scripts/checkpatch.pl                  |   1 +\n target/arm/machine.c                   |   4 +-\n target/ppc/machine.c                   |   6 +-\n tests/functional/migration.py          |   2 +-\n tests/qtest/migration/file-tests.c     |  48 ++\n tests/qtest/migration/migration-util.c |  10 +-\n tests/qtest/migration/misc-tests.c     |  52 ++\n tests/unit/test-io-channel-file.c      | 207 ++++++++\n tests/unit/test-vmstate.c              |  90 +++-\n 47 files changed, 1712 insertions(+), 752 deletions(-)","diff":null,"prefixes":["PULL","00/43"]}