From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 0C097424BD;
	Mon, 30 Jan 2023 08:51:24 +0100 (CET)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id ED41840EDE;
	Mon, 30 Jan 2023 08:51:23 +0100 (CET)
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by mails.dpdk.org (Postfix) with ESMTP id 6120640C35
 for <dev@dpdk.org>; Mon, 30 Jan 2023 08:51:22 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1675065082; x=1706601082;
 h=from:to:subject:date:message-id:references:in-reply-to:
 content-transfer-encoding:mime-version;
 bh=WTJ/xp1xibfmhFmdHJXJiDmXR1LtNTLOkpFNMfJFNYg=;
 b=BbO+q3vRVOvjL5qkIvoQELEC/PK3xpIHD3AULrGNaj7YvQYuipbA56l2
 gySosRW1W4ny92CjMMenugzMf2mPE3Ia7D+D5W99R0LI7pTEUG5Iaho0J
 80fAH+3UHBmCnQt1HTp571Vo8HKeCaubLBwYxkosfUtPCZU/XE4xw+pcl
 BB/HkOT4UVYef50frL3NUj+hgRED58Wi0xjRV2b+UPcJMRiuh+Y7v3t0k
 rgyzZyQ9R+5go2uSekdzJ2Vo90bfTkYtpAWhkFEXc17B7XPqft11uX7Ey
 N/Zzka15BLae6Fvz3d9V5kJTzjmw+1toeXnkMdGcfyFKzN5ilVKgx46Vt g==;
X-IronPort-AV: E=McAfee;i="6500,9779,10605"; a="413717834"
X-IronPort-AV: E=Sophos;i="5.97,257,1669104000"; d="scan'208";a="413717834"
Received: from fmsmga003.fm.intel.com ([10.253.24.29])
 by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 29 Jan 2023 23:51:21 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=McAfee;i="6500,9779,10605"; a="752723006"
X-IronPort-AV: E=Sophos;i="5.97,257,1669104000"; d="scan'208";a="752723006"
Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81])
 by FMSMGA003.fm.intel.com with ESMTP; 29 Jan 2023 23:51:21 -0800
Received: from fmsmsx602.amr.corp.intel.com (10.18.126.82) 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.2507.16; Sun, 29 Jan 2023 23:51:20 -0800
Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by
 fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.16 via Frontend Transport; Sun, 29 Jan 2023 23:51:20 -0800
Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.46) 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.2507.16; Sun, 29 Jan 2023 23:51:19 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=UV8kQr0gWiDHwnXiEJUgQecmLIdOmL19LgY7tiKwqJK6PXeaHvDV62JD0hz3Wq2cn4c5R7D1siZSmy08Dy7yEOzecirwIqjARHxmPQbkp4DbmO70Urn+dFIpXnmETtbz2omNZZFASOQTboTjEU7keuLyGSzPJDD1A/O0Gex04mRKDmnLpx+z9FZItHj+3MlV03qJ9RGvi1gsLr/FiJ8AucUKwoHelyPue5ni9MsT0+AZvObrPgoksNfiSiuTKNqPSsKnpqN+vw9CZSEuns5EctfKkrMHlWel03slB1dLHDv9qwIozd9eVwkACkW45QnUNVMtrbLxn+/IKteZREL/vw==
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=dIytc/AByKogRSL41W1OErRMqUkZGF3VTw8cIM0ndXc=;
 b=auHHPtjEqXK/O4K7qXzRc6OCdnl8KxHGkfkCHBZDr0rmJroM1XaBEGNc3Ru4e+ngZEp8Jf5ZSyHh5muYFUi1hJNJ57bkeS/mjzLICxjMt2GFeH6ulxCSegWJfrlIyRy7mpiVQtrH0NoeuWp2N54fNe2GAgtYPV2BKh6T6h0nEj5asdFBZxLG47vvOizjI4oCR6cnJ+HNP2KBw8ha19lfScIVtvhUEyEqMw/tLElAq9Lnxob/+ILWb6uwHPFourQGqty+ZMV1ydK0tYD3vujRsu01yf7872u2ZUSxXa4p04Ec7pdAHla7txfkc7Hazfn7YOVq1RV0HuQiP2XOti2UvA==
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 SJ0PR11MB4990.namprd11.prod.outlook.com (2603:10b6:a03:2d8::21)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.36; Mon, 30 Jan
 2023 07:51:17 +0000
