From nobody Thu Apr 25 19:22:13 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=samsung.com Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1533833699103233.32356802817276; Thu, 9 Aug 2018 09:54:59 -0700 (PDT) Received: from localhost ([::1]:52036 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fnoD5-0007tU-VW for importer@patchew.org; Thu, 09 Aug 2018 12:54:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33564) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fnoCH-0007aq-3t for qemu-devel@nongnu.org; Thu, 09 Aug 2018 12:54:02 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fnoCE-000675-06 for qemu-devel@nongnu.org; Thu, 09 Aug 2018 12:54:01 -0400 Received: from mailout2.w1.samsung.com ([210.118.77.12]:58692) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1fnoCD-00063r-Gq for qemu-devel@nongnu.org; Thu, 09 Aug 2018 12:53:57 -0400 Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20180809165353euoutp02e72b97c7542257f932eaf73808f45127~JRZA9S0kq1360213602euoutp02F; Thu, 9 Aug 2018 16:53:53 +0000 (GMT) Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p1.samsung.com (KnoxPortal) with ESMTP id 20180809165353eucas1p1d4a80b47296efd6d49d461adcc15d10e~JRZAUo0OK1657916579eucas1p1g; Thu, 9 Aug 2018 16:53:53 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id B8.53.04294.0A17C6B5; Thu, 9 Aug 2018 17:53:52 +0100 (BST) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20180809165352eucas1p2359a46f1beb147fdcbd035c28bbd48d9~JRY-siCEo2167221672eucas1p2N; Thu, 9 Aug 2018 16:53:52 +0000 (GMT) Received: from eusync4.samsung.com ( [203.254.199.214]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 98.8C.04284.0A17C6B5; Thu, 9 Aug 2018 17:53:52 +0100 (BST) Received: from imaximets.rnd.samsung.ru ([106.109.129.180]) by eusync4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0PD700BUUDLNQ190@eusync4.samsung.com>; Thu, 09 Aug 2018 17:53:52 +0100 (BST) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20180809165353euoutp02e72b97c7542257f932eaf73808f45127~JRZA9S0kq1360213602euoutp02F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1533833633; bh=5IVM41rReXpJe7QWlGB367e594zde26YeTvZsYnxZ0I=; h=From:To:Cc:Subject:Date:References:From; b=YXg8xUH6gmDchK24fOcX6dCNk/+5UaARdUeIPJUXSOheGd1qkTNWGejaOkykQGtmM tccnI/uDJy/KeLlCGIk7LBS5exYAqux8aLGNKgMxIBcy6PkZHRn34JA69Pvj/rZeBC nGFAEO8kvqRIdn2PcoAITUZo1u/OZ9LyIi7i3puQ= X-AuditID: cbfec7f4-835ff700000010c6-ad-5b6c71a055cb From: Ilya Maximets To: "Michael S . Tsirkin" Date: Thu, 09 Aug 2018 19:54:37 +0300 Message-id: <1533833677-27512-1-git-send-email-i.maximets@samsung.com> X-Mailer: git-send-email 2.7.4 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprMIsWRmVeSWpSXmKPExsWy7djP87oLCnOiDTa9trC40v6T3WLZpc9M Fsc697BY/P/1itXieO8OFoutDf+ZHNg8Fu95yeTx5NpmJo/3+66yefRtWcUYwBLFZZOSmpNZ llqkb5fAlbF7XQdTwQzJiucXrzA2MG4Q7mLk5JAQMJHou9DL3MXIxSEksIJRonXVBFYI5zOj xOvjH5lgqh427WSDSCxjlFi/ch87hNPMJHGi+TIzSBWbgI7EqdVHGEFsEQEtiX+PpoHZzALb GCU+3A4AsYUFLCXWHuwFm8oioCqxbP4HMJtXwE1iwfFNUNvkJG6e6wS7SULgIavEvfUzWSAS LhLru6YxQ9jCEq+Ob2GHsGUkOjsOQjXXS9xveckI0dzBKDH90D+ohL3Eltfn2CEu4pOYtG06 0CAOoDivREebEITpIdE/vxCkQkggVuLun5nMExglFjAyrGIUTy0tzk1PLTbKSy3XK07MLS7N S9dLzs/dxAiMqtP/jn/ZwbjrT9IhRgEORiUe3gt82dFCrIllxZW5hxglOJiVRHhtfXKihXhT EiurUovy44tKc1KLDzFKc7AoifPyaaVFCwmkJ5akZqemFqQWwWSZODilGhjLJP8/z4yxOMnp 8O6S07KyVrsFtY8Xfb2WPWn2T9WpxptnbJZdcq4hcfbk+y2zlmW3a3Hsee/yL0SlVMBI+pCt wu0jxZwic/e/XRXW/DiMZc7BB/zr9Q586rv09/68zdZP2q7rHP1xLcxv66knfw0dl/1dUvaG +3Hilzum7AqM2mwqvE/Cyv+JKbEUZyQaajEXFScCAIWjZsumAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrGJMWRmVeSWpSXmKPExsVy+t/xa7oLCnOiDb5flbO40v6T3WLZpc9M Fsc697BY/P/1itXieO8OFoutDf+ZHNg8Fu95yeTx5NpmJo/3+66yefRtWcUYwBLFZZOSmpNZ llqkb5fAlbF7XQdTwQzJiucXrzA2MG4Q7mLk5JAQMJF42LSTrYuRi0NIYAmjxKmfc1hAEkIC rUwSP3cbgNhsAjoSp1YfYQSxRQS0JP49msYI0sAssI1Rouv9MTaQhLCApcTag71MIDaLgKrE svkfwGxeATeJBcc3MUFsk5O4ea6TeQIj1wJGhlWMIqmlxbnpucWGesWJucWleel6yfm5mxiB vt927OfmHYyXNgYfYhTgYFTi4WVIzYkWYk0sK67MPcQowcGsJMJr6wMU4k1JrKxKLcqPLyrN SS0+xCjNwaIkznveoDJKSCA9sSQ1OzW1ILUIJsvEwSnVwKgUwf723NUv+Zl87443Nmd9ZKuu lQx8cWf9K/FNnvt26nmviDd58N2rd9/uFfMvJ/xaMz3PlE/QcMZN4eXbw/s2skgKvenZqat5 0ZdPV43xywy+L6dExQ52dgvF33/N8G5J7ZHDz9eqPtJ7MSna3W7rmykrPf7e4Fqm2KuRUPvx phPLEflgbU0lluKMREMt5qLiRADBhlwA+QEAAA== X-CMS-MailID: 20180809165352eucas1p2359a46f1beb147fdcbd035c28bbd48d9 X-Msg-Generator: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180809165352eucas1p2359a46f1beb147fdcbd035c28bbd48d9 References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [fuzzy] X-Received-From: 210.118.77.12 Subject: [Qemu-devel] [PATCH] virtio: add support for in-order feature X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Ilya Maximets , Maxime Coquelin , Jason Wang , qemu-devel@nongnu.org, Tiwei Bie Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDMRC_1 RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" New feature bit for in-order feature of the upcoming virtio 1.1. It's already supported by DPDK vhost-user and virtio implementations. These changes required to allow feature negotiation. Signed-off-by: Ilya Maximets --- I just wanted to test this new feature in DPDK but failed to found required patch for QEMU side. So, I implemented it. At least it will be helpful for someone like me, who wants to evaluate VIRTIO_F_IN_ORDER with DPDK. hw/net/vhost_net.c | 1 + include/hw/virtio/virtio.h | 12 +++++++----- include/standard-headers/linux/virtio_config.h | 7 +++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/hw/net/vhost_net.c b/hw/net/vhost_net.c index e037db6..86879c5 100644 --- a/hw/net/vhost_net.c +++ b/hw/net/vhost_net.c @@ -78,6 +78,7 @@ static const int user_feature_bits[] =3D { VIRTIO_NET_F_MRG_RXBUF, VIRTIO_NET_F_MTU, VIRTIO_F_IOMMU_PLATFORM, + VIRTIO_F_IN_ORDER, =20 /* This bit implies RARP isn't sent by QEMU out of band */ VIRTIO_NET_F_GUEST_ANNOUNCE, diff --git a/include/hw/virtio/virtio.h b/include/hw/virtio/virtio.h index 9c1fa07..a422025 100644 --- a/include/hw/virtio/virtio.h +++ b/include/hw/virtio/virtio.h @@ -254,16 +254,18 @@ typedef struct virtio_input_conf virtio_input_conf; typedef struct VirtIOSCSIConf VirtIOSCSIConf; typedef struct VirtIORNGConf VirtIORNGConf; =20 -#define DEFINE_VIRTIO_COMMON_FEATURES(_state, _field) \ +#define DEFINE_VIRTIO_COMMON_FEATURES(_state, _field) \ DEFINE_PROP_BIT64("indirect_desc", _state, _field, \ VIRTIO_RING_F_INDIRECT_DESC, true), \ DEFINE_PROP_BIT64("event_idx", _state, _field, \ VIRTIO_RING_F_EVENT_IDX, true), \ DEFINE_PROP_BIT64("notify_on_empty", _state, _field, \ - VIRTIO_F_NOTIFY_ON_EMPTY, true), \ - DEFINE_PROP_BIT64("any_layout", _state, _field, \ - VIRTIO_F_ANY_LAYOUT, true), \ - DEFINE_PROP_BIT64("iommu_platform", _state, _field, \ + VIRTIO_F_NOTIFY_ON_EMPTY, true), \ + DEFINE_PROP_BIT64("any_layout", _state, _field, \ + VIRTIO_F_ANY_LAYOUT, true), \ + DEFINE_PROP_BIT64("in_order", _state, _field, \ + VIRTIO_F_IN_ORDER, true), \ + DEFINE_PROP_BIT64("iommu_platform", _state, _field, \ VIRTIO_F_IOMMU_PLATFORM, false) =20 hwaddr virtio_queue_get_desc_addr(VirtIODevice *vdev, int n); diff --git a/include/standard-headers/linux/virtio_config.h b/include/stand= ard-headers/linux/virtio_config.h index b777069..d20398c 100644 --- a/include/standard-headers/linux/virtio_config.h +++ b/include/standard-headers/linux/virtio_config.h @@ -71,4 +71,11 @@ * this is for compatibility with legacy systems. */ #define VIRTIO_F_IOMMU_PLATFORM 33 + +/* + * Inorder feature indicates that all buffers are used by the device + * in the same order in which they have been made available. + */ +#define VIRTIO_F_IN_ORDER 35 + #endif /* _LINUX_VIRTIO_CONFIG_H */ --=20 2.7.4