From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6BB2DA00C5; Mon, 6 Jul 2020 13:25:26 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1A98F1D96E; Mon, 6 Jul 2020 13:25:20 +0200 (CEST) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by dpdk.org (Postfix) with ESMTP id A54231D93E for ; Mon, 6 Jul 2020 13:25:16 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1594034716; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zmMHcUbUh+bNRFMFvBJ1eC6Em1aLL+qTaJxp65NmCH8=; b=RBJREF4E8fT37/RFco0Dq1PbSG+ZUGXW2t2KBQHvqhKlH72nbcahKgiFo6zcOBfqcNsmx1 7O8zoi6+1VeO33GtVrWy/REYVyAHUgCyyRqGiADxPT/8IJPxBdPg6HMMQJYFV2o78cCBEe 13cuf6UyhlgT6t5TmDXjSJbIxTh5Z4M= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-365-8OWhlT4xNK65VW3nrDZ_qA-1; Mon, 06 Jul 2020 07:25:11 -0400 X-MC-Unique: 8OWhlT4xNK65VW3nrDZ_qA-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 027B6100CCC2; Mon, 6 Jul 2020 11:25:10 +0000 (UTC) Received: from amorenoz.users.ipa.redhat.com (ovpn-112-91.ams2.redhat.com [10.36.112.91]) by smtp.corp.redhat.com (Postfix) with ESMTP id C161760CC0; Mon, 6 Jul 2020 11:25:02 +0000 (UTC) From: Adrian Moreno To: dev@dpdk.org, chenbo.xia@intel.com, xiaolong.ye@intel.com, shahafs@mellanox.com, matan@mellanox.com, maxime.coquelin@redhat.com, xiao.w.wang@intel.com, viacheslavo@mellanox.com Cc: jasowang@redhat.com, lulu@redhat.com, Adrian Moreno Date: Mon, 6 Jul 2020 13:24:44 +0200 Message-Id: <20200706112452.1474533-1-amorenoz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=amorenoz@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH (v20.08) v3 0/8] vhost: improve Vhost/vDPA device init X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The goal of this series is to make the Vhost/vDPA device init more robust by adding support to a new protocol feature and two new messages. VHOST_USER_SET_STATUS is received by the backend when the driver updates the virtio device status register. For now this series only deals with the DRIVER_OK bit, which indicates that the driver is done with the device initialization. So, if the feature is negotiated, make it a requirement to consider the device ready. For example, such information helps the Vhost backend to know when it can call the dev_conf vDPA callback. VIRTIO_USER_GET_STATUS is received by the backend to report the status of the virtio device as per the virtio specification. One use of this message is for the frontend to read the status after the feature negotiation. If the device has cleared the FEATURE_OK bit, the driver should interpret that the device has rejected the features and should fail accordingly. Before adding support for these new requests, some clean-ups and refactoring are done as preliminary steps to make the code more easily readable. Some vDPA APIs are also made mandatory. Note that the VHOST_USER_PROTOCOL_F_STATUS protocol feature requires frontend support. The patch that adds such support in QEMU has been included in the latest Pull Request [1] and should be merged in the coming days. [1] https://lists.gnu.org/archive/html/qemu-devel/2020-07/msg01641.html --- Changes from v2: - [Chenbo] Return RTE_VHOST_MSG_RESULT_REPLY in get_status handler - Code style error Changes from v1: - Rebased on top of virtio-next: - Dropped [PATCH 9/9] vhost: only use vDPA config workaround if needed since the latest changes have made the workaround uncessary. - Dropped [PATCH 3/9] vdpa/ifc: add support to vDPA queue enable Callbacks are now expected to reconfigure the file descriptors. - Updated the message ids as per latest version of qemu spec: - Added VHOST_USER_GET_STATUS support - [Chenbo Xia] Add validate_msg_fds to set_staus message handler --- Adrian Moreno (1): vhost: add support for virtio get status message Maxime Coquelin (7): vhost: fix virtio ready flag check vhost: refactor Virtio ready check vhost: make some vDPA callbacks mandatory vhost: check vDPA configuration succeed vhost: add support for virtio status vdpa/ifc: enable status protocol feature vdpa/mlx5: enable status protocol feature drivers/vdpa/ifc/ifcvf_vdpa.c | 3 +- drivers/vdpa/mlx5/mlx5_vdpa.c | 3 +- lib/librte_vhost/rte_vdpa_dev.h | 14 ++-- lib/librte_vhost/rte_vhost.h | 4 ++ lib/librte_vhost/socket.c | 6 +- lib/librte_vhost/vdpa.c | 10 +++ lib/librte_vhost/vhost.c | 3 +- lib/librte_vhost/vhost.h | 11 +++ lib/librte_vhost/vhost_user.c | 117 +++++++++++++++++++++++++++----- lib/librte_vhost/vhost_user.h | 7 +- 10 files changed, 148 insertions(+), 30 deletions(-) -- 2.26.2