From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E2E14A00C2; Sun, 17 May 2020 07:45:37 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 17A611D697; Sun, 17 May 2020 07:45:37 +0200 (CEST) Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50082.outbound.protection.outlook.com [40.107.5.82]) by dpdk.org (Postfix) with ESMTP id 7F4C71D695; Sun, 17 May 2020 07:45:35 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=haLejbtgBGkO77PGRituu9UO9BTBp0yARrnmADqqQE5/4fRkucEUMzU8gIRc8kqqcZZaAjQ9vFJcoqtXjLZSrN+oDddaOJyrCc3W/wXCGoDn22SRv4CEXWSBHXJnscmErn/xQhplWBHT1JyapJ6CIu2UFE4UBa1dEYRpzBHFb5ajhEj5gs8bsfJrF17mFyLOOD2J+PsyNLrl8L3jfjS56Olg4fbsl0nGgIsD4tB2HGx3ZuV8BYRVGIaV+JlLc49CsJvBGPG2n6qqUgfXJTF0K2n7/DU05LWMsaX4l40JUUoIY8rFPLYusNTNTFSwQDdPpNAn4DXBWVy3sxG6WqrIdg== 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=viifrzLQEL2niigOhgNo62XJT/44TCWN1kV2NBSKDQs=; b=BlFOPgsAnSIiOACZyMwV3Hq9MZmtm/UW2s8CptFzzDePGDNqLo5Yz2HyPrVsV6atWxTWTmQjsPl3//Ht9YuNg7C4BSIabnRgd2uHS3A1Xfkq4WpQYOfvX/2Mes0nHpkzJva3kkBVLZUPHwCO47FQ1+nLVOtl/mNWeyMuFUBkLdBrbVEY3VpC/XAc9maKX4vqBl6h5QQQVNp1/NTTLrRQr9oFt3BgAQRWSk45pzEA043wRnOf9fsGq6iVWCTddPe9ZyiAstEcZRgJruQzXqgkVJqdYM/E+rWI/mgSNbKhjGWHWSH2tztG1KFTvFkNTGxhAwbJ7gG+n2TFrshPuzD+SQ== 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=viifrzLQEL2niigOhgNo62XJT/44TCWN1kV2NBSKDQs=; b=LIbITs9shzYglCCsr3JzoDsQR+CrE4hdSsZLPzNgJ0wqXpsPsOQGTpPv/xrSpHqGX3qHUkXPfF6KWk7ztAfGFOGItfjvUAM0tyhTCSvIiz8znbzM0GfLr8+UZlV8ZbYnrET/UswYUVtE6l4AmHOnNrcWqcojmjfeEpDD77Hwri4= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (2603:10a6:208:f::11) by AM0PR0502MB3859.eurprd05.prod.outlook.com (2603:10a6:208:1a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3000.20; Sun, 17 May 2020 05:45:34 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b189:d782:4c74:7998]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b189:d782:4c74:7998%7]) with mapi id 15.20.3000.022; Sun, 17 May 2020 05:45:33 +0000 From: Matan Azrad To: Bing Zhao , Slava Ovsiienko , Raslan Darawsheh CC: Ori Kam , "dev@dpdk.org" , "stable@dpdk.org" , Dekel Peled Thread-Topic: [PATCH] net/mlx5: fix left shift extension of doorbell bitmap Thread-Index: AQHWKpDQKWYgqg+26kS3uUEfc1I1i6irxobQ Date: Sun, 17 May 2020 05:45:33 +0000 Message-ID: References: <1589530438-437604-1-git-send-email-bingz@mellanox.com> In-Reply-To: <1589530438-437604-1-git-send-email-bingz@mellanox.com> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: mellanox.com; dkim=none (message not signed) header.d=none;mellanox.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [77.126.88.104] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: df712e87-fad7-4bbc-f32a-08d7fa258480 x-ms-traffictypediagnostic: AM0PR0502MB3859: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtFwd x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5797; x-forefront-prvs: 040655413E x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PW7Q6OpRagzYMdEpJwdlHwYqN5jDd3mtE+Lw+eGv3mrpWDVzP6EcI8byB5e0zn10LyhbB8WppGfxmTBmletgZf1WlqUZxRVQYa775pAffAq86RLEEdI7qz7sD/FeDuoQZXqxQkwYocrhhAvp1Ry3GyPKiLhMfK+AdptrX8ZKB8BijjqHko19wQuKKObpmbD/NtflMGkBZJ68Taxx7JnuCibPkvFNkNcSa5BVy2i3wDmnhosNWBplZUo6Tz3SvVXMpsFclx10bEhTUbu6FBMvxvLF5aJ/BpPW32mz1KjETHOquo9wK85Mhcsg6u4vAEWkLgaUpSAyU9oH0x+9xMa0GyP0tP9Lpjz9cU/GOzUiaBD86kSxHO2rlQ3d/BGS9UIy/p6TYCMiZHIaoybT196MU+uY4PzXY+U/7j/yRmrzmvvXkB82HA3m8b5+UoJ2shJl x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(366004)(396003)(346002)(39850400004)(376002)(136003)(186003)(33656002)(5660300002)(26005)(110136005)(54906003)(8936002)(6506007)(6636002)(7696005)(8676002)(316002)(2906002)(450100002)(107886003)(9686003)(76116006)(66446008)(64756008)(66556008)(66476007)(66946007)(52536014)(4326008)(86362001)(478600001)(55016002)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 3w9gq41ZDbvo25Zqc0Tdsa8MhgpG1NIq7eosKUNettp+79kKUMJWmghN8tiPdyLJAL39fdhwpygN8dVj8mtuQuUZEzoH/lcFM2QcD4a4Dcsdk0EtxzhKy2lrYsgYKEqwriq6mqBtDq/b2yYkw/c064Gw/P4+ExU+qBKwqQptK8YLDdV0nuUy2dXurwni7nrv+zQQLHVuxRlAjtgB3JylWUhG6MlGCbezl5ghEN5QD4bsnFLfjyZjI3mdx5/a21bM5TApNfM2zKQTluDA4iHztyMEwZuByUJXfSZhg9naxO3P57ce8Ermf5db2hZ5152L8td+Grx1ZLxGsZ4L5iYxY7OwMS2hHjhTlN1sKsfq5F+St8TBM0U0fo+Xzp7legwn5kwVzUKaDp0JFLv5JiX5S7wMEuHYrtcEmVJDyhZ63xutbCghttWASJy9YwXR97n8UZWU8uiFoFFA8NbPf9r9TxVM1eB2/HQJzCaLmlDx0MM= 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: df712e87-fad7-4bbc-f32a-08d7fa258480 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 May 2020 05:45:33.8322 (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: Vv6FmT5JDF+K9+D/N8009yFE2Hf/aJfhdQKXMMslhsDQYt0fsTlLuCNLRP9xMlXCT5DQ+b6Wxnw1EdJoj1WRjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3859 Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix left shift extension of doorbell bitmap 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" From: Bing Zhao: > The doorbell record is organized with page and bitmap. When some new > doorbell needs to be associated with a queue, the bit will be set in the > bitmap to indicate the corresponding doorbell occupied. A counter is used= to > record the number of doorbell occupied to speed up the searching. > If the number reachs the maximal value of a pre-defined number of a page,= a > new page will be allocated. If not, then the bitmap will be checked to fi= nd a > free one. > The LSHIFT and OR (AND NOT) operations are used to update the bitmap of a > page. But 1 will be treated as a signed integer when compiling. > When the shift number is 31, the shifted value will be considered as > negative. Then a wrong extension will be done when setting it to a 64-bit= s > variable. All the upper 32-bits will be set to 1 by such extension. > Then a wrong offset value will be calculated because of this. The next 64= bits > will be also treated as the bitmap and get corrupted through the bit set > operation. > The immediate value 1 needs to be used as 64 bits width explicitly. >=20 > Fixes: 21cae8580fd0 ("net/mlx5: allocate door-bells via DevX") > Cc: dekelp@mellanox.com > Cc: stable@dpdk.org >=20 > Signed-off-by: Bing Zhao > Acked-by: Viacheslav Ovsiienko Suggested title: net/mlx5: fix doorbell bitmap management offsets Other than that: Acked-by: Matan Azrad > drivers/net/mlx5/mlx5.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index > 1445809..ab4adec 100644 > --- a/drivers/net/mlx5/mlx5.c > +++ b/drivers/net/mlx5/mlx5.c > @@ -2174,7 +2174,7 @@ struct mlx5_flow_id_pool * > /* Find the first clear bit. */ > MLX5_ASSERT(i < MLX5_DBR_BITMAP_SIZE); > j =3D rte_bsf64(~page->dbr_bitmap[i]); > - page->dbr_bitmap[i] |=3D (1 << j); > + page->dbr_bitmap[i] |=3D (UINT64_C(1) << j); > page->dbr_count++; > *dbr_page =3D page; > return (((i * 64) + j) * sizeof(uint64_t)); @@ -2219,7 +2219,7 @@ > struct mlx5_flow_id_pool * > int i =3D offset / 64; > int j =3D offset % 64; >=20 > - page->dbr_bitmap[i] &=3D ~(1 << j); > + page->dbr_bitmap[i] &=3D ~(UINT64_C(1) << j); > } > return ret; > } > -- > 1.8.3.1