From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.5 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 036EBC34047 for ; Wed, 19 Feb 2020 09:15:49 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 93B2224673 for ; Wed, 19 Feb 2020 09:15:48 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=Mellanox.com header.i=@Mellanox.com header.b="iTZadljW" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 93B2224673 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mellanox.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E840A1BF7C; Wed, 19 Feb 2020 10:15:47 +0100 (CET) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2053.outbound.protection.outlook.com [40.107.21.53]) by dpdk.org (Postfix) with ESMTP id A55041B13C for ; Wed, 19 Feb 2020 10:15:45 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PNCKVPzpsRCysgoQ8I7Xu5Kc6Poak1AHXeKmEgJxCX2ZMMiGnN+R1ZWvmjDgxaL8k07l/WIU8V8XIOLrlI7m8MkMq+WNhsfYn63v7Y0/2eJhJk/sRsYAQ86BUdLtWv8ddErGyQ9UK7YYlIp2sPGqeksAo42vvxK1cblF/aNjoqPEVYAaESLmF6VY62/DtJ6CtLQpWFrOpg5DUZiMXygcmMBLiBe53Nk38GbFO003T6eE19yQW2ml9qEfNwswjxUAyzWkknSzzwp6x0d4+PBevhcalCmyIA6tHGiFgGHCMTZ8JvfXImuRR7i4qR1IOa/3jB0JNuGPb8Wy3GCB8tPWtA== 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=LIYctuOGCSiefBdl35PotfaUa2DRIa+jYSDS3Gt/31U=; b=AgyKtLlVWfPK/gxsimvcotXSwwBfA5o6T4hiNuEKQOg52KsoGTI6BjCodooirnVamGoKOSjfNRJr2vv7TVKAzXRv8hENa3dYynRggak3VgllUTNDt9h73dKtlDdfzpozbKx2J9W7fNnSbATdadEgdtG0QddeqkHYRqnQ1lnGa3lNqTVbISbOpv+lNy6j62Mp6MQeqsUeQ9+bCu7lNe1x+nI2lYP/nIiihItuypRtkCCboZA1LS2HEps5Ma/WHa4LPqQ1TO6IbS1uVO4w24QVptGvj1R3KNL61T3qUNUBKtezaWGsn+z1pZIvDpuwzUtmFHtnzDfCCSqNcwOqFS2Wmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LIYctuOGCSiefBdl35PotfaUa2DRIa+jYSDS3Gt/31U=; b=iTZadljWLklWqjYbSMRBSyhaGQ1Op8aaoLqe2PdWzCNxGeuO7kfkfxMkcrQuM7ErTlAISxxnuPR1hlZ5Cy2nU0rODKtnabx+LaHCDpfGsc2qQk47vhZRCmvnvOl+Gyhel2hxSZnoeJxK8+mhDl5Zex9y/wdrm+S761njRwEj6Hs= Received: from AM4PR05MB3265.eurprd05.prod.outlook.com (10.171.188.154) by AM4PR05MB3299.eurprd05.prod.outlook.com (10.170.126.28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2729.25; Wed, 19 Feb 2020 09:15:42 +0000 Received: from AM4PR05MB3265.eurprd05.prod.outlook.com ([fe80::da5:7919:35c1:894]) by AM4PR05MB3265.eurprd05.prod.outlook.com ([fe80::da5:7919:35c1:894%6]) with mapi id 15.20.2729.032; Wed, 19 Feb 2020 09:15:42 +0000 From: Slava Ovsiienko To: Matan Azrad , "dev@dpdk.org" CC: Maxime Coquelin Thread-Topic: [PATCH] vdpa/mlx5: fix completion queue arming Thread-Index: AQHV5laGgnhOBdGWzUG2/0FKZjHu8qgiPZkA Date: Wed, 19 Feb 2020 09:15:42 +0000 Message-ID: References: <1582028721-637-1-git-send-email-matan@mellanox.com> In-Reply-To: <1582028721-637-1-git-send-email-matan@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=viacheslavo@mellanox.com; x-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 15b4a40f-290f-4983-e4d6-08d7b51c4b7c x-ms-traffictypediagnostic: AM4PR05MB3299:|AM4PR05MB3299: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-forefront-prvs: 0318501FAE x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(396003)(136003)(376002)(39860400002)(366004)(189003)(199004)(52536014)(6506007)(66446008)(4326008)(81156014)(53546011)(8936002)(8676002)(64756008)(66946007)(66556008)(66476007)(33656002)(76116006)(86362001)(2906002)(81166006)(478600001)(186003)(55016002)(9686003)(26005)(316002)(71200400001)(5660300002)(7696005)(110136005); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR05MB3299; H:AM4PR05MB3265.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: A49YhReFx0hgu6/jaRTq01E6zDC4ASo1+I/EJAxVCkG0fIRv1v0mLDUmXSkXLIbytxqme2iL0zn6i4f4uB4CbfWAlJAlRfpLTQsfa+Bdw0kM+r+RpQQQ8lYTSoR7wHtxPFk5XAUX58/L8KdEwPc4CkD25R8XW/ZeN3ojlNR4KO0fhIdAV9zOzW+6+JNZQ6+qT92b89lDBiAul8PNDM7XM5WZgDJK4x84Eq0jz6ew3XVduagXoXiddsYheDZRjTHmqC/EZK2JRQrtDstbpjSqV4S9V3r2VF/3pmPM7SIMeTjJ6nRfuHDsE/GkTN220P8TNwlE58n4F6cbpDj8BB6lVb4Kd/YPKPuMveD1Cyerl+MMto37U1hXPU9KR4JijDzQ9Qy45E/ljY/Dk01Ib6U46lOIBj7K6Aj0RfxAT6MEqWUR2zto/QJ4DTSARtOMhVR0 x-ms-exchange-antispam-messagedata: BRz3rdAiGS10nFckdftHaBnS3vc2ednj18vu8MaWu4Tj50FkPznHg/xJZiMtdPDBZYC0BKFzpvvGUHF+IlJXdP1Kep6FL0Cp83TgOtGMnkpfWolmYqGjH1kRa7ATKRoJpG1m6X32AAn9QtpN+WDDAA== Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15b4a40f-290f-4983-e4d6-08d7b51c4b7c X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Feb 2020 09:15:42.3704 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: +01cNk3pq3xiK18HjAKYyloEzrQbWzI8jnQnRqGeGSsG4TBYPba89mpOOmCP+OGapubR1Sd+0lgeTnlXuGNOtEv68T9sjvgfzhhGfFnBOCg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB3299 Subject: Re: [dpdk-dev] [PATCH] vdpa/mlx5: fix completion queue arming 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" > -----Original Message----- > From: Matan Azrad > Sent: Tuesday, February 18, 2020 14:25 > To: dev@dpdk.org > Cc: Slava Ovsiienko ; Maxime Coquelin > > Subject: [PATCH] vdpa/mlx5: fix completion queue arming >=20 > The mlx5 vDPA driver manages QP and CQ in order to forward the HW event > to the guest by the callfd file descriptor for each virtq. >=20 > The driver arms the CQ for the next CQE index that should be completed by > the HW in order to create completion event. >=20 > In the SW completion event handler, the driver arms the CQ again for the > next index, >=20 > The CQE index in the CQ doorbell and in the CQ doorbell record was masked > incorrectly with the CQ size mask while it should be masked only with > 0xFFFFFF mask. >=20 > Remove the CQ size mask, stay only with 0xFFFFFF mask. >=20 > Fixes: 8395927cdfaf ("vdpa/mlx5: prepare HW queues") >=20 > Signed-off-by: Matan Azrad Acked-by: Viacheslav Ovsiienko > --- > drivers/vdpa/mlx5/mlx5_vdpa_event.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) >=20 > diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_event.c > b/drivers/vdpa/mlx5/mlx5_vdpa_event.c > index c50e58e..17fd9dd 100644 > --- a/drivers/vdpa/mlx5/mlx5_vdpa_event.c > +++ b/drivers/vdpa/mlx5/mlx5_vdpa_event.c > @@ -81,9 +81,8 @@ > static inline void > mlx5_vdpa_cq_arm(struct mlx5_vdpa_priv *priv, struct mlx5_vdpa_cq *cq) = { > - const unsigned int cqe_mask =3D (1 << cq->log_desc_n) - 1; > uint32_t arm_sn =3D cq->arm_sn << MLX5_CQ_SQN_OFFSET; > - uint32_t cq_ci =3D cq->cq_ci & MLX5_CI_MASK & cqe_mask; > + uint32_t cq_ci =3D cq->cq_ci & MLX5_CI_MASK; > uint32_t doorbell_hi =3D arm_sn | MLX5_CQ_DBR_CMD_ALL | cq_ci; > uint64_t doorbell =3D ((uint64_t)doorbell_hi << 32) | cq->cq->id; > uint64_t db_be =3D rte_cpu_to_be_64(doorbell); @@ -182,15 +181,15 > @@ { > struct mlx5_vdpa_event_qp *eqp =3D > container_of(cq, struct mlx5_vdpa_event_qp, > cq); > - const unsigned int cqe_size =3D 1 << cq->log_desc_n; > - const unsigned int cqe_mask =3D cqe_size - 1; > + const unsigned int cq_size =3D 1 << cq->log_desc_n; > + const unsigned int cq_mask =3D cq_size - 1; > int ret; >=20 > do { > volatile struct mlx5_cqe *cqe =3D cq->cqes + (cq->cq_ci & > - cqe_mask); > + cq_mask); >=20 > - ret =3D check_cqe(cqe, cqe_size, cq->cq_ci); > + ret =3D check_cqe(cqe, cq_size, cq->cq_ci); > switch (ret) { > case MLX5_CQE_STATUS_ERR: > cq->errors++; > @@ -208,7 +207,7 @@ > cq->db_rec[0] =3D rte_cpu_to_be_32(cq->cq_ci); > rte_io_wmb(); > /* Ring SW QP doorbell record. */ > - eqp->db_rec[0] =3D rte_cpu_to_be_32(cq->cq_ci + cqe_size); > + eqp->db_rec[0] =3D rte_cpu_to_be_32(cq->cq_ci + cq_size); > } >=20 > static void > -- > 1.8.3.1