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 623B3A04C1 for ; Mon, 28 Sep 2020 07:21:42 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2420C1D5D1; Mon, 28 Sep 2020 07:21:41 +0200 (CEST) Received: from mail-il1-f193.google.com (mail-il1-f193.google.com [209.85.166.193]) by dpdk.org (Postfix) with ESMTP id 294B91D5B9; Mon, 28 Sep 2020 07:21:36 +0200 (CEST) Received: by mail-il1-f193.google.com with SMTP id z5so8543884ilq.5; Sun, 27 Sep 2020 22:21:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Qyk5vl6rqXxyzi+zg1H1Ym6xF/yeD3VtXU5rIAeDqSc=; b=Wzz1p1zjFb7KQyzYhBzhnjBP/ZYnGDPS/XuaeUjmOU4yvh2BUmms18/31HeXb+Pf85 OJL0VefhJDOm4Yco1TSkRxaQXxv/VntBXkkehu/CCAldT7ZrlIJF0EQJg5ydnIEzaWaW 76I+suRb4mp5HQffsQxfSl6fLHs/Fe/hXbWYo6yUnU5S2yf5ANZBS1Yk20mF8flRUq+l 5bdff4CWmueZ0NaeZt5kA4APhHGgQnfF7RRbxOl8bgh7BQFgXsHOoUf3ROnaHrjxAeCH Pw3pFEuQKPFUl6fDzWfll5zPCW9g4CfKnhdwx8sJvbZUnpJMiBwTZ8wgEWeWlDybgrJR gkWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Qyk5vl6rqXxyzi+zg1H1Ym6xF/yeD3VtXU5rIAeDqSc=; b=aENF0m8QSnyOzQLJz2ZVe1ti9l4+YQL7Ga4XBORoNrB4AlJtosN8NRWgIUjL/l3mnu 89+B8pZjCM5OIkxZ+Dw3Rl64laQ6Ht9VI78ddmGPWIdX/Bb0iAUedw+g0+hu+Pvl8Br4 dZC8tVzVLRvqISGOsbicF+TtDSmE9YvxzytKWn6OH2AQX0y3DiKYcfe3/6RPmiZKdsNV LMTMC9a/tfmR0on1ZZX3YedtYxWDO/S31zt33y6P82049CdGwFqWB/PX8CEyOtgFdbMr hbVL0/YocmPH3xHEJsbmmTTqngHh7j6ezrbf0K239kD4r3S0hL0t0wPghrEqIlNYsYT5 hXuA== X-Gm-Message-State: AOAM533W3nnHFNn8PlEmOONkrh7GLSn0gfeHLJ6L+V4LAHzfk1Vv7BXV NGEM0eUgjlCei/2uubhO+40Pt/lywZLmco4iJRM= X-Google-Smtp-Source: ABdhPJxwez2VH52oW7Js3SCqg29WeoJUrBExNKwsQbl2tid9oIeJUW9VwYFKIY0+oWl3ALLNm5rSn2fj3G3dX6QE2v4= X-Received: by 2002:a05:6e02:e01:: with SMTP id a1mr9014815ilk.162.1601270494399; Sun, 27 Sep 2020 22:21:34 -0700 (PDT) MIME-Version: 1.0 References: <1597056945-23018-1-git-send-email-hkalra@marvell.com> In-Reply-To: <1597056945-23018-1-git-send-email-hkalra@marvell.com> From: Jerin Jacob Date: Mon, 28 Sep 2020 10:51:18 +0530 Message-ID: To: Harman Kalra , Ferruh Yigit Cc: Jerin Jacob , Nithin Dabilpuram , Kiran Kumar K , dpdk-dev , dpdk stable Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-stable] [dpdk-dev] [PATCH] net/octeontx2: fix multi seg mode for jumbo packets X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" On Mon, Aug 10, 2020 at 4:26 PM Harman Kalra wrote: > > Scatter gather mode should get enabled: > - If mbuf size is less than max received packet length. > - MTU is reconfigured greater than mbuf size. > > Fixes: 0e2efd02db58 ("net/octeontx2: add MTU set operation") > Cc: stable@dpdk.org > > Signed-off-by: Harman Kalra Applied to dpdk-next-net-mrvl/master. Thanks > --- > drivers/net/octeontx2/otx2_ethdev.c | 30 +++++++++++++++++++++++++ > drivers/net/octeontx2/otx2_ethdev.h | 2 ++ > drivers/net/octeontx2/otx2_ethdev_ops.c | 9 +------- > 3 files changed, 33 insertions(+), 8 deletions(-) > > diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c > index 33b72bd4d..bee1e2a76 100644 > --- a/drivers/net/octeontx2/otx2_ethdev.c > +++ b/drivers/net/octeontx2/otx2_ethdev.c > @@ -657,6 +657,9 @@ otx2_nix_rx_queue_setup(struct rte_eth_dev *eth_dev, uint16_t rq, > } > } > > + /* Setup scatter mode if needed by jumbo */ > + otx2_nix_enable_mseg_on_jumbo(rxq); > + > return 0; > > free_rxq: > @@ -878,6 +881,33 @@ nix_sqb_unlock(struct rte_mempool *mp) > return 0; > } > > +void > +otx2_nix_enable_mseg_on_jumbo(struct otx2_eth_rxq *rxq) > +{ > + struct rte_pktmbuf_pool_private *mbp_priv; > + struct rte_eth_dev *eth_dev; > + struct otx2_eth_dev *dev; > + uint32_t buffsz; > + > + eth_dev = rxq->eth_dev; > + dev = otx2_eth_pmd_priv(eth_dev); > + > + /* Get rx buffer size */ > + mbp_priv = rte_mempool_get_priv(rxq->pool); > + buffsz = mbp_priv->mbuf_data_room_size - RTE_PKTMBUF_HEADROOM; > + > + if (eth_dev->data->dev_conf.rxmode.max_rx_pkt_len > buffsz) { > + dev->rx_offloads |= DEV_RX_OFFLOAD_SCATTER; > + dev->tx_offloads |= DEV_TX_OFFLOAD_MULTI_SEGS; > + > + /* Setting up the rx[tx]_offload_flags due to change > + * in rx[tx]_offloads. > + */ > + dev->rx_offload_flags |= nix_rx_offload_flags(eth_dev); > + dev->tx_offload_flags |= nix_tx_offload_flags(eth_dev); > + } > +} > + > static int > nix_sq_init(struct otx2_eth_txq *txq) > { > diff --git a/drivers/net/octeontx2/otx2_ethdev.h b/drivers/net/octeontx2/otx2_ethdev.h > index e9efe52bb..11cdd8afd 100644 > --- a/drivers/net/octeontx2/otx2_ethdev.h > +++ b/drivers/net/octeontx2/otx2_ethdev.h > @@ -437,6 +437,8 @@ int otx2_nix_set_mc_addr_list(struct rte_eth_dev *eth_dev, > /* MTU */ > int otx2_nix_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu); > int otx2_nix_recalc_mtu(struct rte_eth_dev *eth_dev); > +void otx2_nix_enable_mseg_on_jumbo(struct otx2_eth_rxq *rxq); > + > > /* Link */ > void otx2_nix_toggle_flag_link_cfg(struct otx2_eth_dev *dev, bool set); > diff --git a/drivers/net/octeontx2/otx2_ethdev_ops.c b/drivers/net/octeontx2/otx2_ethdev_ops.c > index faecf216c..b36d37b9f 100644 > --- a/drivers/net/octeontx2/otx2_ethdev_ops.c > +++ b/drivers/net/octeontx2/otx2_ethdev_ops.c > @@ -72,22 +72,15 @@ otx2_nix_mtu_set(struct rte_eth_dev *eth_dev, uint16_t mtu) > int > otx2_nix_recalc_mtu(struct rte_eth_dev *eth_dev) > { > - struct otx2_eth_dev *dev = otx2_eth_pmd_priv(eth_dev); > struct rte_eth_dev_data *data = eth_dev->data; > - struct rte_pktmbuf_pool_private *mbp_priv; > struct otx2_eth_rxq *rxq; > - uint32_t buffsz; > uint16_t mtu; > int rc; > > - /* Get rx buffer size */ > rxq = data->rx_queues[0]; > - mbp_priv = rte_mempool_get_priv(rxq->pool); > - buffsz = mbp_priv->mbuf_data_room_size - RTE_PKTMBUF_HEADROOM; > > /* Setup scatter mode if needed by jumbo */ > - if (data->dev_conf.rxmode.max_rx_pkt_len > buffsz) > - dev->rx_offloads |= DEV_RX_OFFLOAD_SCATTER; > + otx2_nix_enable_mseg_on_jumbo(rxq); > > /* Setup MTU based on max_rx_pkt_len */ > mtu = data->dev_conf.rxmode.max_rx_pkt_len - NIX_L2_OVERHEAD; > -- > 2.18.0 >