From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6B9E4A00C2; Thu, 13 Oct 2022 03:00:47 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 13B2E42C94; Thu, 13 Oct 2022 03:00:47 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mails.dpdk.org (Postfix) with ESMTP id 5AA1E42C27 for ; Thu, 13 Oct 2022 03:00:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665622845; x=1697158845; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=YnBDKonQZTfT6rmGvv7SJD1Ey4R2PnzB4pJrnGpvRpM=; b=Q8OKOgX5h1uzph72odk094sMW2QRNf2BCmxqo2jE64EJkeg5lHFgyuor sM3ErCUCBg2TLwEKQCspgKGlBqOFUFdULS6vm3GwODtSke2Q3zVn6ObvR Wp8fub6rJSnSuUGMWf6S4ewMj4oH8klqz7OYSszWyVmE9TvqYlQscCpaP fl0sv0rW6tubacDuzvRLiov7lFZIKqV6VrxQyj9mEL2jvemdJ3ilI/s6p 1tBtVFFCqoE+UkAJG/yhTEvXU7mESzyAXEW9pO3l0ksw8m4zB3wucu4dJ vcOlyuBi5N86B0vQquyQNx8L1R+CmTIr5Im4QOhGX2txDNd9sPMw9LNIT Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10498"; a="306578357" X-IronPort-AV: E=Sophos;i="5.95,180,1661842800"; d="scan'208";a="306578357" Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2022 18:00:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10498"; a="769418896" X-IronPort-AV: E=Sophos;i="5.95,180,1661842800"; d="scan'208";a="769418896" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga001.fm.intel.com with ESMTP; 12 Oct 2022 18:00:24 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Wed, 12 Oct 2022 18:00:23 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Wed, 12 Oct 2022 18:00:23 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.106) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Wed, 12 Oct 2022 18:00:23 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TKrqZ9zVj0deYbn0ktaEVgKLKIPr2sVuunCLHYYuGWxq0P4JfAMfuni3YJPPt+m61ZWK/RrIlYylxqCz+LrpLgpAAFYMW+PlEHSjwfnY5QYuzFPx+Qv25kiwxjdH83nUUpjVI7d/5i+yj4zd6r2W+y7wKUq2RMCz3KZpn4xrbxYNE25rnDdishFmVIaPJ3HwRBHGWrBKasPKQgUpLUyA3a1ddAEnz1voHTjJy2olCPePEC54QX2/MUbyn2Io1AolMgUbmce+STyL+STpNLNkI3G0Mrx+OfwpvJ+CxQRgyyTfWyEMvLxIRBJdv9eYgavIWefi3oJtd2fczFoddK06QA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bi2QgLsvO0cHIB6N+EJWSEcVf5rLjOONHjw4txduCk8=; b=m/PC2ORZQ4x5z3m8gOSzPwIaKReA6ulwcegdanpV2hGWBDhLbRsmjwY6wBeB0e4src7jfadruB3Hv1O2a6tuk1S3PnEFaLGSQ9eFezTIhcQexmtGhWsXHoBmtPioCgsiSxQ0EqVRqh7kLcxk5GfMpyArddZGQ568Z1T9NjMTOfhFtM1yb0WZihB1FNmaPjGEwjShv2C61ARMg4F3WIYwuLUWQbgyykctBfDaONejnoA2EtrHasLbSpDAiLaHe1aSDMOGVvJfgISzaoyAtXYapnOUXN195NdPR1kQsbWVrFP3J8roOU7IY6RF7xffv53lEvq5pvusG90h49wLkYYrrA== 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 Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by CY8PR11MB7057.namprd11.prod.outlook.com (2603:10b6:930:53::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.22; Thu, 13 Oct 2022 01:00:21 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::39bf:57b1:4824:d40d]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::39bf:57b1:4824:d40d%6]) with mapi id 15.20.5709.022; Thu, 13 Oct 2022 01:00:21 +0000 From: "Xia, Chenbo" To: "Pei, Andy" , "dev@dpdk.org" CC: "Xu, Rosen" , "Huang, Wei" , "Cao, Gang" , "maxime.coquelin@redhat.com" Subject: RE: [PATCH v3 7/8] vhost: vDPA blk device gets ready when any queue is ready Thread-Topic: [PATCH v3 7/8] vhost: vDPA blk device gets ready when any queue is ready Thread-Index: AQHYyZPwg5jqSf63gUuaLZ7O5PLL0a4KljxAgAA6gBCAANiWoA== Date: Thu, 13 Oct 2022 01:00:21 +0000 Message-ID: References: <1661229305-240952-2-git-send-email-andy.pei@intel.com> <1663308990-621-1-git-send-email-andy.pei@intel.com> <1663308990-621-8-git-send-email-andy.pei@intel.com> In-Reply-To: Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR11MB3504:EE_|CY8PR11MB7057:EE_ x-ms-office365-filtering-correlation-id: 410bd29d-a72e-4a1a-57e2-08daacb64d96 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: k/cQu4YTbz4duS0JJB5S5ykmfS0YtFxPPxAcYJGqeYza8aGa/G4g1fTMAdxy6PGQypanfUjx74wShW8eiEYJFSjQPdueJqLgr4/7AcDxnu348xs8dfP+8Zmun1YSMt7IroL1Z+Q3NY9g1mKShEc+95BWIUsI0WyXbSZGWOPpt/rPqJFG8F2qSgmuwFASa6ffpa2CRfsJGLhLdplo3lEdgfl3nTMWajLljG27XFmwAK4ImgfA/dHGbpIz2UUu3RoQKawNFNGoJgmaAINMP4I8vao+HO8YSWn6Vb6aTDxCSSXR0dgN0ucFO+J4IA+jC8SdUbWH+XqL+ma7UfuVsrHSL0ueYFl+YELz35b/G2G/XNJnK8RdNOa6+PCNVgc1tOTWFxHt/u0Hzwi1Daa5JR41dYFNxoMYSui/Dlo9pvxiL9/BuCmHURO+NQrpp5/Mx9BXbi+RcUGRdgb/NDh9pBOn33IoSdSMKL+QyzoR1oL3Abk/RT2Wh7hk+hEjSZiFZujXl9iBnTS3oVuit0QoAhVNF9XhTc4z86m/bQyVJCkJa/Ug17jNpEfW5sbLxed4owatrNxbLhmr3bnJ6bsB0hJI4xtpzTfkg14+ISMyPHu6FC9J8Y8/8woVcSMgerNDBb5D9xpSK/EBR6sgaEknibKCKrGzzhpCFQJwYFE1/wDVogt6NOHP5PsBJxqLxuASbYa7wNDWhnDQmnumiufgczisgMMjVLCaxuvppX1HHkQicFjNA68g8adEC8DrmOVxwUBCc41+05Mbdt2HxO7T9lRPtg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(346002)(376002)(136003)(396003)(39860400002)(366004)(451199015)(33656002)(82960400001)(478600001)(38070700005)(38100700002)(2906002)(122000001)(86362001)(5660300002)(26005)(83380400001)(53546011)(9686003)(6506007)(41300700001)(186003)(52536014)(7696005)(8936002)(54906003)(110136005)(316002)(55016003)(76116006)(4326008)(66556008)(66476007)(66446008)(64756008)(8676002)(71200400001)(66946007); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?44k1YncGMYnEOdM3mSpVgHwZalXM+uDA8lEfv4vuCF7pLpgebOw6VUVoyDAu?= =?us-ascii?Q?vO8KqvJ3/S2pfe415I6EkSTlLRLfAgeuBNmnzbfnG3nvnCTuLcZNYgWpf1lF?= =?us-ascii?Q?GFzPVo6ZZry3v1v8P1PeLzwhEe+p5wRoD6qdhT1n0tZ7/Gxf1DgX+Ua1jYYU?= =?us-ascii?Q?lcs/VAaUkJXvrhMUO3zAcmWS2zI3AvU0smZYPnNXCuRxZBy/SeghJoIwnoMm?= =?us-ascii?Q?c3WOjz6LDhggIKSAzWDImxpwLwQfbWGgS0tv7tBGQEVUMZwFBHN9hG7eXiPp?= =?us-ascii?Q?BfLBTQSoXWeRMSNVXlcOkLn8WKeHOnVdK2N1fVsL0AGz8eOf1fFCjq/hDNUZ?= =?us-ascii?Q?0Feia++WR3PdK/BHRbm71j2L+LflJriks1bmbpA4uPyVGB/b3xjZeyCa8Vyd?= =?us-ascii?Q?sxUuO2abyKyBjkq1iTCfVmirCF3huDBorzkSTevZ0QVxLinrcVOyG85HF8ff?= =?us-ascii?Q?yWyr90veH+cLO4b4/34xSZcJbETY15rsGeiYjSMF+PtuqPyAGQJSqrucFlbl?= =?us-ascii?Q?TIYMotbTN4CRzecXAH5tp/L5v4xf3Wp5equSJYXu0t46UBWA2wt7ypjTRyUM?= =?us-ascii?Q?kMRoJqhk8A9qXUbcMbN+lcCmKEC9xTxsTmHm5NgA3t8g7ih/qO50KY5canI4?= =?us-ascii?Q?7X1Zmt7aj9nMgF4n0oi8qpjZkaUgtEkf+StOnmqVVdQeeE7X18pDPVz708dB?= =?us-ascii?Q?BmA1fSLqJM4d6duDlBWRMg9zgqZRgMelipTk8CkQ2oSuGOPs3pEXuabezZ9X?= =?us-ascii?Q?xynOHTce0NOPNucbiY4RRSZq7uYNL7BbPcoScnAExVfUS8XywkqJBXRqLTWK?= =?us-ascii?Q?NoeImC+cbem0R8P2O2PfCBOObLTo1bOLhUCs/Qwcm3yDBN940pJlOIo+tSX5?= =?us-ascii?Q?XZUh6zRILiO/axYA9ytjpH1EvnBnzwIRnFEdmhKZvIZL2ecG46fg73GKGKRB?= =?us-ascii?Q?Ak4wXKWXkr+cHrSt8lazgV3tCh9ejf+53d0eKuDU88lVNMij0ftz6rM+3g7l?= =?us-ascii?Q?Qz4lV1gEJjMRyqFVFzu3Jr+a94LkoS/w7BLZULNbb+ZJQJqh9jKAnBuFc89w?= =?us-ascii?Q?rn2g/2sriklSj6HZszvADMHMueZdUWs2hunOStSqaI7otYjn7KKuHH8P+YK1?= =?us-ascii?Q?IVi0HUABx+oC+92smIlhoCooiblxLMmy9FRoJY6KKcSNDQz7SHmsAnRDMD61?= =?us-ascii?Q?NUPNpLc5Y0aOeP/r7x8P4TxaAZtVYfH5O4RNOJCGebe3+umYX3qa60FCVQWq?= =?us-ascii?Q?sCbyXHDY7dFAABdcbAUYijbOq5ytdDzFk4/CJea1ktZeudAArP4eGxl5GhQL?= =?us-ascii?Q?0zmwXf53UsOSQ69QG3OOOGM7v7JGA0pkeEhrOZdrlLhCLu3GY4F7Y2TYPkht?= =?us-ascii?Q?VPki80v1EewqiUyhJc0wBIKgBNHHC7hagOsKJkdR8c+rSfV/riVkERxPf4sR?= =?us-ascii?Q?ZzUnAYN5knTAmI7nlZLXNfaluWeRO0Le74Y6jQoV4KHkRG3dHiSyL1RI/0BY?= =?us-ascii?Q?uaR/xAkTCfiWlFN9bUgk0AomvZ5yPOqPZ37OFpp50QUMZXNDmGV3ackm6JFe?= =?us-ascii?Q?VxRXQBNSRSjfMyuqpFSXDwSSBgwqcK3Qv4tv3WKI?= 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: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 410bd29d-a72e-4a1a-57e2-08daacb64d96 X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Oct 2022 01:00:21.1445 (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: eMTuq7Bg8tdoA8vHmeWkbg2N8NCbS66Xvt0rAA9avMc29tGEW5zA4k4x7leRkrORyiWMqwIkduyiE8cxlzDzFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB7057 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org > -----Original Message----- > From: Pei, Andy > Sent: Wednesday, October 12, 2022 8:13 PM > To: Xia, Chenbo ; dev@dpdk.org > Cc: Xu, Rosen ; Huang, Wei ; Cao= , > Gang ; maxime.coquelin@redhat.com > Subject: RE: [PATCH v3 7/8] vhost: vDPA blk device gets ready when any > queue is ready >=20 > Hi Chenbo, >=20 > Thanks for your reply. > My reply is inline. >=20 > > -----Original Message----- > > From: Xia, Chenbo > > Sent: Wednesday, October 12, 2022 5:09 PM > > To: Pei, Andy ; dev@dpdk.org > > Cc: Xu, Rosen ; Huang, Wei ; > > Cao, Gang ; maxime.coquelin@redhat.com > > Subject: RE: [PATCH v3 7/8] vhost: vDPA blk device gets ready when any > > queue is ready > > > > > -----Original Message----- > > > From: Pei, Andy > > > Sent: Friday, September 16, 2022 2:16 PM > > > To: dev@dpdk.org > > > Cc: Xia, Chenbo ; Xu, Rosen > > > ; Huang, Wei ; Cao, Gang > > > ; maxime.coquelin@redhat.com > > > Subject: [PATCH v3 7/8] vhost: vDPA blk device gets ready when any > > > queue is ready > > > > > > When boot from virtio blk device, seabios in QEMU only enables one > queue. > > > To work in this scenario, vDPA BLK device back-end conf_dev when any > > > > What is conf_dev? > > > I refer to > /** Driver configure the device (Mandatory) */ > int (*dev_conf)(int vid); > So do you think I should use "configure device"? Yes. It will be better >=20 > > > queue is ready. > > > > > > Signed-off-by: Andy Pei > > > Signed-off-by: Huang Wei > > > --- > > > lib/vhost/vhost_user.c | 51 > > > ++++++++++++++++++++++++++++++++------------- > > > ----- > > > 1 file changed, 33 insertions(+), 18 deletions(-) > > > > > > diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c index > > > 4ad28ba..9169cf5 100644 > > > --- a/lib/vhost/vhost_user.c > > > +++ b/lib/vhost/vhost_user.c > > > @@ -1449,9 +1449,10 @@ > > > } > > > > > > #define VIRTIO_BUILTIN_NUM_VQS_TO_BE_READY 2u > > > +#define VIRTIO_BLK_NUM_VQS_TO_BE_READY 1u > > > > > > static int > > > -virtio_is_ready(struct virtio_net *dev) > > > +virtio_is_ready(struct virtio_net *dev, uint32_t vdpa_type) > > > { > > > struct vhost_virtqueue *vq; > > > uint32_t i, nr_vring =3D dev->nr_vring; @@ -1462,13 +1463,20 @@ > > > if (!dev->nr_vring) > > > return 0; > > > > > > - if (dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET) { > > > - nr_vring =3D VIRTIO_BUILTIN_NUM_VQS_TO_BE_READY; > > > - > > > - if (dev->nr_vring < nr_vring) > > > - return 0; > > > + if (vdpa_type =3D=3D RTE_VHOST_VDPA_DEVICE_TYPE_NET) { > > > + if (dev->flags & VIRTIO_DEV_BUILTIN_VIRTIO_NET) > > > + nr_vring =3D > > VIRTIO_BUILTIN_NUM_VQS_TO_BE_READY; > > > + } else { > > > + /* > > > + * vdpa_type =3D=3D RTE_VHOST_VDPA_DEVICE_TYPE_BLK > > > + * is the only case currently > > > + */ > > > + nr_vring =3D VIRTIO_BLK_NUM_VQS_TO_BE_READY; > > > > You should consider the case when vdpa device is not there. Maybe you > can > > use int for vdpa_type, -1 for non-vdpa. > > > I init vdpa_type to 0; > #define RTE_VHOST_VDPA_DEVICE_TYPE_NET 0 > #define RTE_VHOST_VDPA_DEVICE_TYPE_BLK 1 > And get_dev_type only return RTE_VHOST_VDPA_DEVICE_TYPE_BLK or > RTE_VHOST_VDPA_DEVICE_TYPE_NET. > I think if when vdpa device is not there, this code runs in the original > way. > Do you think use init vdpa_type to -1 is better? I was talking about readability, current way will be confusing. So adding -1 will be better. The check could be if (type =3D=3D blk) ... else ... as Type 0/-1 has the same handling. Thanks, Chenbo >=20 >=20 > > Also note that below check is only needed for some cases. > > > Yes, I got it. I will fix it in next version. > > Thanks, > > Chenbo > > > > > } > > > > > > + if (dev->nr_vring < nr_vring) > > > + return 0; > > > + > > > for (i =3D 0; i < nr_vring; i++) { > > > vq =3D dev->virtqueue[i]; > > > > > > @@ -3167,7 +3175,25 @@ static int is_vring_iotlb(struct virtio_net > *dev, > > > if (unlock_required) > > > vhost_user_unlock_all_queue_pairs(dev); > > > > > > - if (ret !=3D 0 || !virtio_is_ready(dev)) > > > + if (ret !=3D 0) > > > + goto out; > > > + > > > + vdpa_dev =3D dev->vdpa_dev; > > > + if (vdpa_dev) { > > > + if (vdpa_dev->ops->get_dev_type) { > > > + ret =3D vdpa_dev->ops->get_dev_type(vdpa_dev, > > &vdpa_type); > > > + if (ret) { > > > + VHOST_LOG_CONFIG(dev->ifname, ERR, > > > + "failed to get vdpa dev type.\n"); > > > + ret =3D -1; > > > + goto out; > > > + } > > > + } else { > > > + vdpa_type =3D RTE_VHOST_VDPA_DEVICE_TYPE_NET; > > > + } > > > + } > > > + > > > + if (!virtio_is_ready(dev, vdpa_type)) > > > goto out; > > > > > > /* > > > @@ -3181,20 +3207,9 @@ static int is_vring_iotlb(struct virtio_net > *dev, > > > dev->flags |=3D VIRTIO_DEV_RUNNING; > > > } > > > > > > - vdpa_dev =3D dev->vdpa_dev; > > > if (!vdpa_dev) > > > goto out; > > > > > > - if (vdpa_dev->ops->get_dev_type) { > > > - ret =3D vdpa_dev->ops->get_dev_type(vdpa_dev, &vdpa_type); > > > - if (ret) { > > > - VHOST_LOG_CONFIG(dev->ifname, ERR, "failed to > > get vdpa > > > dev type.\n"); > > > - ret =3D -1; > > > - goto out; > > > - } > > > - } else { > > > - vdpa_type =3D RTE_VHOST_VDPA_DEVICE_TYPE_NET; > > > - } > > > if (vdpa_type =3D=3D RTE_VHOST_VDPA_DEVICE_TYPE_BLK > > > && request !=3D VHOST_USER_SET_VRING_CALL) > > > goto out; > > > -- > > > 1.8.3.1