get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/1.2/patches/2225927/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2225927,
    "url": "http://patchwork.ozlabs.org/api/1.2/patches/2225927/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260421202110.306051-4-peterx@redhat.com/",
    "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": "<20260421202110.306051-4-peterx@redhat.com>",
    "list_archive_url": null,
    "date": "2026-04-21T20:20:57",
    "name": "[v2,03/16] migration/qapi: Rename MigrationStats to MigrationRAMStats",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "c07132ddbbdb1ad92ffdace804fca3eb1666ee2b",
    "submitter": {
        "id": 67717,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/67717/?format=api",
        "name": "Peter Xu",
        "email": "peterx@redhat.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260421202110.306051-4-peterx@redhat.com/mbox/",
    "series": [
        {
            "id": 500889,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/500889/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=500889",
            "date": "2026-04-21T20:20:55",
            "name": "migration/vfio: Fix a few issues on API misuse or statistic reports",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/500889/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2225927/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2225927/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=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=mimecast20190719 header.b=gLCfylLt;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256\n header.s=google header.b=mZ7CvudR;\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)"
        ],
        "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 4g0YgH6WTlz1yJG\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 06:22:19 +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 1wFHbC-0000yA-Pz; Tue, 21 Apr 2026 16:21:34 -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 <peterx@redhat.com>) id 1wFHb1-0000ve-Lk\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 16:21:24 -0400",
            "from us-smtp-delivery-124.mimecast.com ([170.10.133.124])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <peterx@redhat.com>) id 1wFHaz-0008KU-Ol\n for qemu-devel@nongnu.org; Tue, 21 Apr 2026 16:21:23 -0400",
            "from mail-qv1-f70.google.com (mail-qv1-f70.google.com\n [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS\n (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n us-mta-486-VcVydcd8PIWiwwOmTPCRoQ-1; Tue, 21 Apr 2026 16:21:19 -0400",
            "by mail-qv1-f70.google.com with SMTP id\n 6a1803df08f44-8a275472d89so69875956d6.1\n for <qemu-devel@nongnu.org>; Tue, 21 Apr 2026 13:21:19 -0700 (PDT)",
            "from x1.local ([142.189.10.167]) by smtp.gmail.com with ESMTPSA id\n 6a1803df08f44-8b02ae5c26csm114343556d6.31.2026.04.21.13.21.16\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 21 Apr 2026 13:21:17 -0700 (PDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1776802881;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=HK7r5yJsLvsvHCj6ZvcZQApu1fAXI4xH5O+3Iw5fIBI=;\n b=gLCfylLtYiqOlw5C1U0Dtcd+R+srCl0Q0xCX5VNWXl4NHalZ6bx9ZtRl/cNy+WPyoYhC6W\n sOqzpZhBBUts2soEFyWmQ9EqxNg/GC8dWbjBY6+4Q2bmt+HR06xbTPddRTCf7RshjByo/V\n EUWr7aLfGTaEaDM6ZVAekzONIu60nzA=",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=redhat.com; s=google; t=1776802879; x=1777407679; darn=nongnu.org;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:from:to:cc:subject:date\n :message-id:reply-to;\n bh=HK7r5yJsLvsvHCj6ZvcZQApu1fAXI4xH5O+3Iw5fIBI=;\n b=mZ7CvudRDgZAyWn5yo3gJqwJ+1kYCv492T+AgmW6jBmRG5vRmJL4JPQe77MCU5flba\n y9umrPXEsJa373ar9Ul+0KdJvPJnHcAOpDrweneY5TQ/qXpPw8ADfUYBADiXYNzYfp+J\n 3sboQpQUg21jwp0zV1ICGu+e2CL3q+jlGYkSjpa0F6SeT0GKZJKabgVXsjZJDvEbwyDV\n J8fWyVQkBLQw1XvIspZobpcekHfwMI7rtOq7qT5h5EaSOxOnOMOqeXTpTFZjEO3/ZREv\n hymvRT4SiuUCbm4eTMnycJHdvciVYRfz8+eFzhxh37tCwoG/QadEV4fPd3po9BJbokMQ\n aUWw=="
        ],
        "X-MC-Unique": "VcVydcd8PIWiwwOmTPCRoQ-1",
        "X-Mimecast-MFC-AGG-ID": "VcVydcd8PIWiwwOmTPCRoQ_1776802879",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776802879; x=1777407679;\n h=content-transfer-encoding:mime-version:references:in-reply-to\n :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from\n :to:cc:subject:date:message-id:reply-to;\n bh=HK7r5yJsLvsvHCj6ZvcZQApu1fAXI4xH5O+3Iw5fIBI=;\n b=h3juv0XuX2mpdsnltSAEbZANsWd0TetdXfZGgDttxZmQiN3Raz7zHgHdY56OBCmkNm\n QUqUUbryBfiMDbLVBtBLNa3ldKuEcuNCYPWoigLpn2enDDC81+8/cGzRDp8a0CChZcke\n GBjor4tV55VoNXUFcJbKLil+iGrmmZez4iPJMmhBa5PU6AHive9+kJk03DpVf0+7FObE\n DM8QFU6b575A5CSS09v3jR7sl+iMqgZpPw71ogc/MHd79lI1WrRn/Uyeqdz5IJrOXrBy\n ICp79U6ddoyzQ/NXbyR5mZZFvK21fgl+Ag8UplZxvJE15L4x4iDNGEKrvZRFPEUH1Jm6\n XRZw==",
        "X-Gm-Message-State": "AOJu0YyT3i7UZhEHaL+O/T9ToxS6xVLrMt6lwnsG8r+VOuGA146ZFzKx\n BzPKZ1xs0bI91vyGnkiI7mwEjBgcZCpdJhYk2f1clcgAQMv0xo6tWXfl45lVdFLG00LSmU2hgUw\n +E+njD62/QKMht1AqEruMiC7m22hfeWoP8fjhA52C945urXkm7WPyz2FlBCrPhpkgT/WspNPq/L\n 7ZrA4xKevb0N7D9KQEXWcZE/JB5IDjWtUu5Dygbg==",
        "X-Gm-Gg": "AeBDieu/9qXOFKzz/4q4N2UHcK4Lnk3FdAVgnI0gyBpfxF4N/K4bmNxey/JOWU26Ws1\n BtLXaPnYxDtebUEcjaBg3G5DHM3U693QtXOoS8GrwOEWViY+XzqdVa5+AmrQ6sSrv/cLyqsUhn4\n 0umPDjTy/Xf9hnPhh7yOvbtHlWyNkQwLcmDuFuOnINaGR3xkPG9atnmWVCv+FZQ3zvCv9NxAeRW\n GZzcK+FUK2O0EgaDZlfc4BhBQJzoZ9rCjEwkxl3FcdX97AuFpO5bZf26C88qNFl2k1wC1DHOZKZ\n FeBL0NM3HD2H0FELVX9aqruLJtZqHWIO1QyHtwxs5iWNPZ8oyMGMimlgXkuy6DX5LQFHzSyZQVZ\n JInKG+0ncHIsNPJZKXybWdlGoP3jz3+fL0Bay4rgpuvoehyJH0FBVW3wnrQ==",
        "X-Received": [
            "by 2002:a05:620a:4589:b0:8cd:827a:2ab3 with SMTP id\n af79cd13be357-8e792758976mr2733896485a.55.1776802878558;\n Tue, 21 Apr 2026 13:21:18 -0700 (PDT)",
            "by 2002:a05:620a:4589:b0:8cd:827a:2ab3 with SMTP id\n af79cd13be357-8e792758976mr2733888685a.55.1776802877831;\n Tue, 21 Apr 2026 13:21:17 -0700 (PDT)"
        ],
        "From": "Peter Xu <peterx@redhat.com>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "Joao Martins <joao.m.martins@oracle.com>,\n Markus Armbruster <armbru@redhat.com>,\n =?utf-8?q?C=C3=A9dric_Le_Goater?= <clg@redhat.com>,\n Avihai Horon <avihaih@nvidia.com>,\n =?utf-8?q?Daniel_P_=2E_Berrang=C3=A9?= <berrange@redhat.com>,\n Fabiano Rosas <farosas@suse.de>, Prasad Pandit <ppandit@redhat.com>,\n Alex Williamson <alex@shazbot.org>, Kirti Wankhede <kwankhede@nvidia.com>,\n Zhiyi Guo <zhguo@redhat.com>, Peter Xu <peterx@redhat.com>,\n \"Maciej S . Szmigiero\" <mail@maciej.szmigiero.name>,\n Juraj Marcin <jmarcin@redhat.com>, devel@lists.libvirt.org,\n Michal Privoznik <mprivozn@redhat.com>",
        "Subject": "[PATCH v2 03/16] migration/qapi: Rename MigrationStats to\n MigrationRAMStats",
        "Date": "Tue, 21 Apr 2026 16:20:57 -0400",
        "Message-ID": "<20260421202110.306051-4-peterx@redhat.com>",
        "X-Mailer": "git-send-email 2.53.0",
        "In-Reply-To": "<20260421202110.306051-1-peterx@redhat.com>",
        "References": "<20260421202110.306051-1-peterx@redhat.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=UTF-8",
        "Content-Transfer-Encoding": "8bit",
        "Received-SPF": "pass client-ip=170.10.133.124; envelope-from=peterx@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com",
        "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, DKIMWL_WL_HIGH=-0.001,\n DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,\n RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-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": "This stats is only about RAM, make it accurate.  This paves way for\nstatistics for all devices.\n\nThanks to Markus, who pointed out that docs/devel/qapi-code-gen.rst has a\nsection \"Compatibility considerations\" stated:\n\n    Since type names are not visible in the Client JSON Protocol, types\n    may be freely renamed.  Even certain refactorings are invisible, such\n    as splitting members from one type into a common base type.\n\nHence this change is not ABI violation according to the document.\n\nWhile at it, touch up the lines to make it read better, correct the\nrestriction on migration status being 'active' or 'completed': over time we\ngrew too many new status that will also report \"ram\" section.\n\nCc: Daniel P. Berrangé <berrange@redhat.com>\nCc: devel@lists.libvirt.org\nReviewed-by: Markus Armbruster <armbru@redhat.com>\nReviewed-by: Juraj Marcin <jmarcin@redhat.com>\nReviewed-by: Michal Privoznik <mprivozn@redhat.com>\nSigned-off-by: Peter Xu <peterx@redhat.com>\n---\n docs/about/removed-features.rst |  2 +-\n qapi/migration.json             | 10 +++++-----\n migration/migration-stats.h     |  2 +-\n 3 files changed, 7 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.rst\nindex e75db08410..626162022a 100644\n--- a/docs/about/removed-features.rst\n+++ b/docs/about/removed-features.rst\n@@ -699,7 +699,7 @@ was superseded by ``sections``.\n ``query-migrate`` return value member ``skipped`` (removed in 9.1)\n ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n \n-Member ``skipped`` of the ``MigrationStats`` struct hasn't been used\n+Member ``skipped`` of the ``MigrationRAMStats`` struct hasn't been used\n for more than 10 years. Removed with no replacement.\n \n ``migrate`` command option ``inc`` (removed in 9.1)\ndiff --git a/qapi/migration.json b/qapi/migration.json\nindex 7134d4ce47..e3ad3f0604 100644\n--- a/qapi/migration.json\n+++ b/qapi/migration.json\n@@ -12,7 +12,7 @@\n { 'include': 'sockets.json' }\n \n ##\n-# @MigrationStats:\n+# @MigrationRAMStats:\n #\n # Detailed migration status.\n #\n@@ -64,7 +64,7 @@\n #\n # Since: 0.14\n ##\n-{ 'struct': 'MigrationStats',\n+{ 'struct': 'MigrationRAMStats',\n   'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' ,\n            'duplicate': 'int',\n            'normal': 'int',\n@@ -209,8 +209,8 @@\n #     If this field is not returned, no migration process has been\n #     initiated\n #\n-# @ram: `MigrationStats` containing detailed migration status, only\n-#     returned if status is 'active' or 'completed'(since 1.2)\n+# @ram: Detailed migration RAM statistics, only returned if migration\n+#     is in progress or completed (since 1.2)\n #\n # @xbzrle-cache: `XBZRLECacheStats` containing detailed XBZRLE\n #     migration statistics, only returned if XBZRLE feature is on and\n@@ -309,7 +309,7 @@\n # Since: 0.14\n ##\n { 'struct': 'MigrationInfo',\n-  'data': {'*status': 'MigrationStatus', '*ram': 'MigrationStats',\n+  'data': {'*status': 'MigrationStatus', '*ram': 'MigrationRAMStats',\n            '*vfio': 'VfioStats',\n            '*xbzrle-cache': 'XBZRLECacheStats',\n            '*total-time': 'int',\ndiff --git a/migration/migration-stats.h b/migration/migration-stats.h\nindex c0f50144c9..1153520f7a 100644\n--- a/migration/migration-stats.h\n+++ b/migration/migration-stats.h\n@@ -27,7 +27,7 @@\n \n /*\n  * These are the ram migration statistic counters.  It is loosely\n- * based on MigrationStats.\n+ * based on MigrationRAMStats.\n  */\n typedef struct {\n     /*\n",
    "prefixes": [
        "v2",
        "03/16"
    ]
}