From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-eopbgr50045.outbound.protection.outlook.com ([40.107.5.45]:6778 "EHLO EUR03-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751828AbeCVQhv (ORCPT ); Thu, 22 Mar 2018 12:37:51 -0400 Subject: Re: [bpf-next V4 PATCH 09/15] mlx5: register a memory model when XDP is enabled To: Jesper Dangaard Brouer , netdev@vger.kernel.org, =?UTF-8?B?QmrDtnJuVMO2cGVs?= , magnus.karlsson@intel.com Cc: eugenia@mellanox.com, Jason Wang , John Fastabend , Eran Ben Elisha , Saeed Mahameed , galp@mellanox.com, Daniel Borkmann , Alexei Starovoitov , Tariq Toukan References: <152172842149.20979.12110131083451936498.stgit@firesoul> <152172851384.20979.8822446808531686268.stgit@firesoul> From: Tariq Toukan Message-ID: Date: Thu, 22 Mar 2018 18:37:41 +0200 MIME-Version: 1.0 In-Reply-To: <152172851384.20979.8822446808531686268.stgit@firesoul> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org List-ID: On 22/03/2018 4:21 PM, Jesper Dangaard Brouer wrote: > Now all the users of ndo_xdp_xmit have been converted to use xdp_return_frame. > This enable a different memory model, thus activating another code path > in the xdp_return_frame API. > > V2: Fixed issues pointed out by Tariq. > > Signed-off-by: Jesper Dangaard Brouer > --- > drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > index da94c8cba5ee..2e4ca0f15b62 100644 > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > @@ -506,6 +506,14 @@ static int mlx5e_alloc_rq(struct mlx5e_channel *c, > rq->mkey_be = c->mkey_be; > } > > + /* This must only be activate for order-0 pages */ > + if (rq->xdp_prog) { > + err = xdp_rxq_info_reg_mem_model(&rq->xdp_rxq, > + MEM_TYPE_PAGE_ORDER0, NULL); > + if (err) > + goto err_rq_wq_destroy; > + } > + > for (i = 0; i < wq_sz; i++) { > struct mlx5e_rx_wqe *wqe = mlx5_wq_ll_get_wqe(&rq->wq, i); > > Reviewed-by: Tariq Toukan