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 2A178A0540; Thu, 16 Jul 2020 05:15:20 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7495B4F9A; Thu, 16 Jul 2020 05:15:19 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 875992C30 for ; Thu, 16 Jul 2020 05:15:17 +0200 (CEST) IronPort-SDR: UZau1+bNBrsk4bLN8sMJEk4N3waCVPC/O+xA+sPzkwj3H5UWb+VloEkZnM6VkkyVnzwx91VCUP Z0K0IoEjjQzw== X-IronPort-AV: E=McAfee;i="6000,8403,9683"; a="210844655" X-IronPort-AV: E=Sophos;i="5.75,357,1589266800"; d="scan'208";a="210844655" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Jul 2020 20:15:16 -0700 IronPort-SDR: vbLpcz5esd1RRY26D7OWqYy24dnE249REYUeFaTy9+l4O2zfZgktJWD32hlgs+ITUa4bFBS1pz HM93EJhGcAfA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,357,1589266800"; d="scan'208";a="430345749" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga004.jf.intel.com with ESMTP; 15 Jul 2020 20:15:15 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 15 Jul 2020 20:15:15 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 15 Jul 2020 20:15:06 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 15 Jul 2020 20:15:06 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.176) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 15 Jul 2020 20:15:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HVv8kCrH7GajdcaECcx2H4wXDfIgcjWGVuKJShLfPNSHy8BQUI8wOGaOVgbts3KwutC+jNof+MbP2YpaEc82bWlCyttzbS0pbDXegZ9Jf+uFEaluTLwoxR3uQemVh0UTbP3LXZooZgmppoub7ZOfz0LLfznXej6/+rzioPu6qKaiXYB6vJb7x1Kn8nOcg5XV0TCM/URkv4L5VBayEowqVUabT/PyFGNAnapg+UYYXnLGElSrNtP8xeYCvuAJNJ+s8DxCSBE8229ePsAkAgcfzOR4AmoaW2PYz2JtqoL6oxivQUciAv0aB9PhGi/AMlJhyt12j4DeJRWNmkUOVZ5upQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Csc5BWjTiuEhANBufowkCGhPDW23ObyaF2Yl/pChAmg=; b=RyB6GhBkCk9LsJML01PFWmOhq5HS49vXZsKTebu7O6431TmyEmdlNfbZt2meJPtUXm2Mplze41d2f53sDMmCXqV6rAF1nIph8vwhHLij4LwzeOwKCOMqluPF4pFviA0pNs/X6DVF2Fz1HBhMQoErm5qBMJjTGOqsGP2FWQ8tcYbFLbQEggYYinlvsAa8wwF4qrKX1mbKSS7JuJx66+NWHIsO0oRMCo8UWV2i44zvycD4S1QSCArEX1FIAXO47rOal1C4uI3EwVjoYIaExaBvqWDOXYMVZczO8nhfcGBYYPJS1jKvEgVNTLK+h2wKWyEbL5okpkNg8Fux4XcjUzDs+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Csc5BWjTiuEhANBufowkCGhPDW23ObyaF2Yl/pChAmg=; b=O4r0eeBHs0b6nUOW+oLd5veed46konW96lOChCrwZaLyIjWxthYpkH7BkuoWKcdTCMLlu7xMky5Z4a1iDGF1rgoY1e8D6UeRqL1FAq14PbdAOkYDcFN6hWWIh2hbIVg7hoboDKhr9dyxfxQFKFvJRSV7cymN3+eTktWN+Sy/4JY= Received: from MN2PR11MB4063.namprd11.prod.outlook.com (2603:10b6:208:13f::22) by MN2PR11MB3839.namprd11.prod.outlook.com (2603:10b6:208:fa::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.23; Thu, 16 Jul 2020 03:15:04 +0000 Received: from MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::7cde:8326:5010:c47e]) by MN2PR11MB4063.namprd11.prod.outlook.com ([fe80::7cde:8326:5010:c47e%7]) with mapi id 15.20.3174.025; Thu, 16 Jul 2020 03:15:04 +0000 From: "Xia, Chenbo" To: Adrian Moreno , "dev@dpdk.org" CC: "maxime.coquelin@redhat.com" , "Wang, Zhihong" Thread-Topic: [PATCH 3/5] net/virtio: add VIRTIO_SET_STATUS support to Virtio-user Thread-Index: AQHWWswKUtKrFPdagkOc+tOKSZLzXqkJhd0w Date: Thu, 16 Jul 2020 03:15:04 +0000 Message-ID: References: <20200715171828.95887-1-amorenoz@redhat.com> <20200715171828.95887-4-amorenoz@redhat.com> In-Reply-To: <20200715171828.95887-4-amorenoz@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.217] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f596b47f-0b93-4135-5ade-08d829366f20 x-ms-traffictypediagnostic: MN2PR11MB3839: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1417; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: otrcVk41gZHfGEQLEKsw0tBArlnqr3UtIdIFWMFgyUKQmKkksMQxvOCDPPTzggQar7tvuAK1g+PnL8+Imb540mQizd3HQzynWLg/INQZIIP1bSt81eL0N40I/rBJ36lSxGHHIViij5MyHJJ1tlK3YT/qfzFAia2xkp12/Grvjsorlo4NfXvIsBdLyg2YWFJKxwGOgRZYyO5zJn9Uqz/melnTQzSCFrcCfxRSR11o/c7p08h5f0TmuO65WsY62EiV1j/loMDjdA/roHNN77f247pNF3+JUM1gqEs3hODEzZ4dk/vHJjLL3pZbzqMB84w9NsGCOiV9+nXV0fX/Dy5SAg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR11MB4063.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(396003)(39860400002)(376002)(346002)(136003)(5660300002)(110136005)(53546011)(4326008)(83380400001)(66446008)(66476007)(52536014)(86362001)(76116006)(71200400001)(2906002)(64756008)(66556008)(66946007)(316002)(8676002)(54906003)(26005)(186003)(55016002)(8936002)(107886003)(7696005)(478600001)(6506007)(33656002)(9686003); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata: Bfy3LlZeFcLt8nBCP591tETnMSPUa5Tc+yAE4tuNrtrH5hyd/Ci7di0xfY83z4V6Oxqve2wQXmCHNn9nP95TAPgMd88DMwjFBs6FsGJ8BUY+BOlm+5Qfi9qe1no2sZyyVrzD7sDzSfRvUA4P9VvAcy2FviSZJ8mZ8aaCX3mlg/exzu+t8d9JWV6rk9xkml5JBF6D6HzSg6lz4Y2ZYNDerfjY5A8V+SsZxvdQegSs27ydRzF6BfuNaM7zUE+DCp2DeSURxn0JI85w6yFa72nKo/QMYS5qNdrcwtsx8OEK/Vvnzd07ZIWr0ooAaUZqXTgoh+42u4SZHLuu29xG54YW99P85yrNpFlPu7P88P8F3U9VZL4Wls/VQchKsKdKdOxdUnPiHoB3YQLC4yrdHymfimC1JlGvax8S8fNNWHx4NatXY1PE0e7IQvWuyFxhKXDeBlCVhY2Q8ZsARlu67u9vL/9QwfhP5ex5L4mqxjQkYCF1jJjeeAftatQQ6iSbAaIn Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4063.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f596b47f-0b93-4135-5ade-08d829366f20 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jul 2020 03:15:04.1529 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: VSfEuSFRSdSSPjnbotRD9S2CQvAaFCXaeYUIqgGtSpDhFBtC4e0tI/0r54krG/2ygWGZFF9xP+G+n5DKkpzZLw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3839 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH 3/5] net/virtio: add VIRTIO_SET_STATUS support to Virtio-user 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" Hi Adrian, > -----Original Message----- > From: Adrian Moreno > Sent: Thursday, July 16, 2020 1:18 AM > To: dev@dpdk.org > Cc: maxime.coquelin@redhat.com; Wang, Zhihong ; > amorenoz@redhat.com; Xia, Chenbo > Subject: [PATCH 3/5] net/virtio: add VIRTIO_SET_STATUS support to Virtio-= user >=20 > From: Maxime Coquelin >=20 > This patch adds support for VHOST_USER_SET_STATUS request. It is used to > make the backend aware of Virtio devices status update. >=20 > It is useful for the backend to know when the Virtio driver is done with = the Virtio > device configuration. >=20 > Signed-off-by: Maxime Coquelin > Signed-off-by: Adrian Moreno > --- > drivers/net/virtio/virtio_user/vhost.h | 6 +++++ > drivers/net/virtio/virtio_user/vhost_user.c | 10 ++++++++ > .../net/virtio/virtio_user/virtio_user_dev.c | 23 ++++++++++++++++++- > .../net/virtio/virtio_user/virtio_user_dev.h | 1 + > drivers/net/virtio/virtio_user_ethdev.c | 1 + > 5 files changed, 40 insertions(+), 1 deletion(-) >=20 > diff --git a/drivers/net/virtio/virtio_user/vhost.h > b/drivers/net/virtio/virtio_user/vhost.h > index 260e1c308..8f49ef457 100644 > --- a/drivers/net/virtio/virtio_user/vhost.h > +++ b/drivers/net/virtio/virtio_user/vhost.h > @@ -57,6 +57,10 @@ struct vhost_vring_addr { #define > VHOST_USER_PROTOCOL_F_REPLY_ACK 3 #endif >=20 > +#ifndef VHOST_USER_PROTOCOL_F_STATUS > +#define VHOST_USER_PROTOCOL_F_STATUS 16 #endif > + > enum vhost_user_request { > VHOST_USER_NONE =3D 0, > VHOST_USER_GET_FEATURES =3D 1, > @@ -77,6 +81,8 @@ enum vhost_user_request { > VHOST_USER_SET_PROTOCOL_FEATURES =3D 16, > VHOST_USER_GET_QUEUE_NUM =3D 17, > VHOST_USER_SET_VRING_ENABLE =3D 18, > + VHOST_USER_SET_STATUS =3D 39, > + VHOST_USER_GET_STATUS =3D 40, > VHOST_USER_MAX > }; >=20 > diff --git a/drivers/net/virtio/virtio_user/vhost_user.c > b/drivers/net/virtio/virtio_user/vhost_user.c > index 631d0e353..2332e01d1 100644 > --- a/drivers/net/virtio/virtio_user/vhost_user.c > +++ b/drivers/net/virtio/virtio_user/vhost_user.c > @@ -244,6 +244,8 @@ const char * const vhost_msg_strings[] =3D { > [VHOST_USER_SET_VRING_ENABLE] =3D "VHOST_SET_VRING_ENABLE", > [VHOST_USER_GET_PROTOCOL_FEATURES] =3D > "VHOST_USER_GET_PROTOCOL_FEATURES", > [VHOST_USER_SET_PROTOCOL_FEATURES] =3D > "VHOST_USER_SET_PROTOCOL_FEATURES", > + [VHOST_USER_SET_STATUS] =3D "VHOST_SET_STATUS", > + [VHOST_USER_GET_STATUS] =3D "VHOST_GET_STATUS", > }; >=20 > static int > @@ -280,6 +282,14 @@ vhost_user_sock(struct virtio_user_dev *dev, > need_reply =3D 1; > break; >=20 > + case VHOST_USER_SET_STATUS: > + if (!(dev->protocol_features & > + (1ULL << > VHOST_USER_PROTOCOL_F_STATUS))) > + return 0; > + > + if (has_reply_ack) > + msg.flags |=3D VHOST_USER_NEED_REPLY_MASK; > + /* Fallthrough */ There's a coding style issue here: WARNING:PREFER_FALLTHROUGH: Prefer 'fallthrough;' over fallthrough comment. Could you fix this? > case VHOST_USER_SET_FEATURES: > case VHOST_USER_SET_PROTOCOL_FEATURES: > case VHOST_USER_SET_LOG_BASE: > diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.c > b/drivers/net/virtio/virtio_user/virtio_user_dev.c > index 0a6991bcc..2c400a448 100644 > --- a/drivers/net/virtio/virtio_user/virtio_user_dev.c > +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.c > @@ -424,7 +424,8 @@ virtio_user_dev_setup(struct virtio_user_dev *dev) >=20 > #define VIRTIO_USER_SUPPORTED_PROTOCOL_FEATURES \ > (1ULL << VHOST_USER_PROTOCOL_F_MQ | \ > - 1ULL << VHOST_USER_PROTOCOL_F_REPLY_ACK) > + 1ULL << VHOST_USER_PROTOCOL_F_REPLY_ACK | \ > + 1ULL << VHOST_USER_PROTOCOL_F_STATUS) >=20 > int > virtio_user_dev_init(struct virtio_user_dev *dev, char *path, int queues= , @@ - > 783,3 +784,23 @@ virtio_user_handle_cq(struct virtio_user_dev *dev, uint1= 6_t > queue_idx) > __atomic_add_fetch(&vring->used->idx, 1, > __ATOMIC_RELAXED); > } > } > + > +int > +virtio_user_send_status_update(struct virtio_user_dev *dev, uint8_t > +status) { > + int ret; > + uint64_t arg =3D status; > + > + /* Vhost-user only for now */ > + if (!is_vhost_user_by_type(dev->path)) > + return 0; > + > + if (!(dev->protocol_features & (1ULL << > VHOST_USER_PROTOCOL_F_STATUS))) > + return 0; > + > + ret =3D dev->ops->send_request(dev, VHOST_USER_SET_STATUS, &arg); > + if (ret) > + return -1; Do you think we should add a log here to show if SET_STAUTS failed? Thanks! Chenbo > + > + return 0; > +} > diff --git a/drivers/net/virtio/virtio_user/virtio_user_dev.h > b/drivers/net/virtio/virtio_user/virtio_user_dev.h > index 10b274d19..a76d7cfaf 100644 > --- a/drivers/net/virtio/virtio_user/virtio_user_dev.h > +++ b/drivers/net/virtio/virtio_user/virtio_user_dev.h > @@ -74,4 +74,5 @@ void virtio_user_handle_cq(struct virtio_user_dev *dev, > uint16_t queue_idx); void virtio_user_handle_cq_packed(struct virtio_use= r_dev > *dev, > uint16_t queue_idx); > uint8_t virtio_user_handle_mq(struct virtio_user_dev *dev, uint16_t q_pa= irs); > +int virtio_user_send_status_update(struct virtio_user_dev *dev, uint8_t > +status); > #endif > diff --git a/drivers/net/virtio/virtio_user_ethdev.c > b/drivers/net/virtio/virtio_user_ethdev.c > index 5b06d8e89..e52f11341 100644 > --- a/drivers/net/virtio/virtio_user_ethdev.c > +++ b/drivers/net/virtio/virtio_user_ethdev.c > @@ -273,6 +273,7 @@ virtio_user_set_status(struct virtio_hw *hw, uint8_t > status) > else if (status =3D=3D VIRTIO_CONFIG_STATUS_RESET) > virtio_user_reset(hw); > dev->status =3D status; > + virtio_user_send_status_update(dev, status); > } >=20 > static uint8_t > -- > 2.26.2