net/octeontx2: fix optimal default SQE buffer count
authorVamsi Attunuru <vattunuru@marvell.com>
Mon, 5 Aug 2019 15:37:39 +0000 (21:07 +0530)
committerJerin Jacob <jerinj@marvell.com>
Mon, 5 Aug 2019 16:22:34 +0000 (18:22 +0200)
Patch extends minimum supported max_sqb_count devarg value
such that it can limit the max sqb count to 8 buffers and
also defines NIX_DEF_SQB and uses it to compute the number
of sqe buffers required for the egress traffic.

NIX_DEF_SQB is defined as 16 which is optimal across multiple
octeontx2 platforms to scale up the performance proportional
to the corresponding port/queue to lcore mappings.

Fixes: fb0198b7dc07 ("net/octeontx2: add devargs parsing functions")

Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
drivers/net/octeontx2/otx2_ethdev.c
drivers/net/octeontx2/otx2_ethdev.h
drivers/net/octeontx2/otx2_ethdev_devargs.c

index 4bd9452..2a7bd23 100644 (file)
@@ -811,7 +811,7 @@ nix_alloc_sqb_pool(int port, struct otx2_eth_txq *txq, uint16_t nb_desc)
 
        nb_sqb_bufs = nb_desc / sqes_per_sqb;
        /* Clamp up to devarg passed SQB count */
-       nb_sqb_bufs =  RTE_MIN(dev->max_sqb_count, RTE_MAX(NIX_MIN_SQB,
+       nb_sqb_bufs =  RTE_MIN(dev->max_sqb_count, RTE_MAX(NIX_DEF_SQB,
                              nb_sqb_bufs + NIX_SQB_LIST_SPACE));
 
        txq->sqb_pool = rte_mempool_create_empty(name, NIX_MAX_SQB, blk_sz,
index 720386f..027b909 100644 (file)
@@ -66,7 +66,8 @@
        (NIX_MAX_FRS - NIX_L2_OVERHEAD)
 
 #define NIX_MAX_SQB                    512
-#define NIX_MIN_SQB                    32
+#define NIX_DEF_SQB                    16
+#define NIX_MIN_SQB                    8
 #define NIX_SQB_LIST_SPACE             2
 #define NIX_RSS_RETA_SIZE_MAX          256
 /* Group 0 will be used for RSS, 1 -7 will be used for rte_flow RSS action*/
index 85e7e31..7dc6e92 100644 (file)
@@ -160,6 +160,6 @@ RTE_PMD_REGISTER_PARAM_STRING(net_octeontx2,
                              OTX2_RSS_RETA_SIZE "=<64|128|256>"
                              OTX2_PTYPE_DISABLE "=1"
                              OTX2_SCL_ENABLE "=1"
-                             OTX2_MAX_SQB_COUNT "=<32-512>"
+                             OTX2_MAX_SQB_COUNT "=<8-512>"
                              OTX2_FLOW_PREALLOC_SIZE "=<1-32>"
                              OTX2_FLOW_MAX_PRIORITY "=<1-32>");