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 4B28AA00C2; Wed, 12 Oct 2022 14:13:28 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 2610F42FC5; Wed, 12 Oct 2022 14:13:28 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 95BDB42EF7 for ; Wed, 12 Oct 2022 14:13:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665576806; x=1697112806; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=5ZXerwZsjL5dTqYt9FjB+dt1JQPDxgwX6MbhlnaHnYs=; b=DxdStw/2cIEkQrB4eQiUGu9bgr+gRDud4k7Ki0DSdXD2JwtTQXgpTEUs 4hxIgodfD4k2kHVlUro9lPJ6Eysb6tMnrCWdUfde9ZKwx/nDYXBrqWSF9 VRfW/nloyuwuRYuQsoe/Uku64YWiKohTJmiT+5d77SSbmYwHOmUWGFnII OEGfhPuj+CyrFW8oYP35SWVdmUf7qtzxUgPua98upRLy1CcQHL15MtbDp fz1WdKOFMHuwWChpQ+q/Hq2GTiGS/U2zOgU/MxxzF2LYl/lnZfENp9ZsC f/gTX0F7T7/sBrSKwBeTrkILoWhi2B8KR9s9831HqnT9TJhQxnTh2AAD0 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10497"; a="288043507" X-IronPort-AV: E=Sophos;i="5.95,179,1661842800"; d="scan'208";a="288043507" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Oct 2022 05:13:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10497"; a="629085505" X-IronPort-AV: E=Sophos;i="5.95,179,1661842800"; d="scan'208";a="629085505" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga007.fm.intel.com with ESMTP; 12 Oct 2022 05:13:17 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) 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 05:13:16 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) 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.2375.31; Wed, 12 Oct 2022 05:13:16 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx608.amr.corp.intel.com (10.18.126.88) 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 05:13:16 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.106) by edgegateway.intel.com (192.55.55.71) 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 05:13:16 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C8fGqSTQX4JVwIvfhtQihXPafRD1P0DI75wYs7+bfTly/YAstRWQoC5t+PZNIAmhQG3rO/J3SfALDCj54xhOtwqLmtcBXLAgNeUjb9yscffsWBxnnQs5AflBTNMGTG6Tvd/5nyOHQjT40mW64TEUvM4o5HQ7V5oe7eZRSO7TmEhoo7AgRSNK4gOalXexrD9bKmejYgWD5z0MUcI6233yN2wNfympVFCluBGCgdo19Qow/bbn0HOtbcO+sBc9m8P4+Ff6ws08WRhHLSVbsSKOa80NUh+YakMsQwbiiw4k17akhInScFdf/FwLvbVlWqAKoQ5q9TkojMr80Z62iGclVQ== 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=hXj40tvKfJ1CilEVCWvCTgpdPSPMZMgQ/QYa9xBGvWs=; b=XitJKoiiGoK+e4hiK/OrGU0TYMdF/D9HvJNUjNDqSaoWHLDj6KDH4QMkIcdVRWbzhpTIhJ3omWxsdpOIwwJ3jwbfKm2oacvyS7vxc7nEFz3xLVOKDnhndFrjUUn7Cj9WNCFP7BS85wUXPQb+fMXFHVoAXDJ0FPhpX/GRN3MVvGS1jY0wiiRYJYsyZ5TmRUCKG/mTWI06lzw3hJCatHnRb0Gte6PS4SHULwQzVKkTu0gD4eRr9nQhHdJEtZVshyek5WFo9rkE0qq33XGkeM2Gp0UnqONPxhwwu/qIAAUcBkxcxaFX1H1T9J0lLNF5lTafgLG9MNVx8lwH7QPt3fDoNw== 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 DM5PR11MB1739.namprd11.prod.outlook.com (2603:10b6:3:111::22) by SJ0PR11MB5920.namprd11.prod.outlook.com (2603:10b6:a03:42e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.15; Wed, 12 Oct 2022 12:13:14 +0000 Received: from DM5PR11MB1739.namprd11.prod.outlook.com ([fe80::b8d7:6a95:bf26:e4ef]) by DM5PR11MB1739.namprd11.prod.outlook.com ([fe80::b8d7:6a95:bf26:e4ef%12]) with mapi id 15.20.5709.021; Wed, 12 Oct 2022 12:13:14 +0000 From: "Pei, Andy" 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 Thread-Topic: [PATCH v3 7/8] vhost: vDPA blk device gets ready when any queue is ready Thread-Index: AQHYyZPwg5jqSf63gUuaLZ7O5PLL0a4KljxAgAA6gBA= Date: Wed, 12 Oct 2022 12:13:14 +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 Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action 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: DM5PR11MB1739:EE_|SJ0PR11MB5920:EE_ x-ms-office365-filtering-correlation-id: af00e70b-9975-45a8-feb0-08daac4b236e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: e1NT0IHTyMjnbh6VMReSz1rhyAyq0m9F6QDbeTTN1stlc1XSmYXwOoQNGUTM450CQB6erzVyHtLXqW3T+9jKbhmplsss6FZDZ3unxdzhrqFM9I2SmeOMlnRNlgoi273guHjKIdFEvj+x3vRzsR+sQ3ncKojZp3C6bKOTyuQqTrRE37Y8K46LIvxsrXlfSOhT9BVu/8KRwjxRxjkR8gMV4TE9AxEHqEdbwuUAfrOIuht2xOHfzgi9q80oVAZ6B3DN/++Z1ixeg749Lts5/oewEysKgDnI92paiT/uI9KsiXLc2hiJd5KGZbhmky9hrkqJmZ/JgNXwCDtOxvk+GnQtQ0eDVqyLSHmBCeiInYN3wn9g3nJece96QF75iLypLAXnVb/J/iw0WU9z7o2oqsOGipOTI09OGCeEKt3Ao0WkfjkhXhwNCtW1mYgv/Glv5JVM8YsufhJb03z71dTlsh7OhdkN/HcXT81n46aAXPbp3pPMYEO2IWN5utLHTFLnLg0GQpYgDVGcZndL2MC6WDLTEhXMJ3GVAMZTL8g3tCBqQ2F/hcEeOiovjXdoik02fsY6NfQqb+vWtDeip+RdkUqzGKRgoxxivQ9UCaJzSyjAbsQ4AKoy1dg4+OjZRmZ6zmQAENlBWJy8yEEPu+uLs2O6ZdJxYOD9sTdYi420iI05R7+90CHk7aF9cCFCJNZI8d6ekhHS5+OJCqc3S2DUZT8e68bTu3obRGiBoQYMVXVD0hJoPkZD5TtYGsRWBcpmUia175RUEVxNYNazCb4mJ8vv1Q== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR11MB1739.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(396003)(376002)(39860400002)(366004)(346002)(136003)(451199015)(83380400001)(9686003)(186003)(26005)(76116006)(122000001)(66476007)(52536014)(86362001)(4326008)(66556008)(5660300002)(2906002)(64756008)(53546011)(66946007)(66446008)(316002)(7696005)(6506007)(55016003)(71200400001)(38100700002)(478600001)(8676002)(54906003)(110136005)(33656002)(8936002)(38070700005)(82960400001)(41300700001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?auqD9oeq9UORJSDpt7Ks1Wx72nL/ZURo33Cuy4V1B/VuUSg0IljlT6SNVj6k?= =?us-ascii?Q?lYfMEYiQn/Rq78/Jf2d8abqJvj3BWkoau4tdN1GOydO46zMzMBYvtXdXj1u5?= =?us-ascii?Q?KhVXVXDgcTdVzBlxCWOwLT23MrOGjsUAcH98AdVwvH3ain/WPNP90wMmnxWM?= =?us-ascii?Q?fbLqopAuFXf99EQAsL4Y2POyFnjbOCl68ZSDRt95LOUXCZcQOF+alQk/vekl?= =?us-ascii?Q?BM4D7vFy+byNO1FCdxoUjg1ZUv9hGlkoWzU4K+bLYQrnTtZaszm+xCOGNX0D?= =?us-ascii?Q?et+GkeBIeN1g53i0STlzU1jlKccSNuh0h7OD8OEq22fOb2brqNwfnXbDNDXe?= =?us-ascii?Q?0QbLsIzR/F/vp/UZ13P5ZXVWnIJU1QlJtPwK3oxHUDi3FXZab42h3qvO9HVr?= =?us-ascii?Q?0tzI6Jk/SjATrgcu7T5jQaYFube66rENU6drl0+m+Kkm6mFPflu1+MRJC59y?= =?us-ascii?Q?UZUAlUiinctkdkl50NAHzEwBX7Zo1UG1keck4Mev34DxtygBTL1opIdjFstk?= =?us-ascii?Q?X18kXe5oak8AoipfqqfaBTDNMU2PGHVL0K+cQFOO3OdoQEHz6HR32j2ssSqb?= =?us-ascii?Q?qjkp23tVz9L0Vhvmo45KxMtDz2zhmY0NmDyyQnBqyeT9Kl3SaLmxkPxiwH39?= =?us-ascii?Q?uQsnrVOyu0kPQ/mwq7npSMT4bcgWjHx4UvljZiPWBPewcPD1vkpN36CBGep1?= =?us-ascii?Q?6JTUdldsZf6yJa731E5Xos+Bn5TkdGEhXkfBKM1htv1klZTaOs4U+nmG+PrD?= =?us-ascii?Q?g8he7T9Mb8wVIE8+23yY3hL3O3DU9bDrlMTuO+qG0oQSO4NZlAptqa/P7Q2T?= =?us-ascii?Q?xHYAWWrTybB/22KabIFp+4kv/clOQ+8P8GmkyGsZVA2h36twv6LzG1VlmcMX?= =?us-ascii?Q?gRYzng6ZFwfpVT3GzB/T9hDAYfV7bRyRsQPwe5UCXIkteUkw1u3vW8irYaS0?= =?us-ascii?Q?YL5rsI9RuEDGc8odmQXI40bh2dgj/mrOhdnRlVJpiPMSlyRvlMN4GFzEs1wV?= =?us-ascii?Q?qgvXz2KGQLizwXzWQS0M+Xwy6uQOQsUjvcBk9qLU/cjSk20gjack3ndgWM9w?= =?us-ascii?Q?ZQJus48I6iagMtlqfpUf2s+hbYO35Yh2Fy6APmrzBUaAtax7TAk1t3ehhKRx?= =?us-ascii?Q?o6zzecmkhiLe0XQCygsPyL3ORuvwsV9g7VPi+nl+dEyqTRaRrjXAj0+5AcTd?= =?us-ascii?Q?EXuVbDSclhEmha9qddva7y89sH57eZPPRVec7s5QrZsI90KjhIxBWWGsbdlo?= =?us-ascii?Q?ZJ9xQqSMER9Nvy9b8wAS5zE8uE6siGDzFFqcQVw63advtAVtr2w1qpAqpg8M?= =?us-ascii?Q?vZLX1xIdRqtDQxGu/xeTplBK2HXYKoyQaMmx6bTsuZGe1surV+k5xpk4LzTq?= =?us-ascii?Q?nOfn5nDIPxysgXiR5i7KN4hmg55HH1NcU6ZeOk3OSfzCP1UDan4yd9ToWiFw?= =?us-ascii?Q?RtOKpTmG+e6V/+bDzJQpXKjQv14lsBsshZ9NXGNUvHb7NxdpqFEMIZu9QICn?= =?us-ascii?Q?wjqK8AD/L7QwmxI+dh6LN256Nm713DCiJb+j1uzj3ke4i0GJNFjSliGhf5PH?= =?us-ascii?Q?OA2IDIE4WW3E1v0aMBmFFxKrmZQpXCk25N2zcAkP?= 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: DM5PR11MB1739.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af00e70b-9975-45a8-feb0-08daac4b236e X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2022 12:13:14.3035 (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: ttnUMUbFZ4yogfwcJfy3LRpQdM/HVZ1teO0ghADAQWZBCuKMTfKwcfXq0OXGXlZO7mbWa1J9qkrSGqW6HbqxSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5920 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 Hi Chenbo, Thanks for your reply. My reply is inline. > -----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 >=20 > > -----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 queu= e. > > To work in this scenario, vDPA BLK device back-end conf_dev when any >=20 > What is conf_dev? >=20 I refer to /** Driver configure the device (Mandatory) */ int (*dev_conf)(int vid); So do you think I should use "configure device"? > > 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; >=20 > You should consider the case when vdpa device is not there. Maybe you can > use int for vdpa_type, -1 for non-vdpa. >=20 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_VD= PA_DEVICE_TYPE_NET. I think if when vdpa device is not there, this code runs in the original wa= y. Do you think use init vdpa_type to -1 is better? > Also note that below check is only needed for some cases. >=20 Yes, I got it. I will fix it in next version. > Thanks, > Chenbo >=20 > > } > > > > + 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