get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2218261,
    "url": "http://patchwork.ozlabs.org/api/patches/2218261/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/kvm-riscv/patch/20260331194202.1722082-10-vipinsh@google.com/",
    "project": {
        "id": 70,
        "url": "http://patchwork.ozlabs.org/api/projects/70/?format=api",
        "name": "Linux KVM RISC-V",
        "link_name": "kvm-riscv",
        "list_id": "kvm-riscv.lists.infradead.org",
        "list_email": "kvm-riscv@lists.infradead.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "http://lists.infradead.org/pipermail/kvm-riscv/",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<20260331194202.1722082-10-vipinsh@google.com>",
    "list_archive_url": null,
    "date": "2026-03-31T19:42:02",
    "name": "[v4,9/9] KVM: selftests: Provide README.rst for KVM selftests runner",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "8448d82b6f51af8a6a14a44c297432a91607cd0b",
    "submitter": {
        "id": 86282,
        "url": "http://patchwork.ozlabs.org/api/people/86282/?format=api",
        "name": "Vipin Sharma",
        "email": "vipinsh@google.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/kvm-riscv/patch/20260331194202.1722082-10-vipinsh@google.com/mbox/",
    "series": [
        {
            "id": 498244,
            "url": "http://patchwork.ozlabs.org/api/series/498244/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/kvm-riscv/list/?series=498244",
            "date": "2026-03-31T19:41:53",
            "name": "KVM: selftests: Create KVM selftests runner",
            "version": 4,
            "mbox": "http://patchwork.ozlabs.org/series/498244/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2218261/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2218261/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "\n <kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org>",
        "X-Original-To": "incoming@patchwork.ozlabs.org",
        "Delivered-To": "patchwork-incoming@legolas.ozlabs.org",
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n secure) header.d=lists.infradead.org header.i=@lists.infradead.org\n header.a=rsa-sha256 header.s=bombadil.20210309 header.b=kxWgIAP4;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n unprotected) header.d=google.com header.i=@google.com header.a=rsa-sha256\n header.s=20251104 header.b=Dlr76GlW;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=none (no SPF record) smtp.mailfrom=lists.infradead.org\n (client-ip=2607:7c80:54:3::133; helo=bombadil.infradead.org;\n envelope-from=kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from bombadil.infradead.org (bombadil.infradead.org\n [IPv6:2607:7c80:54:3::133])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fldn55ChPz1yCp\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 01 Apr 2026 06:42:33 +1100 (AEDT)",
            "from localhost ([::1] helo=bombadil.infradead.org)\n\tby bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1w7eyu-0000000DUWD-0l80;\n\tTue, 31 Mar 2026 19:42:32 +0000",
            "from mail-pj1-x1049.google.com ([2607:f8b0:4864:20::1049])\n\tby bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux))\n\tid 1w7eyr-0000000DUTz-434L\n\tfor kvm-riscv@lists.infradead.org;\n\tTue, 31 Mar 2026 19:42:31 +0000",
            "by mail-pj1-x1049.google.com with SMTP id\n 98e67ed59e1d1-35dacc40f92so2441437a91.2\n        for <kvm-riscv@lists.infradead.org>;\n Tue, 31 Mar 2026 12:42:29 -0700 (PDT)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;\n\td=lists.infradead.org; s=bombadil.20210309; h=Sender:\n\tContent-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post:\n\tList-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID:\n\tReferences:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID:\n\tContent-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc\n\t:Resent-Message-ID:List-Owner;\n\tbh=SGlaVB4oAo7dAktCVacBA2SiDnegAUgUHaHuLvhTH0g=; b=kxWgIAP4Cr8au8veNGpYKcusNh\n\tA/s3SNXeSS887LkuYF+rFUBclXKf5T0Zaje7nGfAPgJwIJjK9dPJ8oVGo4eynZzfPIcqpWzAObuD6\n\tY671NSk5nzZPP70Bv0rdnazg8rTzY3wyt0fTecOxZ13CB0VxsPTtWzsXPA09wdWOUt2zNxoaPpx9V\n\tXYv3H5tYQXid5NV3qDnRJKVvuRiPcZxDc5DVMmtcN6f9ghard8l0IuctfYWik7XqCq45dvWLQnnQZ\n\tLDZfe7piSHUqHcho1ZTLBaoMNcq2XVKSNyvnZDz6djsgYecd2jt4V+QVh6LtwL6Xxi7RDYkmLJUoz\n\tjD64ajMw==;",
            "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=google.com; s=20251104; t=1774986149; x=1775590949;\n darn=lists.infradead.org;\n        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to\n         :date:from:to:cc:subject:date:message-id:reply-to;\n        bh=4VWnO9ZqBqweDz2fb12798lX7BIjzp/risNDY0rLawk=;\n        b=Dlr76GlWnhxf6RuwFAL+0HDjrpGazbgfVGrrJ3uwy7pDBSv3jecs5LFltHTHE9SMHq\n         qwXLQofMduUoH6YHSx/FIIcp8dUdEFsmUzMurJ53X6cjO1rtZBayY2UnoBspmBDwQ1H+\n         M4pJyREfKKx/HoScIu08tnTy/+cnMyYuiDXp5BCmIlYw9rh+/ZjLzLW7w8aGwIeI6o57\n         2nO56CgoxW7NSt25EAJ0f07/y1JIWfysYMDyJTlkYvU1+SgmfK8T4eaNtLlVpWX100qg\n         wJXPTWxK3h/kFriIf88Snic8UbiOE4qSfoMgcukt/byOy8jQO7x/kQhOKN720Y+m7i/i\n         wR5Q=="
        ],
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n        d=1e100.net; s=20251104; t=1774986149; x=1775590949;\n        h=cc:to:from:subject:message-id:references:mime-version:in-reply-to\n         :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n        bh=4VWnO9ZqBqweDz2fb12798lX7BIjzp/risNDY0rLawk=;\n        b=HENRuS/jjukvgbwGstMZGQ3y+xCRorNLR5GMmL/luC0Q6XgcJ+kVEoqXtMTesf0vM4\n         7q65iZDMb7FaM1O0amN9/Tfp4dJUJDh3X5vg073bK8C3xNFmbRk5Q/3iT6f8KAvmJ4Oa\n         RpihMpIOwnZvXWSPgIf30ds8ftOr2Kvf3aN2V+IFws+kUmu7htrvkqWNH7PnbAW95GOg\n         ao4kahfYG4NJ8RVx1Puz2GOmrQgROgkw523akSaFiOyCs4VcFRy5+nRkXaXjSpelQGU3\n         VHT3xYwatfaRL0tj9YzdLu9kfYW+3ettOF+vjz2w8ZPu3f1zUA6cA2qQGBtJDGitAN8M\n         LeOQ==",
        "X-Forwarded-Encrypted": "i=1;\n AJvYcCUHgZwYc+9Ey/r74xoJBwqSELVFekS6++zuJSb6a5T9mesOTemvSWu8eFlPCzVSIAM3rfucoUqwe6E=@lists.infradead.org",
        "X-Gm-Message-State": "AOJu0Yy8Dpb+vVHgx38p0q6gRDoVsemJTJeL5ZFtv74kHGEx2EAlozUR\n\tTbfVMkZH7vO40Pv05vzFXQc8p/+bOLtcua7AFewBnNJl6GsRefoJ3yvvw89+dziVokWuLHD+IHT\n\tL3mfrC9S1Cw==",
        "X-Received": "from pjyw24.prod.google.com ([2002:a17:90a:ea18:b0:35d:a917:a7bf])\n (user=vipinsh job=prod-delivery.src-stubby-dispatcher) by\n 2002:a17:90b:528c:b0:35d:a3b4:2f0d\n with SMTP id 98e67ed59e1d1-35dc6e77eb0mr554628a91.6.1774986148828; Tue, 31\n Mar 2026 12:42:28 -0700 (PDT)",
        "Date": "Tue, 31 Mar 2026 12:42:02 -0700",
        "In-Reply-To": "<20260331194202.1722082-1-vipinsh@google.com>",
        "Mime-Version": "1.0",
        "References": "<20260331194202.1722082-1-vipinsh@google.com>",
        "X-Mailer": "git-send-email 2.53.0.1118.gaef5881109-goog",
        "Message-ID": "<20260331194202.1722082-10-vipinsh@google.com>",
        "Subject": "[PATCH v4 9/9] KVM: selftests: Provide README.rst for KVM selftests\n runner",
        "From": "Vipin Sharma <vipinsh@google.com>",
        "To": "kvm@vger.kernel.org, kvmarm@lists.linux.dev, kvm-riscv@lists.infradead.org",
        "Cc": "seanjc@google.com, pbonzini@redhat.com, borntraeger@linux.ibm.com,\n\tfrankja@linux.ibm.com, imbrenda@linux.ibm.com, anup@brainfault.org,\n\tatish.patra@linux.dev, zhaotianrui@loongson.cn, maobibo@loongson.cn,\n\tchenhuacai@kernel.org, maz@kernel.org, oliver.upton@linux.dev,\n\tajones@ventanamicro.com, Vipin Sharma <vipinsh@google.com>",
        "X-CRM114-Version": "20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 ",
        "X-CRM114-CacheID": "sfid-20260331_124230_010292_07356739 ",
        "X-CRM114-Status": "GOOD (  16.32  )",
        "X-Spam-Score": "-9.5 (---------)",
        "X-Spam-Report": "Spam detection software,\n running on the system \"bombadil.infradead.org\",\n has NOT identified this incoming email as spam.  The original\n message has been attached to this so you can view it or label\n similar future email.  If you have any questions, see\n the administrator of that system for details.\n Content preview:  Add README.rst for KVM selftest runner and explain how to\n   use the runner. Signed-off-by: Vipin Sharma <vipinsh@google.com> ---\n tools/testing/selftests/kvm/.gitignore\n    | 1 + tools/testing/selftests/kvm/runner/README.rst | 95\n +++++++++++++++++++\n    2 files changed, 96 insertions( [...]\n Content analysis details:   (-9.5 points, 5.0 required)\n  pts rule name              description\n ---- ----------------------\n --------------------------------------------------\n -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at https://www.dnswl.org/, no\n                             trust\n                             [2607:f8b0:4864:20:0:0:0:1049 listed in]\n                             [list.dnswl.org]\n -7.5 USER_IN_DEF_DKIM_WL    From: address is in the default DKIM welcome-list\n  0.0 SPF_HELO_NONE          SPF: HELO does not publish an SPF Record\n -0.0 SPF_PASS               SPF: sender matches SPF record\n  0.1 DKIM_SIGNED            Message has a DKIM or DK signature,\n not necessarily valid\n -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from\n author's\n                             domain\n -0.1 DKIM_VALID             Message has at least one valid DKIM or DK\n signature\n -1.9 BAYES_00               BODY: Bayes spam probability is 0 to 1%\n                             [score: 0.0000]\n -0.0 DKIMWL_WL_MED          DKIMwl.org - Medium trust sender",
        "X-BeenThere": "kvm-riscv@lists.infradead.org",
        "X-Mailman-Version": "2.1.34",
        "Precedence": "list",
        "List-Id": "<kvm-riscv.lists.infradead.org>",
        "List-Unsubscribe": "<http://lists.infradead.org/mailman/options/kvm-riscv>,\n <mailto:kvm-riscv-request@lists.infradead.org?subject=unsubscribe>",
        "List-Archive": "<http://lists.infradead.org/pipermail/kvm-riscv/>",
        "List-Post": "<mailto:kvm-riscv@lists.infradead.org>",
        "List-Help": "<mailto:kvm-riscv-request@lists.infradead.org?subject=help>",
        "List-Subscribe": "<http://lists.infradead.org/mailman/listinfo/kvm-riscv>,\n <mailto:kvm-riscv-request@lists.infradead.org?subject=subscribe>",
        "Content-Type": "text/plain; charset=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "Sender": "\"kvm-riscv\" <kvm-riscv-bounces@lists.infradead.org>",
        "Errors-To": "kvm-riscv-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org"
    },
    "content": "Add README.rst for KVM selftest runner and explain how to use the\nrunner.\n\nSigned-off-by: Vipin Sharma <vipinsh@google.com>\n---\n tools/testing/selftests/kvm/.gitignore        |  1 +\n tools/testing/selftests/kvm/runner/README.rst | 95 +++++++++++++++++++\n 2 files changed, 96 insertions(+)\n create mode 100644 tools/testing/selftests/kvm/runner/README.rst",
    "diff": "diff --git a/tools/testing/selftests/kvm/.gitignore b/tools/testing/selftests/kvm/.gitignore\nindex 548d435bde2f..83aa2fe01bac 100644\n--- a/tools/testing/selftests/kvm/.gitignore\n+++ b/tools/testing/selftests/kvm/.gitignore\n@@ -4,6 +4,7 @@\n !*.c\n !*.h\n !*.py\n+!*.rst\n !*.S\n !*.sh\n !*.test\ndiff --git a/tools/testing/selftests/kvm/runner/README.rst b/tools/testing/selftests/kvm/runner/README.rst\nnew file mode 100644\nindex 000000000000..e264c78ace68\n--- /dev/null\n+++ b/tools/testing/selftests/kvm/runner/README.rst\n@@ -0,0 +1,95 @@\n+KVM Selftest Runner\n+===================\n+\n+Execute KVM selftests with high configurability. The runner supports parallel\n+execution, hierarchical output storage, console output control, and execution\n+status reporting.\n+\n+Compatibility with KVM Selftests\n+===============================\n+\n+The runner acts as a non-intrusive wrapper around the existing KVM selftests.\n+It does not modify the underlying test binaries or the way they are built.\n+You can still run KVM selftests using traditional methods without any conflict:\n+\n+- Execute binaries directly: ``./dirty_log_perf_test -v 4``\n+- Use the standard kselftest framework: ``make -C tools/testing/selftests TARGETS=kvm run_tests``\n+\n+Comparison with kselftest framework\n+===================================\n+\n+While the standard ``kselftest`` framework provides basic execution and reporting,\n+this runner is designed for more advanced testing scenarios and offers several\n+advantages:\n+\n+- **Flexible Test Selection**: Unlike some ``kselftest`` options that may use a\n+  fixed ``suite:test`` syntax for selection, this runner leverages the\n+  filesystem. You can group tests into directories (acting as suites) or\n+  provide a list of specific test files, offering a more intuitive way to\n+  organize and execute subsets of tests.\n+- **Parallel Execution**: Run tests concurrently using the ``-j`` flag to\n+  significantly reduce total execution time.\n+- **Granular Output Control**: Control exactly what gets printed to the console\n+  for passed, failed, skipped, or timed-out tests.\n+- **Hierarchical Logging**: Automatically save the stdout and stderr of every\n+  test into a structured directory tree, making it easy to debug failures in\n+  large test runs.\n+- **Out-of-Tree Support**: Easily run test binaries located in a different\n+  directory using the ``-p`` flag.\n+\n+Generate Default Tests\n+======================\n+\n+Generate the default test case files using the provided make target::\n+\n+  # make tests_install\n+\n+This creates the ``testcases_default_gen`` directory containing ``default.test``\n+files. Each KVM selftest has a directory with a ``default.test`` file. This file\n+contains the executable path relative to the KVM selftest root directory\n+(``/tools/testing/selftests/kvm``). For example, the ``dirty_log_perf_test``\n+entry looks like::\n+\n+  # cat testcases_default_gen/dirty_log_perf_test/default.test\n+  dirty_log_perf_test\n+\n+In above testcase, the runner executes ``dirty_log_perf_test``. Testcase files\n+can provide extra arguments to the test::\n+\n+  # cat tests/dirty_log_perf_test/2slot_5vcpu_10iter.test\n+  dirty_log_perf_test -x 2 -v 5 -i 10\n+\n+In this case, the runner executes ``dirty_log_perf_test`` with the specified\n+options.\n+\n+Examples\n+========\n+\n+Display all options::\n+\n+  # python3 runner -h\n+\n+Run all default tests::\n+\n+  # python3 runner -d testcases_default_gen\n+\n+Run tests in parallel::\n+\n+  # python3 runner -d testcases_default_gen -j 40\n+\n+Print only passed test status and failed test stderr::\n+\n+  # python3 runner -d testcases_default_gen --print-passed status \\\n+  --print-failed stderr\n+\n+Run test binaries from a different directory (e.g., out-of-tree builds)::\n+\n+  # python3 runner -d testcases_default_gen -p /path/to/binaries\n+\n+Save all test outputs (stdout, stderr, status) to a directory::\n+\n+  # python3 runner -d testcases_default_gen -o test_outputs\n+\n+Run specific testcase files::\n+\n+  # python3 runner -t tests/dirty_log_perf_test/2slot_5vcpu_10iter.test\n",
    "prefixes": [
        "v4",
        "9/9"
    ]
}