From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 97080A0A0C; Fri, 2 Jul 2021 09:06:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7DC6A40686; Fri, 2 Jul 2021 09:06:00 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2044.outbound.protection.outlook.com [40.107.244.44]) by mails.dpdk.org (Postfix) with ESMTP id 82B5E4003E for ; Fri, 2 Jul 2021 09:05:59 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cIuA3H3IXfMkNnMHOIJdIMsC67EDv295q+eFftqJe0z4oZPGQuGNFMCb5EoMVxvc6xLV24J2DjKUYNlsCYzjB5QkXZ4dpNiJTYSBHbg9vEnqj5UXqeZDm8QMnKXPOwy4dqrPdu6nxt/p53GuXcVhwMqKj3fmBSOlGEs38KA9DAlsbwApwbqRkqkJdrsUYCptCdEbUNoNnEWP7+Wy08zfW0UCsErZZ5sFG4Jt0Tpz8QyhO+c4ZyNL7MiySijGwPK8Uq4d6efegOSdq4eAViQqrkRSqCO42ZDAkv6Q8V9P281ExRktAKusNA2sJ0BfspS7zCrUsH3Zg111T3TkhJ+64w== 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=CFmVRG+QRbyHs1bTe8jXpbd37mH8r4zMMYj4UNOVtR0=; b=LG3z3y1NPp6sNp/tXba5pAsG8eLYdymT+PWfV069e0qbXfbPEOKyVsea8YJ04+R2U/KZ1eBNEisu8slYM8f9RfxKVkS4eU3A0VzQ+8Rb+fewNijUwxES1zDEXZrycLXTgrsQdV0GyuI6bN95dPFkNObLg6/q5qVyjYMDQZCPFnJfCW9UsTesnfzVliciZtiw1aEIYweXHRRLJLonMSYwIEuD89SHy0jW5qp8+zq3BY2xhXQWWuQO/nLT2nenmGGinH14R9g+eSFApQwr1DZGpUUJuq6ZyjTqE5no5asEok0iwIKhtqdnBiSBd4UjQd/K+DJEw+EaSjkYr6bntvyJtw== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CFmVRG+QRbyHs1bTe8jXpbd37mH8r4zMMYj4UNOVtR0=; b=NXm9DsCjmIr2C7RqQex7iWj8HvGYfSXkqwI8+0i0N+fPgTUknTmPxXnqKlvmUOaQI+fo8pZJ82g+ffDP5Up3M203lR7+z4bup83hsrAZglpWJDaSQhp/6h/RKh38HQaDuF8I3hni5HR/oWnOuDBBB6/MNOkARg7rdKlmgNXB8aYcHDOnG3qfxNy3vluukfnUil1UXkiqDu1QFpT6YZUL7TQWSVI6YXlH/QxpZIhxJDZ+pEsu0tPVOxszJ65mqSGVm+p+pCqutK39MeiURR9MCUkeOf+g/7BBOb7yIR10epc77VPxry//9yIUgBf6pbu+RZx1tkwCZK2HjTmPx9XNdw== Received: from DM6PR12MB3753.namprd12.prod.outlook.com (2603:10b6:5:1c7::18) by DM6PR12MB3132.namprd12.prod.outlook.com (2603:10b6:5:3c::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4264.23; Fri, 2 Jul 2021 07:05:57 +0000 Received: from DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::2521:f25e:e8db:6e35]) by DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::2521:f25e:e8db:6e35%6]) with mapi id 15.20.4287.024; Fri, 2 Jul 2021 07:05:57 +0000 From: Slava Ovsiienko To: Ruifeng Wang , Raslan Darawsheh , Matan Azrad , Shahaf Shuler CC: "dev@dpdk.org" , "jerinj@marvell.com" , "nd@arm.com" , "honnappa.nagarahalli@arm.com" Thread-Topic: [PATCH 2/2] net/mlx5: reduce unnecessary memory access Thread-Index: AQHXVsCKrukY0p9+sUqkZ1L3onQ9HKsvcqMQ Date: Fri, 2 Jul 2021 07:05:57 +0000 Message-ID: References: <20210601083055.97261-1-ruifeng.wang@arm.com> <20210601083055.97261-3-ruifeng.wang@arm.com> In-Reply-To: <20210601083055.97261-3-ruifeng.wang@arm.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [188.163.75.31] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 73cdcd77-daa0-4e42-c23b-08d93d27d715 x-ms-traffictypediagnostic: DM6PR12MB3132: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:820; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 1CeKXCJWCfaQEiOhG5N3GResTA8vbur4A7Wl/wsONYCwDa2kG6HsFVGf9wyNAyZn9YssUt1lqSHY7RLCrkbuIvQhzUhmvREJjpbA7QfTiLCPBqByx4YExKOEOja8WHa7bVkXBArKYEPcpbN8j1osm8XYKpJ3UN2YtNBvOZ8yLzAStYJGRFo5Ht3ap9AOCcufqGe4dYhG/VosRXYwNtv5OavyEnikzEKYds/PM3dgNT6U6qhBvGZ2NMCDaX3nBN7XTtKLlo8rTDBmZJtAqHmlY/8uFkoOVNxvd/x8tMIOHoPGegjaq35agIhWa281F3xj1wFVc224qdDlJdXinqB27mX1/oOa0pJD7JBD/MEcCfC1pvIl+DyEPsWqs6jvszmo1NMGmS7P33sNY9v6XkrYcFlOcZlWrQ3VQXU/o4ijl4LLjbJtLbpepBnxvpXZ/YRb3e272IOXTbaiiglRnlU/W+4iF/lfT3jdGAsxdh4COLjGs6oyqPWW+Q5PKLs1ck6V2L49GZcxM7UYzCPX8i+aXel4USFdjeJqvXeW23bc4ZD3qjMZn/Fwhl1wzm3laU2e6Q4bXVSdObV+sVoF/QEYMFhxMbERCuR3vuXNDwLjKHsVYXyA1Tp/xBFUi7mEyiYdmygFR5R4i8QYIB70cNfXNQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3753.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(366004)(136003)(396003)(39860400002)(478600001)(5660300002)(6636002)(86362001)(4326008)(316002)(7696005)(2906002)(54906003)(8676002)(38100700002)(71200400001)(53546011)(64756008)(76116006)(122000001)(26005)(66556008)(66446008)(52536014)(6506007)(110136005)(66476007)(66946007)(8936002)(33656002)(186003)(83380400001)(55236004)(55016002)(9686003); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?gKkO2w8FPbO+BgSXLiggJaEN4ycIxScBhd/j5e1Q0fGhsleUiV5AdDyFB2XB?= =?us-ascii?Q?PhML+K8PzF890ST5+p1YGKTuUx9+YW/tF0HvfABdeJOk9UbJuI861Ft/SaRN?= =?us-ascii?Q?tKa1d8COxmYiMrs9vfmxXfvHfsYd+9QnAfw9/xKCDbkUkMXFh9zMnJd6lPv3?= =?us-ascii?Q?1NTgw3h1SJQPVlevtWdyovx1Lci+2lGf1KUQpZqA/BymBGugd1ylCOP1fjB5?= =?us-ascii?Q?zYvAIod9D/UO3P1CHQ5AX+c5TrQMgTAz//LV2567l9kVy1SodDa6D52biRoS?= =?us-ascii?Q?NQ0NAuwobnZ2W/cJpIF0KogUZDRwbaOL39iFMiB8iaYbqO8LoeUOb76f7XJQ?= =?us-ascii?Q?13d5eqyr3OGchhpGPXuKxn27jCGdQ95c4uxBguJfdpdolrsvt/06B9G/Gjww?= =?us-ascii?Q?pn3szHvhrQR4mL1BTFtRx+oFP/ZEKP/szp+YmmS8mNdyYdLuRz5p1PDgKKOC?= =?us-ascii?Q?ABwxlkFa+xeybjH5gk8S6IomLgttiTmlFzII5g5SlA7Gla3O9d5cQavW+yLW?= =?us-ascii?Q?2CMTbRaP7rRlpUlBtVZLarHpZVkpxycOYhpN7txtb0lumbboYAT0AZRjlrd1?= =?us-ascii?Q?3c750nreN62J2hdv8gdyVZEyz4BBUPjiygyZqzGlnlCF+h3Eg7leOrzIIi7f?= =?us-ascii?Q?hjcGYg423Fsnh0clKGej3HNZ6RQqMEZYm7MM0SxAbSnHmcpvfU9HdlShMhX4?= =?us-ascii?Q?SjMyEGIMCI3gMtF8tsAompv6yP7eLd9pbaVu4Gi2QuN0yKiGSnXaJI+YQnQm?= =?us-ascii?Q?dEZmoek1VWDC5rCqMFou+V7ofRgWkDe5S4Fb0c0ubZgskYeligW4dA0wO0LY?= =?us-ascii?Q?UvwIElCXutPhaQFBYBugXVm+OVx9a35bhc16nkD/E41Eh3G0OSA3fhUOeayl?= =?us-ascii?Q?CSI3kRPXvsTGSvjNBLoVBJbdTl/8yae2FOalWsZj3njSEvy2g/kwJ4HAy7od?= =?us-ascii?Q?1CfNSs+Up4UHZL0qlo75fTxXxbSrT7LM0iNwuGvlW0wqnAT2pMgPMvdJDuf9?= =?us-ascii?Q?CBX5EUd4aUXYDg6JqswyH9vE4Jf0NYfjaoaVTmTUAV7CR+MoaTygQi47g7v5?= =?us-ascii?Q?/9NiPSF0SijRIuci4b6mHiEtYiEeS6KNGKDa+KMaXLsUWMlhwbmmSair6szy?= =?us-ascii?Q?3lfciE9LjK3vdfxO4WP4aQ7rLDYBBGEio/BQP9jgNhQDDXfixzqPeOtq4ueW?= =?us-ascii?Q?Gz4XXldSwKv8MUHND4+zhLnulvuemptnMvU8SVh2kB2vqrQXuG8dMS7TWhr9?= =?us-ascii?Q?dQaHbCNP+mD4svPwkbVD7nPCoZ0BCHHxlSK2uvApFJaQkXzoxY0B7FiWsyBP?= =?us-ascii?Q?/m2/BkVWS4wfaNKIfBGIJ3Vh?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3753.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73cdcd77-daa0-4e42-c23b-08d93d27d715 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jul 2021 07:05:57.0542 (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: +erxEu8S33QDUdJu9ye061KEeW+KLR9Lr2z+AKya7a+icO7XZE/lyU2xzuo7htsjzrhB4vmxtS4S0AsZwGar1w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3132 Subject: Re: [dpdk-dev] [PATCH 2/2] net/mlx5: reduce unnecessary memory access X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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, Ruifeng Could we go further and implement loop inside the conditional? Like this: if (mlx5_mr_btree_len(&rxq->mr_ctrl.cache_bh) > 1) { for (i =3D 0; i < n; ++i) { void *buf_addr =3D elts[i]->buf_addr; wq[i].addr =3D rte_cpu_to_be_64((uintptr_t)buf_addr + RTE_PKTMBUF_HEADROOM); wq[i].lkey =3D mlx5_rx_mb2mr(rxq, elts[i]); } } else { for (i =3D 0; i < n; ++i) { void *buf_addr =3D elts[i]->buf_addr; wq[i].addr =3D rte_cpu_to_be_64((uintptr_t)buf_addr + RTE_PKTMBUF_HEADROOM); } } What do you think? Also, we should check the performance on other archs is not affected. With best regards, Slava > -----Original Message----- > From: Ruifeng Wang > Sent: Tuesday, June 1, 2021 11:31 > To: Raslan Darawsheh ; Matan Azrad > ; Shahaf Shuler ; Slava Ovsiienko > > Cc: dev@dpdk.org; jerinj@marvell.com; nd@arm.com; > honnappa.nagarahalli@arm.com; Ruifeng Wang > Subject: [PATCH 2/2] net/mlx5: reduce unnecessary memory access >=20 > MR btree len is a constant during Rx replenish. > Moved retrieve of the value out of loop to reduce data loads. > Slight performance uplift was measured on N1SDP. >=20 > Signed-off-by: Ruifeng Wang > --- > drivers/net/mlx5/mlx5_rxtx_vec.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5_rxtx_vec.c > b/drivers/net/mlx5/mlx5_rxtx_vec.c > index d5af2d91ff..fc7e2a7f41 100644 > --- a/drivers/net/mlx5/mlx5_rxtx_vec.c > +++ b/drivers/net/mlx5/mlx5_rxtx_vec.c > @@ -95,6 +95,7 @@ mlx5_rx_replenish_bulk_mbuf(struct mlx5_rxq_data > *rxq) > volatile struct mlx5_wqe_data_seg *wq =3D > &((volatile struct mlx5_wqe_data_seg *)rxq->wqes)[elts_idx]; > unsigned int i; > + uint16_t btree_len; >=20 > if (n >=3D rxq->rq_repl_thresh) { > MLX5_ASSERT(n >=3D > MLX5_VPMD_RXQ_RPLNSH_THRESH(q_n)); > @@ -106,6 +107,8 @@ mlx5_rx_replenish_bulk_mbuf(struct mlx5_rxq_data > *rxq) > rxq->stats.rx_nombuf +=3D n; > return; > } > + > + btree_len =3D mlx5_mr_btree_len(&rxq->mr_ctrl.cache_bh); > for (i =3D 0; i < n; ++i) { > void *buf_addr; >=20 > @@ -119,8 +122,7 @@ mlx5_rx_replenish_bulk_mbuf(struct mlx5_rxq_data > *rxq) > wq[i].addr =3D rte_cpu_to_be_64((uintptr_t)buf_addr + >=20 > RTE_PKTMBUF_HEADROOM); > /* If there's a single MR, no need to replace LKey. */ > - if (unlikely(mlx5_mr_btree_len(&rxq- > >mr_ctrl.cache_bh) > - > 1)) > + if (unlikely(btree_len > 1)) > wq[i].lkey =3D mlx5_rx_mb2mr(rxq, elts[i]); > } > rxq->rq_ci +=3D n; > -- > 2.25.1