get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2195365,
    "url": "http://patchwork.ozlabs.org/api/patches/2195365/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210202041.153736-1-dongli.zhang@oracle.com/",
    "project": {
        "id": 14,
        "url": "http://patchwork.ozlabs.org/api/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": "<20260210202041.153736-1-dongli.zhang@oracle.com>",
    "list_archive_url": null,
    "date": "2026-02-10T20:20:41",
    "name": "[1/1] target/i386/kvm: set VM ioctl KVM_SET_TSC_KHZ to maintain TSC synchronization",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "e969e739fa921e7abe2563a83f1166335aaf97a8",
    "submitter": {
        "id": 70292,
        "url": "http://patchwork.ozlabs.org/api/people/70292/?format=api",
        "name": "Dongli Zhang",
        "email": "dongli.zhang@oracle.com"
    },
    "delegate": null,
    "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260210202041.153736-1-dongli.zhang@oracle.com/mbox/",
    "series": [
        {
            "id": 491739,
            "url": "http://patchwork.ozlabs.org/api/series/491739/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=491739",
            "date": "2026-02-10T20:20:41",
            "name": "[1/1] target/i386/kvm: set VM ioctl KVM_SET_TSC_KHZ to maintain TSC synchronization",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/491739/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/patches/2195365/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195365/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 (2048-bit key;\n unprotected) header.d=oracle.com header.i=@oracle.com header.a=rsa-sha256\n header.s=corp-2025-04-25 header.b=X26rXHrN;\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=lists.gnu.org;\n envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n receiver=patchwork.ozlabs.org)"
        ],
        "Received": [
            "from lists.gnu.org (lists.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 4f9YL54ZNKz1xvb\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 11 Feb 2026 07:38:20 +1100 (AEDT)",
            "from localhost ([::1] helo=lists1p.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.90_1)\n\t(envelope-from <qemu-devel-bounces@nongnu.org>)\n\tid 1vpuUL-0007Eh-3q; Tue, 10 Feb 2026 15:37:37 -0500",
            "from eggs.gnu.org ([2001:470:142:3::10])\n by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <dongli.zhang@oracle.com>)\n id 1vpuUJ-0007ES-JW\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 15:37:35 -0500",
            "from mx0b-00069f02.pphosted.com ([205.220.177.32])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)\n (Exim 4.90_1) (envelope-from <dongli.zhang@oracle.com>)\n id 1vpuUH-0004h6-Ip\n for qemu-devel@nongnu.org; Tue, 10 Feb 2026 15:37:35 -0500",
            "from pps.filterd (m0246631.ppops.net [127.0.0.1])\n by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id\n 61AJ3tRd3799102; Tue, 10 Feb 2026 20:37:12 GMT",
            "from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com\n (iadpaimrmta02.appoci.oracle.com [147.154.18.20])\n by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c7s7rst12-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Tue, 10 Feb 2026 20:37:11 +0000 (GMT)",
            "from pps.filterd\n (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])\n by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2)\n with ESMTP id 61AJocJG013058; Tue, 10 Feb 2026 20:37:11 GMT",
            "from pps.reinject (localhost [127.0.0.1])\n by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id\n 4c826yju2r-1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);\n Tue, 10 Feb 2026 20:37:11 +0000",
            "from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com\n (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])\n by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 61AKSGNe026095;\n Tue, 10 Feb 2026 20:37:10 GMT",
            "from localhost.localdomain (ca-dev80.us.oracle.com [10.211.9.80])\n by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTP id\n 4c826yju1x-1; Tue, 10 Feb 2026 20:37:10 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc\n :content-transfer-encoding:date:from:message-id:mime-version\n :subject:to; s=corp-2025-04-25; bh=nyzTzNYRcyCLqxotWAo6S5hwXflch\n oMdaYB35OTZdZ8=; b=X26rXHrNEgRIyVL6UgYWQ+UjGQBmHag82LtBE46ErPCe3\n w+2GkLN2rGuJHi4PFTwYrvhITLXRm5E3racTxxUmUN7USQpfLw8/YLZI2wT1B52k\n Ttk7lmj3VmbvDuSezAAWcfEKQq1CGKT/o8oEic55w1bZwFKyOFuRaBp+0ur7le2a\n Wng0dk3x0Xz7xKYu/i7QOS+bifVtEnR0LdlqYO5mD8rrjoz5hCn3W1Ncc8e7xj4V\n qcSDx9039vWE0JHNK85NMCZXqEiXqVaYSndGXyLZPQtNHBppqoh+B7Q3IiBknUh7\n NMzjnsdoFyKMb1t0UsQHAslzFnP8hFiaIByk6EgsQ==",
        "From": "Dongli Zhang <dongli.zhang@oracle.com>",
        "To": "qemu-devel@nongnu.org",
        "Cc": "kvm@vger.kernel.org, pbonzini@redhat.com, mtosatti@redhat.com,\n dwmw2@infradead.org, joe.jin@oracle.com",
        "Subject": "[PATCH 1/1] target/i386/kvm: set VM ioctl KVM_SET_TSC_KHZ to maintain\n TSC synchronization",
        "Date": "Tue, 10 Feb 2026 12:20:41 -0800",
        "Message-ID": "<20260210202041.153736-1-dongli.zhang@oracle.com>",
        "X-Mailer": "git-send-email 2.43.5",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-Proofpoint-Virus-Version": "vendor=baseguard\n engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49\n definitions=2026-02-10_03,2026-02-10_02,2025-10-01_01",
        "X-Proofpoint-Spam-Details": "rule=notspam policy=default score=0 mlxscore=0\n bulkscore=0 spamscore=0\n adultscore=0 phishscore=0 mlxlogscore=999 suspectscore=0 malwarescore=0\n classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000\n definitions=main-2602100170",
        "X-Authority-Analysis": "v=2.4 cv=PZbyRyhd c=1 sm=1 tr=0 ts=698b96f7 b=1 cx=c_pps\n a=e1sVV491RgrpLwSTMOnk8w==:117\n a=e1sVV491RgrpLwSTMOnk8w==:17\n a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22\n a=GgsMoib0sEa3-_RKJdDe:22 a=VwQbUJbxAAAA:8 a=20KFwNOVAAAA:8 a=yPCof4ZbAAAA:8\n a=G1uzyK3xrw_hqu8813EA:9 cc=ntf awl=host:13697",
        "X-Proofpoint-Spam-Details-Enc": "AW1haW4tMjYwMjEwMDE3MCBTYWx0ZWRfX8p9EzsyH8TGp\n o7CHaaiUWrNDF++bBeJmusnqiSk4o99V5LRRkok5/o4VmUqX+iDt9nK29ZSAdZncoJiD/Hfi+Aw\n gLSYRCgLXlM+NNCkL/kjO5LYCwG1Vah3Npl2MCpgXvSKvH5FHXcnSDxJP1SxmI0mwlpMdnLjRaD\n Qq+wqNj+QxWT2jiYNsZu/5ohgHP8GIZRUwqbwlZDIZOwGmlE4EwAPg8bpQ13A7xdM7N3XgnZPEw\n gOI5EbHhwxJeIh/Bj370EqTPiMVdHRRfUg4C9/bJKMf4ML+CcRbfSn34TyZQmOxgeE4ImYsqrTn\n 8O6VyEaSkKSHlVQJEBxmi/AOwwzkvWRIsWjcduT0WQaaQVHQ6HndkPvRKLnoLmh0//hfkLmmpKx\n Oq7knAuZ3D4zrIos0Odi1uy0kEdA0wLsmTa5bLhpC407t8xvyTd5doBroSM60B0VVKW2ulqtKc0\n GmcW13F1RTGrraxOh50AOxKiJl6QCQfRAkj6g01I=",
        "X-Proofpoint-ORIG-GUID": "G9me7-3UeWT2L_J0yMvgxJpmrNL77kdP",
        "X-Proofpoint-GUID": "G9me7-3UeWT2L_J0yMvgxJpmrNL77kdP",
        "Received-SPF": "pass client-ip=205.220.177.32;\n envelope-from=dongli.zhang@oracle.com; helo=mx0b-00069f02.pphosted.com",
        "X-Spam_score_int": "-27",
        "X-Spam_score": "-2.8",
        "X-Spam_bar": "--",
        "X-Spam_report": "(-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_MED=-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_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001,\n RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001,\n SPF_HELO_NONE=0.001, 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": "When the guest and host use different TSC frequencies - specifically when\n\"tsc-frequency\" is configured - the guest TSC becomes unsynchronized after\nadditional vCPUs are added.\n\nSuppose the host TSC frequency is 2596.102 MHz. Here are steps to\nreproduce:\n\nCreate the QEMU instance with a different TSC frequency 2596.100 MHz.\n\n-cpu host,tsc-frequency=2596100000 \\\n-smp 2,maxcpus=8 \\\n\nAfter the guest VM has booted, add two additional vCPUs.\n\n(qemu) device_add host-x86_64-cpu,id=core2,socket-id=0,core-id=2,thread-id=0\n(qemu) device_add host-x86_64-cpu,id=core3,socket-id=0,core-id=3,thread-id=0\n\nThe guest TSC becomes unsynchronized. The vCPUs end up with different TSC\noffsets.\n\nhost# cat /sys/kernel/debug/kvm/167789-11/vcpu0/tsc-offset\n-345550695701016\nhost# cat /sys/kernel/debug/kvm/167789-11/vcpu1/tsc-offset\n-345550695701016\nhost# cat /sys/kernel/debug/kvm/167789-11/vcpu2/tsc-offset\n-345700146347894\nhost# cat /sys/kernel/debug/kvm/167789-11/vcpu3/tsc-offset\n-345700945993728\n\nThis issue occurs because KVM synchronizes the guest TSC twice for each\nnewly added vCPU. In other words, kvm_synchronize_tsc() is invoked twice\nper vCPU by KVM.\n\nDuring the first synchronization, kvm->arch.default_tsc_khz is used. During\nthe second synchronization, the TSC frequency configured by QEMU is used.\nBecause different TSC frequencies are used during these two synchronization\nsteps, the guest TSC becomes unsynchronized in KVM.\n\nLinux kernel commit ffbb61d09fc5 (\"KVM: x86: Accept KVM_[GS]ET_TSC_KHZ as\na VM ioctl.\") introduced support in KVM to help mitigate this issue. QEMU\nshould add corresponding support to address the problem on its side.\n\nAlways issue the VM ioctl KVM_SET_TSC_KHZ before creating any vCPUs, so\nthat the default TSC frequency is set correctly for all subsequently\ncreated vCPUs.\n\nSigned-off-by: Dongli Zhang <dongli.zhang@oracle.com>\n---\nThis is based on the latest QEMU commit, along with the patchset below,\nwhich has already been queued by Paolo.\nhttps://lore.kernel.org/qemu-devel/20260207134620.638214-1-pbonzini@redhat.com\n\n target/i386/kvm/kvm.c | 14 ++++++++++++++\n 1 file changed, 14 insertions(+)",
    "diff": "diff --git a/target/i386/kvm/kvm.c b/target/i386/kvm/kvm.c\nindex 9f1a4d4cbb..56bba9460d 100644\n--- a/target/i386/kvm/kvm.c\n+++ b/target/i386/kvm/kvm.c\n@@ -2065,6 +2065,9 @@ int kvm_arch_pre_create_vcpu(CPUState *cpu, Error **errp)\n     int ret;\n \n     if (first) {\n+        X86CPU *x86cpu = X86_CPU(cpu);\n+        CPUX86State *env = &x86cpu->env;\n+\n         first = false;\n \n         /*\n@@ -2086,6 +2089,17 @@ int kvm_arch_pre_create_vcpu(CPUState *cpu, Error **errp)\n                 return ret;\n             }\n         }\n+\n+        if (!is_tdx_vm() && env->tsc_khz &&\n+            kvm_check_extension(kvm_state, KVM_CAP_VM_TSC_CONTROL)) {\n+            ret = kvm_vm_ioctl(kvm_state, KVM_SET_TSC_KHZ, env->tsc_khz);\n+            if (ret < 0) {\n+                error_setg_errno(errp, -ret,\n+                           \"Unable to set TSC frequency to %\"PRId64\" kHz\",\n+                           env->tsc_khz);\n+                return ret;\n+            }\n+        }\n     }\n \n     if (is_tdx_vm()) {\n",
    "prefixes": [
        "1/1"
    ]
}