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 5630AA04DC; Mon, 19 Oct 2020 12:48:52 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 56693CA60; Mon, 19 Oct 2020 12:48:49 +0200 (CEST) Received: from hqnvemgate24.nvidia.com (hqnvemgate24.nvidia.com [216.228.121.143]) by dpdk.org (Postfix) with ESMTP id 62E8EC97A; Mon, 19 Oct 2020 12:48:46 +0200 (CEST) Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate24.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Mon, 19 Oct 2020 03:47:13 -0700 Received: from HQMAIL111.nvidia.com (172.20.187.18) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Mon, 19 Oct 2020 10:48:45 +0000 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.176) by HQMAIL111.nvidia.com (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Mon, 19 Oct 2020 10:48:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nXorUjhfhKrM544WvWG4NuyCaCE6I7cHBzX2p9p8P6DWj7A66kiCe1FyvXhYebHv4RCSqJez0r61Yn/PraigEw2bPzl71QRgPflYAho0W5crlrmUh9SPGfmXOluveQCvSXGp49Est3+cegCa03QjhbTSqpAGbireHyd/izLRKXK9CMH3hyHcsoacMc6gEUY/tzr17HDxfLnLgr9rYQEMA693Fg05gplzFbfsnJnk7sqCwseDebyVUY1NAhI+Ip7AeEsrDJ6dIpo0IpcXA0tG475LO3x0Oz2Z9uMLLy4YfzJAXDvnDkSb2+2uaaV1oKYMFUdVbySCdrR2n79pj39TwA== 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=7r9TRVlcrOmFW5VLkHdKxJnHirRbX8Ho0Rjp6hQKAEg=; b=jfKuEqxh9UKCJVavKOeOPv4qQYM6SH0fwVyGXtuMpjVA0jTzQrtNvNKgfCoZH1obF7fVa2hpvbpDm9pZZITDRquyCcbS7lv62ciFfL6h4pizx7yJ7c/M/rr2bArSol/FmoMkH3S20adpQVI3JnV/i00OI8N/gfrN+DP7B2B5400e6TJrsjvy1UurKyuo9vzpSx9eRuDS7pq76tPXe1yDOaaU94XhfCvrrDPfYx3YgPv1nQBXS+T61jWi2V8s15h8JLFpSSSo6pMm5sZrOAB/6Zr8tNjgIQzRRoQApZOA2UyaGev2cVyhXsY4/NNA19d0azkA5ibqxDPGG4+W0QocjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none Received: from DM6PR12MB2748.namprd12.prod.outlook.com (2603:10b6:5:43::28) by DM6PR12MB4139.namprd12.prod.outlook.com (2603:10b6:5:214::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.23; Mon, 19 Oct 2020 10:48:43 +0000 Received: from DM6PR12MB2748.namprd12.prod.outlook.com ([fe80::f506:4af8:281b:cdeb]) by DM6PR12MB2748.namprd12.prod.outlook.com ([fe80::f506:4af8:281b:cdeb%7]) with mapi id 15.20.3477.028; Mon, 19 Oct 2020 10:48:43 +0000 From: Raslan Darawsheh To: Dekel Peled , Matan Azrad , "Shahaf Shuler" , Slava Ovsiienko CC: "dev@dpdk.org" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/mlx5: fix use of atomic cmpset for age state Thread-Index: AQHWoujIBUmLuxEAB0yT5xSOCCMfT6mexOMA Date: Mon, 19 Oct 2020 10:48:43 +0000 Message-ID: References: <80931ca7b31b48beebb22d0d093e07a3d6539336.1602762247.git.dekelp@nvidia.com> In-Reply-To: <80931ca7b31b48beebb22d0d093e07a3d6539336.1602762247.git.dekelp@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: nvidia.com; dkim=none (message not signed) header.d=none;nvidia.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [212.29.221.74] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 531c55b6-118f-4d48-ca4c-08d8741c8c61 x-ms-traffictypediagnostic: DM6PR12MB4139: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B5QqUy35i8g/QThkDeIB41ojuFwL+d88QMUkichlfbwoNd9VrOAVqIhc9DIRKTePn55UC1umWjQT0cB96emkCuSesALZfE7oe7hQTvukMd90LT5idFmWuz7lZmsh648+XId//WTWJgpcOtLjsu/bwiD/fLYvVmo11dpy5YwNyL+SKhHJsslyFnd/Z3Hqxt+wSBQkODaCOxyfj4UFoaRH29i+xgQyrvaYLPD7XXxn6svti7/Gcfj2qFZYUzGpU5jE0L8dmqouyMzAKJRSySdNVLRjyfoDEzClJQf5vDKxv4SVr2EZpcMUtmekV/PmbprN7ihRaOLAlZRRSr8KMeYLNjRi6rtmyg30rmCsPvHoxRtAj2wJK9L1V8enQQKSlWJb9DbPnuYFSNL8129ukZlajQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB2748.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(396003)(366004)(346002)(376002)(136003)(39860400002)(7696005)(45080400002)(9686003)(478600001)(2906002)(4326008)(5660300002)(54906003)(55016002)(450100002)(8676002)(6636002)(33656002)(316002)(83380400001)(110136005)(76116006)(52536014)(66446008)(53546011)(66946007)(71200400001)(86362001)(8936002)(966005)(66476007)(6506007)(64756008)(66556008)(26005)(186003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: Ffq8c2dyFgpgZX0bNKeGussnBfSt4GWYLUKY+/plC7t8GhCoYfdmpsKAIclbGjmUy4094U6pA0IedjWameCRgCx0x2+hUWSweAYToEJF5+bIW2a99iOevCdlmg0Gj01Jk5xsRGtxURz5UR4FhTAVT0srXjEryHiHs3D/pedph5e5ouFDT8DyLAB4AwURBa5JIHyaqU9Q+jS58PY5hMm+8uLfpUH/puwJsfqKd9FfuX85xtFo5kn62iQhJbkKdrAvxB3uj44SG6QXD6Pf4FpdPR6qurWVpjdgvB0Z1nLdyP2Iud6NkEf+S/+iSEZ/IlLVnhbXd2gO1HsJr3QyURxSPxlJbp427W6Wuau+QYvNKTj6KXQ1bGKv5FRomnSyK67xL+HyZl/DqgeviKvJJsdj/j+PyBBLfCs3fyPTI0G4iXQNEwg9jlacqLnvOxMDrYXUyXolTOuEPRfAt3PmXtB9/V00fFc/yJJ+laORLJDGlY2iVyxjFsNlOqGyOwWIL7XoMvcKPsTKKidJga9E4WVS8zAGm844zm+5nOjs3YUHb8hDPEsRGAQs7hQWmDzvGS5iC1ajczO/cowuVCN7FbGENng4166verQy4aL+sNTa6/ObfPqOB1xi8KZMP9MRJWB5waJGqK9QD2XebOI3rlOD3g== 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: DM6PR12MB2748.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 531c55b6-118f-4d48-ca4c-08d8741c8c61 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Oct 2020 10:48:43.4811 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: l9V5RCjbg9Wa/B0EuaSqxUKfNLfeHTh03AkoFg+3xyNBfHDOPhKfE6BiKz/PSxLfWG1Ckn2vyK65c5Jrjsvj1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4139 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1603104433; bh=7r9TRVlcrOmFW5VLkHdKxJnHirRbX8Ho0Rjp6hQKAEg=; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To: CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References: In-Reply-To:Accept-Language:Content-Language:X-MS-Has-Attach: X-MS-TNEF-Correlator:authentication-results:x-originating-ip: x-ms-publictraffictype:x-ms-office365-filtering-correlation-id: x-ms-traffictypediagnostic:x-ms-exchange-transport-forked: x-microsoft-antispam-prvs:x-ms-oob-tlc-oobclassifiers: x-ms-exchange-senderadcheck:x-microsoft-antispam: x-microsoft-antispam-message-info:x-forefront-antispam-report: x-ms-exchange-antispam-messagedata:Content-Type: Content-Transfer-Encoding:MIME-Version: X-MS-Exchange-CrossTenant-AuthAs: X-MS-Exchange-CrossTenant-AuthSource: X-MS-Exchange-CrossTenant-Network-Message-Id: X-MS-Exchange-CrossTenant-originalarrivaltime: X-MS-Exchange-CrossTenant-fromentityheader: X-MS-Exchange-CrossTenant-id:X-MS-Exchange-CrossTenant-mailboxtype: X-MS-Exchange-CrossTenant-userprincipalname: X-MS-Exchange-Transport-CrossTenantHeadersStamped:X-OriginatorOrg; b=BjFowJ2I7N4gUEBgHuzOPOMOxC9BGt2ZyNnuihKu8wcbXSyYI2xV4mcZcw4T+IL1B IT83wR69CxuK6VsWdiBQfRVlyuxy9x3nt1CnJOVR9sFV0fnJJm1JmjGD5M+5hFMMNT 1jsA53YF9c96UxymLrPavF50XvZWi5JiLy/LazBsRSY1i7mO3t7YCK8B+n3BLo/hKQ OaGaU8Lf4X1PdcRMf2TfWDamM5k+WTKoC+pLI6yeRxaK0iO1doblohpibU2R9xQ0Ow +HrxLfmClJ5ce7lGOgPAMcs6VBM3v7Qo53G37ul5fIpAimjh0hJsR0WEUG/U5jVC05 Fb64wKlJZ+PsA== Subject: Re: [dpdk-dev] [PATCH] net/mlx5: fix use of atomic cmpset for age state 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" Hi, > -----Original Message----- > From: dev On Behalf Of Dekel Peled > Sent: Thursday, October 15, 2020 2:44 PM > To: Matan Azrad ; Shahaf Shuler > ; Slava Ovsiienko > Cc: dev@dpdk.org; stable@dpdk.org > Subject: [dpdk-dev] [PATCH] net/mlx5: fix use of atomic cmpset for age st= ate >=20 > According to documentation [1], function rte_atomic16_cmpset() > return value is non-zero on success; 0 on failure. > In existing code this function is called, and the return value > is compared to AGE_CANDIDATE, which is defined as 1. > Such comparison is incorrect and can lead to unwanted behavior. >=20 > This patch updates the calls to rte_atomic16_cmpset(), to check > that the return value is 0 or non-zero. >=20 > [1] > https://nam11.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fdoc. > dpdk.org%2Fapi%2Frte__atomic_8h.html&data=3D04%7C01%7Crasland% > 40nvidia.com%7Cc92848ff1c4a42b83bfb08d870ffe9d0%7C43083d15727340c1b > 7db39efd9ccc17a%7C0%7C0%7C637383591730997946%7CUnknown%7CTWFp > bGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVC > I6Mn0%3D%7C1000&sdata=3Dl%2Bq5%2F8MO4Qrh8MrJzEGrrQCTzE%2FH > 5Iw03qqXj5LG2PY%3D&reserved=3D0 >=20 > Fixes: fa2d01c87d2b ("net/mlx5: support flow aging") > Cc: stable@dpdk.org >=20 > Signed-off-by: Dekel Peled > Acked-by: Matan Azrad > --- > drivers/net/mlx5/mlx5_flow.c | 8 ++------ > drivers/net/mlx5/mlx5_flow_dv.c | 9 ++++----- > 2 files changed, 6 insertions(+), 11 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c > index 3d38e11..2729629 100644 > --- a/drivers/net/mlx5/mlx5_flow.c > +++ b/drivers/net/mlx5/mlx5_flow.c > @@ -6747,12 +6747,8 @@ struct mlx5_meter_domains_infos * > priv =3D rte_eth_devices[age_param->port_id].data- > >dev_private; > age_info =3D GET_PORT_AGE_INFO(priv); > rte_spinlock_lock(&age_info->aged_sl); > - /* If the cpmset fails, release happens. */ > - if (rte_atomic16_cmpset((volatile uint16_t *) > - &age_param->state, > - AGE_CANDIDATE, > - AGE_TMOUT) =3D=3D > - AGE_CANDIDATE) { > + if (rte_atomic16_cmpset((volatile uint16_t *)&age_param- > >state, > + AGE_CANDIDATE, AGE_TMOUT)) { > TAILQ_INSERT_TAIL(&age_info->aged_counters, cnt, > next); > MLX5_AGE_SET(age_info, MLX5_AGE_EVENT_NEW); > } > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c > index 361c32d..174189a 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -5103,10 +5103,8 @@ struct field_modify_info modify_tcp[] =3D { >=20 > age_info =3D GET_PORT_AGE_INFO(priv); > age_param =3D flow_dv_counter_idx_get_age(dev, counter); > - if (rte_atomic16_cmpset((volatile uint16_t *) > - &age_param->state, > - AGE_CANDIDATE, AGE_FREE) > - !=3D AGE_CANDIDATE) { > + if (!rte_atomic16_cmpset((volatile uint16_t *)&age_param->state, > + AGE_CANDIDATE, AGE_FREE)) { > /** > * We need the lock even it is age timeout, > * since counter may still in process. > @@ -5114,9 +5112,10 @@ struct field_modify_info modify_tcp[] =3D { > rte_spinlock_lock(&age_info->aged_sl); > TAILQ_REMOVE(&age_info->aged_counters, cnt, next); > rte_spinlock_unlock(&age_info->aged_sl); > + rte_atomic16_set(&age_param->state, AGE_FREE); > } > - rte_atomic16_set(&age_param->state, AGE_FREE); > } > + > /** > * Release a flow counter. > * > -- > 1.8.3.1 Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh