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 14C28A0032; Wed, 14 Sep 2022 04:50:45 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A6CEC4021D; Wed, 14 Sep 2022 04:50:44 +0200 (CEST) Received: from mga06.intel.com (mga06b.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 93F0140151 for ; Wed, 14 Sep 2022 04:50:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1663123842; x=1694659842; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=e4GIQ5kvzNV9cMWvrvRkB6mCKYsZH+2U8oF8eKhNyRU=; b=G4wKhj1U31s9LWCAUOkjEgFEoFTpRMIpFu86jNIDn8pzxQoy5cznrVS5 4QyYKEB6aAlG7Q+1KuuYi9/07/mh0EachUmUIS6GJgQ+ecwDHnmZhRc9P Nd8SxDyrt8sKL2bfp+Xfii5zegVaeFbnufHPvIAuszq9yvHvBlsMb2ZoA 2jRXk18o0iq4jKf8gL2wOFDjxSzeyA8zsJ1WmuKtyYD5bxHtVwryxMU8f 1tVFWFptd7XSjsk7eEjLrskRH3g6v7ZzarjiLZbOLCII1tWJbLN3ScR+p Q1WCmf35KK8CCK/k0U9olpi1mqtHr1V3EPg6kHYcjxYMldcTdEIVY5Sbm Q==; X-IronPort-AV: E=McAfee;i="6500,9779,10469"; a="360058943" X-IronPort-AV: E=Sophos;i="5.93,313,1654585200"; d="scan'208";a="360058943" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2022 19:50:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,313,1654585200"; d="scan'208";a="705795225" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by FMSMGA003.fm.intel.com with ESMTP; 13 Sep 2022 19:50:41 -0700 Received: from orsmsx609.amr.corp.intel.com (10.22.229.22) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 13 Sep 2022 19:50:40 -0700 Received: from orsmsx603.amr.corp.intel.com (10.22.229.16) by ORSMSX609.amr.corp.intel.com (10.22.229.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 13 Sep 2022 19:50:40 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 13 Sep 2022 19:50:40 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.57.44) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Tue, 13 Sep 2022 19:50:40 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bzEko3pvFmwCRe51/JjPhIwUsn42Ylohsi5/+hmFt19PCLXiUOJEhiQgIhawFMQf1NzhuL7ii+g5Z6Ch5cUJo4nYqxo6b5vcTSdEqM8PFYWeTPInwKXhGo08NqH88QFnbXAx8DgU/5qvL59z4w+9F0eq1oO8eFHqKgmC7cxSkiBqaISREiM/4+RmOvSYFt5kxFEiQZoBRUC6kQXLJc14ZXwMln54HgOK/ubklBDH63ltGiM71yQVGZYp/S+Y5qBTg6vgr3vx8kZmEusaXE07s6yHzxDumCBpr2T2ap1GJ8tDqtShma5FfitII7UA/+L2jXp3f5OhmFwf4SUum3sJUg== 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=jktvwYC4ct9X2OakedQmAcIMqVOquXd48wPHngv/h2s=; b=LtZSq3zZSgmrUnd8/Nz6M5f5AeRrUclv+WpFm4Uc0jmWXDd0fIeGAUb11KbmQO/5P2EJjLosQyqyi4P8P/MdZpXx+azFzY4xZMrg1Uj/K323bD+bH3dSTdYZhZUtNo8eV1Avilvnx46bbqZ4fujcSvEE8f5hRsi7Q5nZuwhF04XE+hfvnv4tyeS7kXlA2jJUvh+syWxms3vPvoaC+JgrC7NIi0ibbS8iaGTKAUNKAN4UL6Yl3ZAb0b1OTHLPAnSEmjyIfczGMO7BtboK/3ckRkR8l377Cv4NSFq1VYHuxdj8U2YM3bYKFWgaDLc3bpOa8c4mdlOAS1yqCzj9Fww1eA== 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 DM4PR11MB7304.namprd11.prod.outlook.com (2603:10b6:8:107::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Wed, 14 Sep 2022 02:50:33 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::408e:79cb:b715:b8ac]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::408e:79cb:b715:b8ac%4]) with mapi id 15.20.5612.022; Wed, 14 Sep 2022 02:50:33 +0000 From: "Xia, Chenbo" To: "Pei, Andy" , "dev@dpdk.org" CC: "Xu, Rosen" , "Huang, Wei" , "Cao, Gang" , "maxime.coquelin@redhat.com" Subject: RE: [PATCH v2 7/8] vhost: configure device when any queue is ready for BLK device Thread-Topic: [PATCH v2 7/8] vhost: configure device when any queue is ready for BLK device Thread-Index: AQHYw0dbX2hv9jNBT0KLGt0AG8ajlK3eQirw Date: Wed, 14 Sep 2022 02:50:32 +0000 Message-ID: References: <1661229305-240952-2-git-send-email-andy.pei@intel.com> <1662616458-164613-1-git-send-email-andy.pei@intel.com> <1662616458-164613-8-git-send-email-andy.pei@intel.com> In-Reply-To: <1662616458-164613-8-git-send-email-andy.pei@intel.com> 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_|DM4PR11MB7304:EE_ x-ms-office365-filtering-correlation-id: 3589f83b-a793-4b8a-0a49-08da95fbe492 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zVlsJQvHk+o3uU5/SpKnfAPUQx3DMhMVodtRo5ORUjCQbdepEbWRh/7AXuboDVC3x9/u7fOS01NRwWzR5McF/gG7fD+SkpE3ScG5iJqGyKXjZzYRblLAII04bg0u+fGsYizjvks/E1x2HgBJOc7zo475kmqsZyLjIeHRaLHYt8iv6kXZC6quyzjuVFsdBAVAY0WJEhlizXriQCRr+Y9737peAtdbo1MRPT61PxliC6eFhOgNPydfB0d6Xvf9fOAVYhumhsyU+nUQpu1oIz47if73Lymeywo2nd/tzmJgpRvKbXJdp7cmKcsSsuUhRTl3owxuLef55Jl0yww1sKuqlEzDl5AlVZgKYIc5AHNbszZYPtfaqt3H5Qn3Cs/VKwryrsT3G1E4SvH51xFTXMsz+1/jLH41OsS5aSqGqydoA2kSnvq4ygiGvUIlVrWlmd0yITWyQ4DeaDzFAl+mFa1B5OTOjY30nRMuK3lcPMUcLZlimfXq38bUOnpAkUbKv5uCa+7WvCxQbxhbo0PHUzpiMTa28sPFNV8/1kHPe+6wUmQJFx0JwEv+p+IPeC9HV3oq2Ovg1LFnk2zWMuwEbNssY3um+QUhOKAH1kNlKF+PV5JNcM9A2WNx5ysia93FgpCVtBQHeCGQ/zi0TF4l60SROKCzFguU+AUUUlsoH62NoHvBi/mQYlvqAUG1COoG4IbNs+4iSjo3H/a5W4oU2hRWGCiZrzc9sAQYS128H0iE2Ap8gKrL1EHTibOb0zElcH4O1+uo/QAk5y4IItI3s2k7eA== 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)(136003)(376002)(39860400002)(396003)(366004)(346002)(451199015)(26005)(83380400001)(316002)(41300700001)(478600001)(110136005)(82960400001)(53546011)(33656002)(9686003)(54906003)(38070700005)(5660300002)(64756008)(86362001)(8676002)(66446008)(52536014)(71200400001)(66476007)(76116006)(4326008)(55016003)(66556008)(66946007)(122000001)(2906002)(186003)(8936002)(7696005)(6506007)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?B565LC22F1qALi4anWwhTkmpGyf7VssWnrALuHKF05ls5boEJF7NPM0kDIcp?= =?us-ascii?Q?LorQLKQscm76/ztkMJ1usW8BenwfNjwbhq8Jw3zIEz35p0AV+q4Mz2jSeJ23?= =?us-ascii?Q?KrX6rK1dDP8Wr7KwDaRWYreGIgGSl0uGcuLdMEzOojhc7uvTxCJwgyzlTbGX?= =?us-ascii?Q?45CHCFD0xP8CoMDT/gXdZWC135lXw02sWRjEPXotsXqoIvXVXyaWcPh7+fRt?= =?us-ascii?Q?tUOPrLg+anJE8nxj95Pv0w9xpVcEJQIMvJiWR2Nny93jFbSFxy9P7Pqwp9nc?= =?us-ascii?Q?CMiARz4Or3C0ltSPG0PIb7B7AsV7LDqeB+MJhvAZyRolFO1/pXrN5cwjQPGM?= =?us-ascii?Q?69JZDcLfShLoH+aSTu15MFxIWpNyIKCuRg6QTZTnF+hhX1SZHxoJxRq4oDNS?= =?us-ascii?Q?L/4Zr2plyGJVFj0YBPPCpbAOxF/7QTQ8wnjyRC6NPS79i6oFUqrflE/xFb4B?= =?us-ascii?Q?OavryV0XyxI5Gx5RNtE/3CoxCq7eaXxYHGECt0HbzK2PmuYs2S2+oZEwiglt?= =?us-ascii?Q?rMofP8GQj29EoIKJUK45jbeoBF+RIt98An9EgtAbZf6Fmg5s3Js3KNIiGrXB?= =?us-ascii?Q?jVh56W1h//h6O65qdEfvpyYIT5umvwHD0HWJUadNbQLJqm8r6sYVMjHtrOpn?= =?us-ascii?Q?fxaykgOp3okh3uHd+SxYZWkskNt2b+8EZMq6W0Ikt7HFJH/4ac7iG+BfKc2K?= =?us-ascii?Q?u0L1tzVTB5CaY+HvXg9ICjolw/sSCtZ1YXCI7JTShSrFhPSCqHuaV/Lz2Ie0?= =?us-ascii?Q?hi+aXhXnIJvXQcDFy9fZV7DFjx/uoI3FmMh0zGgA/NenmGgx2XjALiC94mJN?= =?us-ascii?Q?qQtiuyOyvqIQAajhHEcIlJlEbU1ppTgpE4zvKbBdYWwRpldE0j2XfvsL7t+N?= =?us-ascii?Q?+adaTMDexH5uHkxHg5jI/CBc/GRUWyo3hOGS6h0lyHCpFmL2K+3W/YrLpqoE?= =?us-ascii?Q?DcfNre14XOi33qk+pLxA6fyHwSRlNfMnNWj8A8ASt4+ny1vPIM/V+lGL6Sdx?= =?us-ascii?Q?p3dNmGWMSKdA8ZlEXAAXmUispl7CM0PxLEXEwOyEU6jLrNPYpBiebIjCvP1/?= =?us-ascii?Q?gTpyd9j1WwvBW3cu388c+FXiPwcxenXh45XAskmkAnxKwvo9rl5N9uyZv7Vw?= =?us-ascii?Q?Gl28U6jwVGVL/jPKwreYMn7VWl6PHhs8Dfm0vQk0mvUJM1HH3xoMu+Eohe4x?= =?us-ascii?Q?7KGQAQ1AJkNndLDCWEmutmMeLj+JO52alUrGHI5Tj1tbWPE7pepR5NPuDd/R?= =?us-ascii?Q?0r2XZktVPHzxbH0Bfe0d2F9bfjW8hsFN57OCAWL9Wvs8dC2BKNM2A2zKzDJ7?= =?us-ascii?Q?ANRMFKxebOflIoy9GWsQnyBtwypqh+rvzHBHIUZ5J8q+u9J8tpQeLSyqIpyE?= =?us-ascii?Q?UBQv4GaGfMxeR5xI06pbL7SIeNYjIz4n8DVlQdJ+qjGge9hcMxBsJJMsxq7i?= =?us-ascii?Q?+nFpbPWnkKDSAyTHAqQj35QFH9/SlSBsWGFbapXIbE5kdDx3geFYCeKZ3ZUO?= =?us-ascii?Q?hDwQlLpYvL017FLzoWg3g1JG/wnKTdTYRnwVse/V8ryA+glMKOHzrUUcu2VC?= =?us-ascii?Q?CIcbcwP+I+WtrmUIC7QrbhnwsE8QC5VwbXQw3Fgm?= 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: 3589f83b-a793-4b8a-0a49-08da95fbe492 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Sep 2022 02:50:33.0296 (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: 67WR6aiPSqvpmrp3gunrkW4RXmyEvpRdK+zXjj6rKZ3HXNhAaFignTwMGSdbX6tDpsfXGGPSdJ8avf1/D7LMdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB7304 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: Thursday, September 8, 2022 1:54 PM > To: dev@dpdk.org > Cc: Xia, Chenbo ; Xu, Rosen ; > Huang, Wei ; Cao, Gang ; > maxime.coquelin@redhat.com; Huang Wei > Subject: [PATCH v2 7/8] vhost: configure device when any queue is ready > for BLK device >=20 > When boot from virtio blk device, seabois in QEMU only enables one queue. > To work in this scenario, vDPA BLK device back-end conf_dev when any > queue is ready. So this is the case only for vdpa blk, for SW vhost-blk, all queues need to be ready? >=20 > Signed-off-by: Andy Pei > Signed-off-by: Huang Wei > --- > lib/vhost/vhost_user.c | 56 +++++++++++++++++++++++++++++++++++++++-----= - > ----- > 1 file changed, 44 insertions(+), 12 deletions(-) >=20 > diff --git a/lib/vhost/vhost_user.c b/lib/vhost/vhost_user.c > index 4ad28ba..b65fba3 100644 > --- a/lib/vhost/vhost_user.c > +++ b/lib/vhost/vhost_user.c > @@ -1451,6 +1451,25 @@ > #define VIRTIO_BUILTIN_NUM_VQS_TO_BE_READY 2u >=20 > static int > +virtio_has_queue_ready(struct virtio_net *dev) > +{ > + struct vhost_virtqueue *vq; > + uint32_t i, nr_vring =3D dev->nr_vring; > + > + if (!dev->nr_vring) > + return 0; > + > + for (i =3D 0; i < nr_vring; i++) { > + vq =3D dev->virtqueue[i]; > + > + if (vq_is_ready(dev, vq)) > + return 1; > + } > + > + return 0; > +} > + > +static int > virtio_is_ready(struct virtio_net *dev) > { > struct vhost_virtqueue *vq; > @@ -3167,9 +3186,33 @@ static int is_vring_iotlb(struct virtio_net *dev, > if (unlock_required) > vhost_user_unlock_all_queue_pairs(dev); >=20 > - if (ret !=3D 0 || !virtio_is_ready(dev)) > + if (ret !=3D 0) > goto out; >=20 > + 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)) { > + if (vdpa_type =3D=3D RTE_VHOST_VDPA_DEVICE_TYPE_BLK) { > + if (!virtio_has_queue_ready(dev)) > + goto out; > + } else { > + goto out; > + } > + } > + I feel like if possible, above logic should all be in virtio_is_ready. Thanks, Chenbo > /* > * Virtio is now ready. If not done already, it is time > * to notify the application it can process the rings and > @@ -3181,20 +3224,9 @@ static int is_vring_iotlb(struct virtio_net *dev, > dev->flags |=3D VIRTIO_DEV_RUNNING; > } >=20 > - vdpa_dev =3D dev->vdpa_dev; > if (!vdpa_dev) > goto out; >=20 > - 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