Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217621/?format=api
{ "id": 2217621, "url": "http://patchwork.ozlabs.org/api/patches/2217621/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260330090944.1008027-3-lulu@redhat.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": "<20260330090944.1008027-3-lulu@redhat.com>", "list_archive_url": null, "date": "2026-03-30T08:58:10", "name": "[RFC,v3,2/7] virtio-net: keep tap read polling disabled while vhost owns RX", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "8c91fdea419a5352adba743652bc72a210e6f6dd", "submitter": { "id": 78960, "url": "http://patchwork.ozlabs.org/api/people/78960/?format=api", "name": "Cindy Lu", "email": "lulu@redhat.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260330090944.1008027-3-lulu@redhat.com/mbox/", "series": [ { "id": 497984, "url": "http://patchwork.ozlabs.org/api/series/497984/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=497984", "date": "2026-03-30T08:58:09", "name": "net/filter: Add AF_PACKET support for vhost-net", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/497984/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217621/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217621/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=WFtqLohA;\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 4fklp93yNXz1xrn\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 20:10:25 +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 1w78dR-0005Q4-1X; Mon, 30 Mar 2026 05:10:13 -0400", "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 <lulu@redhat.com>) id 1w78dN-0005PE-Po\n for qemu-devel@nongnu.org; Mon, 30 Mar 2026 05:10:11 -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 <lulu@redhat.com>) id 1w78dL-0000N9-OC\n for qemu-devel@nongnu.org; Mon, 30 Mar 2026 05:10:09 -0400", "from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by\n relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n cipher=TLS_AES_256_GCM_SHA384) id us-mta-580-3Q9rNd8yO52787MW6BFHNg-1; Mon,\n 30 Mar 2026 05:10:02 -0400", "from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com\n (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS\n id CE1341955E80; Mon, 30 Mar 2026 09:10:01 +0000 (UTC)", "from S2.redhat.com (unknown [10.72.112.39])\n by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP\n id 9713C30001A1; Mon, 30 Mar 2026 09:09:58 +0000 (UTC)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1774861806;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding:\n in-reply-to:in-reply-to:references:references;\n bh=ARJckNFV7lxLiDyqSx4CiZiaQcGSW8eGYbJQBu9N1Fw=;\n b=WFtqLohAyRSw1MRdaXW3sA5bFWBrL3fqr6tA7PaT06BcEfindsOnJqJa2Lhtc4QEIuddcN\n /rqcN5TuuGDns0bB/oRgbNt2kB3FYiPAybx9qSeiGEh38VfHcaPJku600f37YLsrfLmLRU\n IfAb4pTyw2Je5CLNe2uCechFo5wJcUI=", "X-MC-Unique": "3Q9rNd8yO52787MW6BFHNg-1", "X-Mimecast-MFC-AGG-ID": "3Q9rNd8yO52787MW6BFHNg_1774861802", "From": "Cindy Lu <lulu@redhat.com>", "To": "lulu@redhat.com, mst@redhat.com, jasowang@redhat.com, zhangckid@gmail.com,\n lizhijian@fujitsu.com, jmarcin@redhat.com, qemu-devel@nongnu.org", "Subject": "[RFC v3 2/7] virtio-net: keep tap read polling disabled while vhost\n owns RX", "Date": "Mon, 30 Mar 2026 16:58:10 +0800", "Message-ID": "<20260330090944.1008027-3-lulu@redhat.com>", "In-Reply-To": "<20260330090944.1008027-1-lulu@redhat.com>", "References": "<20260330090944.1008027-1-lulu@redhat.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.4", "Received-SPF": "pass client-ip=170.10.133.124; envelope-from=lulu@redhat.com;\n helo=us-smtp-delivery-124.mimecast.com", "X-Spam_score_int": "27", "X-Spam_score": "2.7", "X-Spam_bar": "++", "X-Spam_report": "(2.7 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.54,\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, RCVD_IN_SBL_CSS=3.335,\n RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=1, RCVD_IN_VALIDITY_RPBL_BLOCKED=1,\n SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no 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": "virtio_net_backend_read_poll_set() re-enables TAP read polling on\nvmstart even when kernel vhost has already taken over RX.\n\nThat lets QEMU userspace and vhost race on the same tap fd and can\ncorrupt the restored virtqueue state during migration switchover.\n\nKeep read_poll disabled for TAP backends with a started vhost_net, while\nleaving pure userspace backends unchanged.\n\nSigned-off-by: Cindy Lu <lulu@redhat.com>\n---\n hw/net/virtio-net.c | 12 +++++++++++-\n 1 file changed, 11 insertions(+), 1 deletion(-)", "diff": "diff --git a/hw/net/virtio-net.c b/hw/net/virtio-net.c\nindex d6d2188863..616590fb82 100644\n--- a/hw/net/virtio-net.c\n+++ b/hw/net/virtio-net.c\n@@ -1322,9 +1322,19 @@ static void virtio_net_backend_read_poll_set(VirtIONet *n, bool enable)\n for (i = 0; i < (int)n->max_ncs; i++) {\n NetClientState *frontend = qemu_get_subqueue(n->nic, i);\n NetClientState *backend = frontend ? frontend->peer : NULL;\n+ bool backend_enable = enable;\n \n if (backend && backend->info && backend->info->read_poll) {\n- backend->info->read_poll(backend, enable);\n+ /*\n+ * When vhost is active, the kernel backend owns the tap RX path.\n+ * Re-enabling QEMU read_poll on vmstart makes userspace and vhost\n+ * race on the same tap fd, which can corrupt the restored RX ring\n+ * during migration switchover replay.\n+ */\n+ if (enable && get_vhost_net(backend) && n->vhost_started) {\n+ backend_enable = false;\n+ }\n+ backend->info->read_poll(backend, backend_enable);\n }\n }\n }\n", "prefixes": [ "RFC", "v3", "2/7" ] }