Received: from SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::c8f8:a3e1:5b23:a9c3]) by SN6PR11MB3504.namprd11.prod.outlook.com
 ([fe80::c8f8:a3e1:5b23:a9c3%5]) with mapi id 15.20.6043.033; Mon, 30 Jan 2023
 07:51:17 +0000
From: "Xia, Chenbo" <chenbo.xia@intel.com>
To: "Coquelin, Maxime" <maxime.coquelin@redhat.com>, "dev@dpdk.org"
 <dev@dpdk.org>, "david.marchand@redhat.com" <david.marchand@redhat.com>,
 "eperezma@redhat.com" <eperezma@redhat.com>
Subject: RE: [PATCH v1 02/21] net/virtio: introduce notify callback for
 control queue
Thread-Topic: [PATCH v1 02/21] net/virtio: introduce notify callback for
 control queue
Thread-Index: AQHZBNRk2vKF7BHK5Eyi4XMkmYmsQa629Y1Q
Date: Mon, 30 Jan 2023 07:51:17 +0000
Message-ID: <SN6PR11MB350445166D28478CA9203F339CD39@SN6PR11MB3504.namprd11.prod.outlook.com>
References: <20221130155639.150553-1-maxime.coquelin@redhat.com>
 <20221130155639.150553-3-maxime.coquelin@redhat.com>
