From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-db5eur01on0062.outbound.protection.outlook.com ([104.47.2.62]:34328 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754440AbeCGLue (ORCPT ); Wed, 7 Mar 2018 06:50:34 -0500 Subject: Re: [bpf-next V1 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: <152037278114.25478.12772686660335839274.stgit@firesoul> <152037291083.25478.3850731693124890762.stgit@firesoul> From: Tariq Toukan Message-ID: <9b24bef5-844e-6ff9-ed66-1e04fe0fac9c@mellanox.com> Date: Wed, 7 Mar 2018 13:50:19 +0200 MIME-Version: 1.0 In-Reply-To: <152037291083.25478.3850731693124890762.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 06/03/2018 11:48 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. > > Signed-off-by: Jesper Dangaard Brouer > --- > drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 7 +++++++ > 1 file changed, 7 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..51482943c583 100644 > --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c > @@ -506,6 +506,13 @@ 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 < 0) > + goto err_rq_wq_destroy; > + Use "if (err)" here, instead of changing this in next patch. Also, get it into the "if (rq->xdp_prog)" block. > for (i = 0; i < wq_sz; i++) { > struct mlx5e_rx_wqe *wqe = mlx5_wq_ll_get_wqe(&rq->wq, i); > >