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 DABC9A04DF; Wed, 21 Oct 2020 22:33:18 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C1425A8EA; Wed, 21 Oct 2020 22:33:17 +0200 (CEST) Received: from nat-hk.nvidia.com (nat-hk.nvidia.com [203.18.50.4]) by dpdk.org (Postfix) with ESMTP id F1696A855; Wed, 21 Oct 2020 22:33:14 +0200 (CEST) Received: from HKMAIL101.nvidia.com (Not Verified[10.18.92.9]) by nat-hk.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Thu, 22 Oct 2020 04:33:12 +0800 Received: from HKMAIL103.nvidia.com (10.18.16.12) by HKMAIL101.nvidia.com (10.18.16.10) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 21 Oct 2020 20:33:12 +0000 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.168) by HKMAIL103.nvidia.com (10.18.16.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 21 Oct 2020 20:33:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VRfttqcG/1sc+Pu+JriSyfcGX+vWYCYi5nLhDf1PJ+1N11Ng9ceDwQbZtNQzyLVIr76eeHF91vrtdczer2FavFuwMMTS2enCaj4+hLCiyKve2D1Y1IAeu6+Xd6o9G2nuvZ+KG3WI/R4t9l14krDCrpGtySTUW75068wE65eX7TxxBUhCfqz8UtoKvmlRFAkUskTmi41tWKVVnkeyGFuL/swtFVvJRxWaExqSaa1XXlzwiw3y8CS9xtEVHC0JWAlhc+yOrOQRSFsDK196KkI8jwEPslpjdxLzS9U/LKF8CbJrOAmmEQYsxEpMnzUsOIVBJ6K3kDPl1gpd+fUNqTUmiQ== 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=gdlkuE40tL19Vpe91ctsVZOqA4RBlHl+Ld+sVfN9iKo=; b=Y6azf9lCxANbpATlw4+n3eOKrjPPBJxXlVc+MgrvcjUlVQ9hvjZTos0SxIl0axuLWvTCD7ViNxI+ciRwQOKQ0Gz1lhAzVCaizqpC+RwYQCiATSEawle9GKtRH+3Erzq+eXyQvpWOrDrXLn7+pdd/Yd0GyR8OXvlMnEr7BKqJwNpCVZOhCSbTMII7yYiMKrqECyUKfmz3jqGSBDiOSOphQJXFtbohPFwdmL8/sgeERpHDWIGEMLd7e/7qQZQPuB7+B6/Zlq3qv6pD4g1xgqEXrZPp/YupxXG9ZBb8coYnpsWFkBCmOTiSgXZblYhStG94vJkNLOn30S+kcot+f20fPg== 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 DM5PR12MB1420.namprd12.prod.outlook.com (2603:10b6:3:78::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3477.27; Wed, 21 Oct 2020 20:33:07 +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; Wed, 21 Oct 2020 20:33:07 +0000 From: Raslan Darawsheh To: "Xueming(Steven) Li" , Matan Azrad , Slava Ovsiienko CC: "dev@dpdk.org" , "Xueming(Steven) Li" , Asaf Penso , Jack Min , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v1] net/mlx5: fix port shared data reference count Thread-Index: AQHWp5uTjzNlX8bNy0mWJNxn0gEmVamig2cg Date: Wed, 21 Oct 2020 20:33:07 +0000 Message-ID: References: <1603271865-11186-1-git-send-email-xuemingl@nvidia.com> <1603278923-21514-1-git-send-email-xuemingl@nvidia.com> In-Reply-To: <1603278923-21514-1-git-send-email-xuemingl@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: [188.161.229.126] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 73446198-3d83-4212-1125-08d876008517 x-ms-traffictypediagnostic: DM5PR12MB1420: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2043; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oh6fumGPvHdrdEZj2lHg9dbnYOm6XAV3vDIL68cSNlyPU/r3Shpr2yzzlFMdQ26z3nAaji1PzEFATQK2oU549CgpJm1bdTzpbLcr9SZ5jX2fK8FATa9kV0BKcdVA61yDCZhAIVOPkcqSxBewybLzQ8Veu9U5UqlIYsLgrCWxwlz4BsowsdMbE1gmzCD7vnlx2eCPllOb0LhRu35tIVaQNwP6ndxkDmyvcRegZGQ+YCzBXiMKbdZMjoJqUhfxqiYnE5f94b6TLnGHnHhoqzOx1W+AdrDSfkZDTeRmkWmQcpcCeFL8MYe/aMaj3VOi7qql 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)(376002)(39860400002)(346002)(366004)(136003)(33656002)(110136005)(66446008)(4326008)(6506007)(54906003)(8676002)(71200400001)(8936002)(53546011)(6636002)(2906002)(66946007)(7696005)(76116006)(86362001)(450100002)(64756008)(66476007)(55016002)(316002)(478600001)(83380400001)(9686003)(66556008)(5660300002)(186003)(26005)(52536014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: QJppQ11ClZzUxsVPeIE60OsXWP3KuZF6uvUEuh7XYGCCLtMW4CJCT7bkv96rZyvNdIWM5DGMhPApsnp4KxZ8vi6pI+jSn7fxOS9hcf399iiqyEDYyC6OJi1sNml/AT6pPcUMqO+hNPbWuFJEm8SiQXqTEpb8wXRacl3etafcvZIHETDZ1+mWWhnh5iYLNspSyCjYyCt2gzpPutNX6+9X02Oj2Q5wG9fUBuWkXJrxHlCVCFTIGKEKoIi5ChJIivZ5ngodXIcdRmEq4Mxe9e6QOwAP3g91MsbnIx2TIDffJ8UiWq/Hkzvz0Sc2r0YcSo1G0hiAaIsuRs0g8W0dz5CywWztGjrRAHaU723T1WXPfl0yKK35zOgb30m3D8S5ODDy7GEYT9RgqGuLA0avtMCB+x4qXIpspDPeYvyiJ5xS+f+pCeY4Txtf/8GXjRmhgTBQKYC5N11P1hsjgFyu88Kw6rBorfra+AX82c1loUTwjo0z5CZbX9Qf5zy3zRiTrWFiIbMuXTXweyAGm7RsmzgK945vMCaNdmNf5+BG+PSQhEg+dNBuR8ZK7dxJNmaJ6lzp4wmu3xFkga5SyWdHmRhb4W0M7q1MuHn9MaMbPFkyLowVXRgRMryQ2tQXxoaBXkp/A8QSyKXwtsxpyac2VN6hBg== 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: 73446198-3d83-4212-1125-08d876008517 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Oct 2020 20:33:07.5265 (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: /I6FbjlsHQwkhooYP/oAewreLYFm4k8Sn/ADgyHNYo9TlQ9FN2GWeMMv3guJZkz16WolVXZHNC0xd56v3yUJsQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1420 X-OriginatorOrg: Nvidia.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1603312392; bh=gdlkuE40tL19Vpe91ctsVZOqA4RBlHl+Ld+sVfN9iKo=; 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=BGTcacartNjS9jfRVlg/ThLaEljpDYsRvXkyXv4slJwqC073uPT2qms9VmRYH3wpe Xp/gS/WTwlYFb/YvPCUH6TKFSmDUxVL9pSMfNc37aArejjfA3u5IboeErZoZjrEMHR Q6og9p4UsGnlLM1bBHaQQqM/gHLIRoU1+z60Eq4ORAGfe5FHTiSTr40ME7aYrupm5B CPh84gGCZ2NI5LgWSpHTKfYCFM+b4gRlpXQ+8lDIhJWPAdu/y1E10JfYOMwvMuvNnk eAy5gpZ+7E9rKgxoroq/8wNaJd+YmjY8rYnht5oXC7mrVjqM0ZMq8GTRcseW134+Xa gg8OPGF+rN24Q== Subject: Re: [dpdk-dev] [PATCH v1] net/mlx5: fix port shared data reference count 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 Xueming Li > Sent: Wednesday, October 21, 2020 2:15 PM > To: Matan Azrad ; Slava Ovsiienko > > Cc: dev@dpdk.org; Xueming(Steven) Li ; Asaf Penso > ; Jack Min ; stable@dpdk.org > Subject: [dpdk-dev] [PATCH v1] net/mlx5: fix port shared data reference > count >=20 > When probe a representor, tag cache hash table and modification cache > hash table allocated memory upon each port, overwrote previous existing > cache in shared context data. >=20 > This patch moves reference check of shared data prior to hash table > allocation to avoid such issue. >=20 > Fixes: 6801116688fe ("net/mlx5: fix multiple flow table hash list") > Cc: jackmin@nvidia.com > Fixes: 1ef4cdef2682 ("net/mlx5: fix flow tag hash list conversion") > Cc: matan@nvidia.com >=20 > Cc: stable@dpdk.org > Acked-by: Matan Azrad > Signed-off-by: Xueming Li > --- > drivers/net/mlx5/linux/mlx5_os.c | 30 ++++++++---------------------- > drivers/net/mlx5/mlx5.h | 2 -- > drivers/net/mlx5/mlx5_flow_dv.c | 4 ++-- > 3 files changed, 10 insertions(+), 26 deletions(-) >=20 > diff --git a/drivers/net/mlx5/linux/mlx5_os.c > b/drivers/net/mlx5/linux/mlx5_os.c > index 457008ef9e..40f9446d43 100644 > --- a/drivers/net/mlx5/linux/mlx5_os.c > +++ b/drivers/net/mlx5/linux/mlx5_os.c > @@ -226,13 +226,12 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) > { > struct mlx5_dev_ctx_shared *sh =3D priv->sh; > char s[MLX5_HLIST_NAMESIZE]; > - int err =3D 0; > + int err; >=20 > - if (!sh->flow_tbls) > - err =3D mlx5_alloc_table_hash_list(priv); > - else > - DRV_LOG(DEBUG, "sh->flow_tbls[%p] already created, > reuse\n", > - (void *)sh->flow_tbls); > + MLX5_ASSERT(sh && sh->refcnt); > + if (sh->refcnt > 1) > + return 0; > + err =3D mlx5_alloc_table_hash_list(priv); > if (err) > return err; > /* Create tags hash list table. */ > @@ -261,12 +260,6 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) > #ifdef HAVE_MLX5DV_DR > void *domain; >=20 > - if (sh->dv_refcnt) { > - /* Shared DV/DR structures is already initialized. */ > - sh->dv_refcnt++; > - priv->dr_shared =3D 1; > - return 0; > - } > /* Reference counter is zero, we should initialize structures. */ > domain =3D mlx5_glue->dr_create_domain(sh->ctx, >=20 > MLX5DV_DR_DOMAIN_TYPE_NIC_RX); > @@ -306,8 +299,6 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) > } > sh->pop_vlan_action =3D mlx5_glue- > >dr_create_flow_action_pop_vlan(); > #endif /* HAVE_MLX5DV_DR */ > - sh->dv_refcnt++; > - priv->dr_shared =3D 1; > return 0; > error: > /* Rollback the created objects. */ > @@ -357,17 +348,12 @@ mlx5_alloc_shared_dr(struct mlx5_priv *priv) > void > mlx5_os_free_shared_dr(struct mlx5_priv *priv) > { > - struct mlx5_dev_ctx_shared *sh; > + struct mlx5_dev_ctx_shared *sh =3D priv->sh; >=20 > - if (!priv->dr_shared) > + MLX5_ASSERT(sh && sh->refcnt); > + if (sh->refcnt > 1) > return; > - priv->dr_shared =3D 0; > - sh =3D priv->sh; > - MLX5_ASSERT(sh); > #ifdef HAVE_MLX5DV_DR > - MLX5_ASSERT(sh->dv_refcnt); > - if (sh->dv_refcnt && --sh->dv_refcnt) > - return; > if (sh->rx_domain) { > mlx5_glue->dr_destroy_domain(sh->rx_domain); > sh->rx_domain =3D NULL; > diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h > index fa69c66137..c9d5d71630 100644 > --- a/drivers/net/mlx5/mlx5.h > +++ b/drivers/net/mlx5/mlx5.h > @@ -635,7 +635,6 @@ struct mlx5_dev_ctx_shared { > uint32_t dv_meta_mask; /* flow META metadata supported mask. > */ > uint32_t dv_mark_mask; /* flow MARK metadata supported mask. > */ > uint32_t dv_regc0_mask; /* available bits of metatada reg_c[0]. */ > - uint32_t dv_refcnt; /* DV/DR data reference counter. */ > void *fdb_domain; /* FDB Direct Rules name space handle. */ > void *rx_domain; /* RX Direct Rules name space handle. */ > void *tx_domain; /* TX Direct Rules name space handle. */ > @@ -823,7 +822,6 @@ struct mlx5_priv { > unsigned int isolated:1; /* Whether isolated mode is enabled. */ > unsigned int representor:1; /* Device is a port representor. */ > unsigned int master:1; /* Device is a E-Switch master. */ > - unsigned int dr_shared:1; /* DV/DR data is shared. */ > unsigned int txpp_en:1; /* Tx packet pacing enabled. */ > unsigned int mtr_en:1; /* Whether support meter. */ > unsigned int mtr_reg_share:1; /* Whether support meter REG_C > share. */ > diff --git a/drivers/net/mlx5/mlx5_flow_dv.c > b/drivers/net/mlx5/mlx5_flow_dv.c > index 49d96362f8..15cd34e331 100644 > --- a/drivers/net/mlx5/mlx5_flow_dv.c > +++ b/drivers/net/mlx5/mlx5_flow_dv.c > @@ -293,7 +293,7 @@ flow_dv_shared_lock(struct rte_eth_dev *dev) > struct mlx5_priv *priv =3D dev->data->dev_private; > struct mlx5_dev_ctx_shared *sh =3D priv->sh; >=20 > - if (sh->dv_refcnt > 1) { > + if (sh->refcnt > 1) { > int ret; >=20 > ret =3D pthread_mutex_lock(&sh->dv_mutex); > @@ -308,7 +308,7 @@ flow_dv_shared_unlock(struct rte_eth_dev *dev) > struct mlx5_priv *priv =3D dev->data->dev_private; > struct mlx5_dev_ctx_shared *sh =3D priv->sh; >=20 > - if (sh->dv_refcnt > 1) { > + if (sh->refcnt > 1) { > int ret; >=20 > ret =3D pthread_mutex_unlock(&sh->dv_mutex); > -- > 2.25.1 Patch applied to next-net-mlx, Kindest regards, Raslan Darawsheh =