Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2227447/?format=api
{ "id": 2227447, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2227447/?format=api", "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=api", "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=api", "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" ] }