Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2222419/?format=api
{ "id": 2222419, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2222419/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260411021205.3592118-1-jemoreira@google.com/", "project": { "id": 14, "url": "http://patchwork.ozlabs.org/api/1.1/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": "" }, "msgid": "<20260411021205.3592118-1-jemoreira@google.com>", "date": "2026-04-11T02:12:05", "name": "vhost-user.rst: Explicitly allow front-end to write to kick FDs", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "d5c62d7f866e637efc12b59b19e3f0315a34787c", "submitter": { "id": 76543, "url": "http://patchwork.ozlabs.org/api/1.1/people/76543/?format=api", "name": "Jorge E. Moreira", "email": "jemoreira@google.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/qemu-devel/patch/20260411021205.3592118-1-jemoreira@google.com/mbox/", "series": [ { "id": 499559, "url": "http://patchwork.ozlabs.org/api/1.1/series/499559/?format=api", "web_url": "http://patchwork.ozlabs.org/project/qemu-devel/list/?series=499559", "date": "2026-04-11T02:12:05", "name": "vhost-user.rst: Explicitly allow front-end to write to kick FDs", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/499559/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2222419/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2222419/checks/", "tags": {}, "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=google.com header.i=@google.com header.a=rsa-sha256\n header.s=20251104 header.b=QAgES7L/;\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 4ftGJf3rL1z1yGb\n\tfor <incoming@patchwork.ozlabs.org>; Sun, 12 Apr 2026 00:29:20 +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 1wBZKB-0007BK-BC; Sat, 11 Apr 2026 10:28:39 -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\n <3-K3ZaQkKChE0v358vz8rx55x2v.t537v3B-uvCv2454x4B.58x@flex--jemoreira.bounces.google.com>)\n id 1wBNpU-0006mR-OD\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 22:12:12 -0400", "from mail-dl1-x124a.google.com ([2607:f8b0:4864:20::124a])\n by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.90_1) (envelope-from\n <3-K3ZaQkKChE0v358vz8rx55x2v.t537v3B-uvCv2454x4B.58x@flex--jemoreira.bounces.google.com>)\n id 1wBNpT-0003vv-1w\n for qemu-devel@nongnu.org; Fri, 10 Apr 2026 22:12:12 -0400", "by mail-dl1-x124a.google.com with SMTP id\n a92af1059eb24-12711ec96fbso5928591c88.0\n for <qemu-devel@nongnu.org>; Fri, 10 Apr 2026 19:12:10 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=google.com; s=20251104; t=1775873529; x=1776478329; darn=nongnu.org;\n h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject\n :date:message-id:reply-to;\n bh=RUi25tL6VRbh424glOaREy1evXPETqqAzqCwfi2sKiE=;\n b=QAgES7L/8uOsA6P4cxfZUEj6OuEEomqPni2FjrNbqX5WCbJNx+tYSnmm4LeD4GVfHK\n iskkmik6mvpIFSZ0KJGYexVP6+ykksZBh29wGrAGdPOmUZGsXJDCvsAamaaJmDyrdojR\n GGzgiUcyxgUQDL/iYmT6KIf8tbl4pVvTUyML7D0txGQREYH1yH64hfEbiWtrhW73J/dW\n 6Mk8hBTiHv69hgcTIwshA/ru6Ovd8yyoL3AG6Xql7Cd+duagFSJ5isvouKYAcgZZkQdD\n 3Uh1gJ6EXuVMqak2dkOfBG3/jw8ASm9fX34knkWT3IAX80PsxlqDSHw7ishAzxDn3xh2\n QzWQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775873529; x=1776478329;\n h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state\n :from:to:cc:subject:date:message-id:reply-to;\n bh=RUi25tL6VRbh424glOaREy1evXPETqqAzqCwfi2sKiE=;\n b=gCXQzuNmgiEfiQJvUbKvs1QR5e+iuxzZLKDC8g8x3JIpOae/9pstkmcQd4mOmsiQ62\n 3LUdtE5CFQ9gqs9KzDdV1xrXEtMz5SMPhB7lv1QU1TdCg6YMHY40lbRnwpqRNBZARvea\n 9gglnstN+Ls4JCHSEjF6n5D8oR7vreJaj1RmaJd0R9L3T8SQ3NdKIlm399KrtsBcxUeI\n 7kxSVA67AiiXx9jVwcR4U+8oefXseeI0jAodHrNx2Tk2zkH/nOOmQ3Cnta6bgJKn7OOq\n VrZ0z26B0G9XuxNFkByRZmXc00ZQ+M4bCJLJtBcosqEh7euVMYQ5sOJbdjCux83LZJE2\n ppGA==", "X-Forwarded-Encrypted": "i=1;\n AJvYcCXGXX6bLezs8tnQkCAoD/1Te9Audp+qZM+1iAUucfSLfQyiXUxVN8zdYxaKda3vvmZnqnnXKnJHHQJf@nongnu.org", "X-Gm-Message-State": "AOJu0Ywrn6+3Kr2FTWvtrjvmnys2lYXH+NLTR2iPm2Q/UUybXIjqQGIz\n Ci+Pol4hVRm73AgOsvYqKlIqcgsovhYq/+Kisx8Xlh2wu47tQrVzQ+H2bHmruQ7u/HWYt4DFZG4\n 5oyekBMl/lhbA+EmXYA==", "X-Received": "from dlea18-n2.prod.google.com\n ([2002:a05:701b:4212:20b0:128:ed1b:481d])\n (user=jemoreira job=prod-delivery.src-stubby-dispatcher) by\n 2002:a05:7022:6299:b0:127:1492:e370 with SMTP id\n a92af1059eb24-12c34e92fc6mr3404027c88.5.1775873528758;\n Fri, 10 Apr 2026 19:12:08 -0700 (PDT)", "Date": "Fri, 10 Apr 2026 19:12:05 -0700", "Mime-Version": "1.0", "X-Mailer": "git-send-email 2.53.0.1213.gd9a14994de-goog", "Message-ID": "<20260411021205.3592118-1-jemoreira@google.com>", "Subject": "[PATCH] vhost-user.rst: Explicitly allow front-end to write to kick\n FDs", "From": "\"Jorge E. Moreira\" <jemoreira@google.com>", "To": "\"Michael S . Tsirkin\" <mst@redhat.com>,\n Stefano Garzarella <sgarzare@redhat.com>,\n Hanna Czenczek <xanclic@gmail.com>", "Cc": "Pierrick Bouvier <pierrick.bouvier@linaro.org>, qemu-devel@nongnu.org,\n \"Jorge E. Moreira\" <jemoreira@google.com>", "Content-Type": "text/plain; charset=\"UTF-8\"", "Received-SPF": "pass client-ip=2607:f8b0:4864:20::124a;\n envelope-from=3-K3ZaQkKChE0v358vz8rx55x2v.t537v3B-uvCv2454x4B.58x@flex--jemoreira.bounces.google.com;\n helo=mail-dl1-x124a.google.com", "X-Spam_score_int": "-95", "X-Spam_score": "-9.6", "X-Spam_bar": "---------", "X-Spam_report": "(-9.6 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001,\n USER_IN_DEF_DKIM_WL=-7.5 autolearn=ham autolearn_force=no", "X-Spam_action": "no action", "X-Mailman-Approved-At": "Sat, 11 Apr 2026 10:28:37 -0400", "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": "Migration of back-end state happens while the device is suspended (i.e\nall vrings are stopped). To resume normal operation on the destination,\nthe vrings need to be started again with a kick (either a write on the\nFD or the VHOST_USER_VRING_KICK in-band message if negotiated). While\nthese notifications are typically sent by the driver, it has no reason\nto send them in the destination if it already sent them in the source as\nthe driver is unaware that a migration took place. Therefore it should\nbe the responsibility of the vhost-user front-end to ensure these vrings\nare started. This is particularly necessary for queues where data only\nflows from device to driver, such as those used by the vsock and input\ndevices.\n\nThis behavior is already used by some qemu vhost-user front-ends (e.g\nvhost-user-blk) and by front-ends implemented on other VMMs(e.g CrosVm).\nAdding it to the vhost-user documentation makes it explicit that this\nstrategy is permitted and suggest it to vhost-user front-end authors.\nExplicitly documenting it is necessary because vring kicks appear\ndesigned to originate in the driver, so having some originate in the\nfront-end can be counterintuitive and cause developers to waste time\nlooking for other alternatives or face pushback during code review.\n\nSigned-off-by: Jorge E. Moreira <jemoreira@google.com>\n---\n docs/interop/vhost-user.rst | 5 ++++-\n 1 file changed, 4 insertions(+), 1 deletion(-)", "diff": "diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst\nindex 137c9f3669..ad5aba3430 100644\n--- a/docs/interop/vhost-user.rst\n+++ b/docs/interop/vhost-user.rst\n@@ -656,7 +656,10 @@ destination, following the usual protocol for establishing a connection\n to a vhost-user back-end: This includes, for example, setting up memory\n mappings and kick and call FDs as necessary, negotiating protocol\n features, or setting the initial vring base indices (to the same value\n-as on the source side, so that operation can resume).\n+as on the source side, so that operation can resume). The vhost-user front-end\n+may also write to the kick FDs of vrings containing unused buffers or send\n+``VHOST_USER_VRING_KICK`` if negotiated to start those vrings in the destination\n+since the driver likely already kicked them in the source and won't do it again.\n \n Both on the source and on the destination side, after the respective\n front-end has seen all data transferred (when the transfer FD has been\n", "prefixes": [] }