In-Reply-To: <20221130155639.150553-3-maxime.coquelin@redhat.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_|SJ0PR11MB4990:EE_
x-ms-office365-filtering-correlation-id: 44c9b4a7-3c3e-4693-ef0e-08db0296c4bc
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: nzoPdFysOKept3rV3inHiAs6WihfOtjb6d2U8G7a1CTOAHo66VxEKn/ZacNfBFRCogAqdgJWqmcOXnmqiWiTZmxSp4xQkMiywS7G7cJgg2LGUKYsbSPPizOgIqnHklasJb2N+VCqZPuo7/ewbLO2Pb9S6M//isK31S9uimFcW8YqVS/cK4i+KqXFrf9F3iWhLdiyg2QSwHYw6+j21yHQf7zzC90a2MCZh+cXTsENx+JWCcy4yY7m/7iOzOtXwRn/uaiUmAwa5vrnkQopOFvsW7rD/+zMezxYHgvEQzWxp1r/yhII5b45ibYfME12oGEs2OtiXTPjfoYJ+Q/CHH2ME0YT+xpZ9nhpiWdpHMZyNmB2noz2FRjEKORTOn3/vy7uRLHye+t6qLqYPquJWOhtaA/B2+KBERnrvrah/jx37AC0mD+nhyieFqCCsxK7d+EgxRg+UojvEwMaErgXwoZ2XmbROCC4ntfkKZG2rNsWRLc7oGLB3F//VnZsr2gxo6Jrb/bDzIJuU9L2Or4qOi47+uiKzA8ALN8yer0CYvPvS2uLjDjsT9skxgRoUiatQOPkwct+al9MjS7ogJcCH3xXUjEkbb5AZiH6KXo+BrYgta+pfzlfyvtTAoSRKOF/8AHQo8DECxvMQIMh40fYh9Fsihs7rAuPwIYXvBCGdgHz7yK2a7l3YgDCoUHYq+t0K/dpQwJCZwakn3cQUL7EInf66Q==
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:(13230025)(136003)(39860400002)(376002)(366004)(396003)(346002)(451199018)(110136005)(316002)(66946007)(66476007)(8676002)(66556008)(66446008)(76116006)(64756008)(8936002)(52536014)(5660300002)(122000001)(38100700002)(86362001)(38070700005)(33656002)(82960400001)(41300700001)(53546011)(71200400001)(9686003)(26005)(6506007)(186003)(55016003)(2906002)(478600001)(7696005)(83380400001);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?9Ceo6AD3yI8T+18FyPEU6Dv5h65/u70NYKQCudWcc39zrq2l4W+YIPIb+TWc?=
 =?us-ascii?Q?So1GvB0PGZNvgKro5+hQkQt3Kv5MmMypnpp7IyAWaGI9GNTPGVaRdwiHcCC3?=
 =?us-ascii?Q?8P3GGe//SKjhga4usDekmnJV9AD87p322c8hRrunIZQef1q1sTb5Jxp46BRD?=
 =?us-ascii?Q?bB6Elk02CvD2N7+DoPHUL5VuIZQF0mw9oJEEvFbS2AjQ7w74RsFme7yRBtRv?=
 =?us-ascii?Q?yzovua3iS0FAw87VXzrQsBZqQ0YG7xHCGc/gxm9kA+6c9CKcWuu6jbbJlLfV?=
 =?us-ascii?Q?pQ9ztV0drc3jXSm/Pqlxt54mUAB9SY+pgKajFZaTwBm2V0hsNs2MShuuapTh?=
 =?us-ascii?Q?oXgKuun2QzZLb5AvYQYv0rmZSdDfFw3sUmaCUk4V+ATtF40Vj3xrlcuCELbZ?=
 =?us-ascii?Q?trvpAFkohE0tj1YAs1Ia6AtfFUIs+mouHktVK90AszSdydeKpsKXQxZOOWrJ?=
 =?us-ascii?Q?dukiQ82WOfPoobaSFVEyHhRfLGcpXw3txo56CpLcq5TBafCNVgQ6qau8rk3d?=
 =?us-ascii?Q?WZMPJInKxyvSEFiJArXeB33IR1DL8hOYqXCttYcdRpiwx9GRcqxTtIfQ7plQ?=
 =?us-ascii?Q?LyN3yL49pf3WxQ8wos4/TilluXUgHv/YHPFNnzSnlvNmYvM4Y6O5hlYcNUvD?=
 =?us-ascii?Q?TDXufb8qLddyn7QVCS8xmLEtfj1AzhWy2645QzWjkA3Nc/El2SmlMrorQJvj?=
 =?us-ascii?Q?yB4fYYH1ZUPO63KsuO8B5FwTksrz160pJTIlONglGS6p+IcGkdw5SL76g53p?=
 =?us-ascii?Q?i1nBDviySYMl5T+7ohbo7gxaRrsvCDI6pn6V9v6ws/blAmqblyDctQ/EmWL2?=
 =?us-ascii?Q?jbQmkJfhF9iOPwLZDwNVSK53rWZ0ae55l9faFiLj2tlCrCVJZUo6k8gIKdSb?=
 =?us-ascii?Q?IcAIS4E/YaBC/tIVzc64N8GV8ItahBEV14y/mvx98TRWuf/KU0Fkj8JyK2o9?=
 =?us-ascii?Q?eKvjigXhZZMpe4gcbO9ohhdO8afNA/o1RcvWM5lIBgMbYvVWQYzcRTDH/Yai?=
 =?us-ascii?Q?7VJh9TjvhgoHlNLd70RcvRXRpHE0LhrHL5IPhYcpLub+96z/4Fv1MU9QAUuS?=
 =?us-ascii?Q?srZKLGNifvVhL1KSGslQqHvDFYBDB59HycQkZw9wvwjXkop3SHAyVEU84klT?=
 =?us-ascii?Q?8+IMQrPcQdy7QvTynW/aA2d9YgltW0GyBUyTIf7TnyeoBaIbIa8lVrHatl18?=
 =?us-ascii?Q?YYSbjEumSqLH4xnHUMUNw9Di7mr/4BtaZQUXSdNgMZsxqi8UxvdgUjwDbNhH?=
 =?us-ascii?Q?8g4F9nBi8qiERxBUS5sEQhfejiTC5Spd1tESXVccdunfOa1tmY5ukaqDF+Wp?=
 =?us-ascii?Q?HYJLja5SCgCFgJWCQrTa5cxW8WN//MryU8tMcEk1hrD1LEcdL5hEj/DIetZc?=
 =?us-ascii?Q?tOKIVDlJKyJKSizSjED2Z5ouUxyEUNIoTvwVO7IJB8SZcFKj1VoTDc//rl1k?=
 =?us-ascii?Q?hXOY76RyJjbNsswX+9p4HFPIrzrz7PZwbn/lvDhHLIVne8Al0DoCmxq3wNBF?=
 =?us-ascii?Q?EiQBIutxpgDezUkAxynu61qPptmTM8900gbqAeBDQ8UUroVslHhSnoGxP1lQ?=
 =?us-ascii?Q?2Jq1H6MeodnYv7CvMwa31AZe5ra2R4cbgPNnjF/a?=
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: 44c9b4a7-3c3e-4693-ef0e-08db0296c4bc
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2023 07:51:17.1967 (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: l/rCfD7Lf4GNoEE7LZeK7aO1ZFlw2QqRZrua8cZQgbah8C33zoUro7f4Q5GnUcDCuLvSerSNlUMI6yXZJCc+Mg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB4990
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

> -----Original Message-----
> From: Maxime Coquelin <maxime.coquelin@redhat.com>
> Sent: Wednesday, November 30, 2022 11:56 PM
> To: dev@dpdk.org; Xia, Chenbo <chenbo.xia@intel.com>;
> david.marchand@redhat.com; eperezma@redhat.com
> Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
> Subject: [PATCH v1 02/21] net/virtio: introduce notify callback for
> control queue
>=20
> This patch introduces a notification callback for the control
> virtqueue as preliminary work to add shadow control virtqueue
> support.
>=20
> This new callback is required so that the shadow control queue
> implemented in Virtio-user does not call the notifciation op
> implemented for the driver layer.
>=20
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
>  drivers/net/virtio/virtio_cvq.c    | 4 ++--
>  drivers/net/virtio/virtio_cvq.h    | 4 ++++
>  drivers/net/virtio/virtio_ethdev.c | 7 +++++++
>  3 files changed, 13 insertions(+), 2 deletions(-)
>=20
> diff --git a/drivers/net/virtio/virtio_cvq.c
> b/drivers/net/virtio/virtio_cvq.c
> index de4299a2a7..cd25614df8 100644
> --- a/drivers/net/virtio/virtio_cvq.c
> +++ b/drivers/net/virtio/virtio_cvq.c
> @@ -76,7 +76,7 @@ virtio_send_command_packed(struct virtnet_ctl *cvq,
>  			vq->hw->weak_barriers);
>=20
>  	virtio_wmb(vq->hw->weak_barriers);
> -	virtqueue_notify(vq);
> +	cvq->notify_queue(vq, cvq->notify_cookie);
>=20
>  	/* wait for used desc in virtqueue
>  	 * desc_is_used has a load-acquire or rte_io_rmb inside
> @@ -155,7 +155,7 @@ virtio_send_command_split(struct virtnet_ctl *cvq,
>=20
>  	PMD_INIT_LOG(DEBUG, "vq->vq_queue_index =3D %d", vq->vq_queue_index);
>=20
> -	virtqueue_notify(vq);
> +	cvq->notify_queue(vq, cvq->notify_cookie);
>=20
>  	while (virtqueue_nused(vq) =3D=3D 0)
>  		usleep(100);
> diff --git a/drivers/net/virtio/virtio_cvq.h
> b/drivers/net/virtio/virtio_cvq.h
> index 139e813ffb..224dc81422 100644
> --- a/drivers/net/virtio/virtio_cvq.h
> +++ b/drivers/net/virtio/virtio_cvq.h
> @@ -7,6 +7,8 @@
>=20
>  #include <rte_ether.h>
>=20
> +struct virtqueue;
> +
>  /**
>   * Control the RX mode, ie. promiscuous, allmulti, etc...
>   * All commands require an "out" sg entry containing a 1 byte
> @@ -110,6 +112,8 @@ struct virtnet_ctl {
>  	uint16_t port_id;               /**< Device port identifier. */
>  	const struct rte_memzone *mz;   /**< mem zone to populate CTL ring.
> */
>  	rte_spinlock_t lock;              /**< spinlock for control queue.
> */
> +	void (*notify_queue)(struct virtqueue *vq, void *cookie); /**<
> notify ops. */
> +	void *notify_cookie;              /**< cookie for notify ops */
>  };
>=20
>  #define VIRTIO_MAX_CTRL_DATA 2048
> diff --git a/drivers/net/virtio/virtio_ethdev.c
> b/drivers/net/virtio/virtio_ethdev.c
> index d553f89a0d..8db8771f4d 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -253,6 +253,12 @@ virtio_init_vring(struct virtqueue *vq)
>  	virtqueue_disable_intr(vq);
>  }
>=20
> +static void
> +virtio_control_queue_notify(struct virtqueue *vq, __rte_unused void
> *cookie)
> +{
> +	virtqueue_notify(vq);
> +}
> +
>  static int
>  virtio_init_queue(struct rte_eth_dev *dev, uint16_t queue_idx)
>  {
> @@ -421,6 +427,7 @@ virtio_init_queue(struct rte_eth_dev *dev, uint16_t
> queue_idx)
>  		memset(cvq->virtio_net_hdr_mz->addr, 0, rte_mem_page_size());
>=20
>  		hw->cvq =3D cvq;
> +		vq->cq.notify_queue =3D &virtio_control_queue_notify;
>  	}
>=20
>  	if (hw->use_va)
> --
> 2.38.1

Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>