1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright(c) 2019 Marvell International Ltd. 3 4OCTEON TX2 NPA Mempool Driver 5============================= 6 7The OCTEON TX2 NPA PMD (**librte_mempool_octeontx2**) provides mempool 8driver support for the integrated mempool device found in **Marvell OCTEON TX2** SoC family. 9 10More information about OCTEON TX2 SoC can be found at `Marvell Official Website 11<https://www.marvell.com/embedded-processors/infrastructure-processors/>`_. 12 13Features 14-------- 15 16OCTEON TX2 NPA PMD supports: 17 18- Up to 128 NPA LFs 19- 1M Pools per LF 20- HW mempool manager 21- Ethdev Rx buffer allocation in HW to save CPU cycles in the Rx path. 22- Ethdev Tx buffer recycling in HW to save CPU cycles in the Tx path. 23 24Prerequisites and Compilation procedure 25--------------------------------------- 26 27 See :doc:`../platform/octeontx2` for setup information. 28 29Pre-Installation Configuration 30------------------------------ 31 32 33Runtime Config Options 34~~~~~~~~~~~~~~~~~~~~~~ 35 36- ``Maximum number of mempools per application`` (default ``128``) 37 38 The maximum number of mempools per application needs to be configured on 39 HW during mempool driver initialization. HW can support up to 1M mempools, 40 Since each mempool costs set of HW resources, the ``max_pools`` ``devargs`` 41 parameter is being introduced to configure the number of mempools required 42 for the application. 43 For example:: 44 45 -a 0002:02:00.0,max_pools=512 46 47 With the above configuration, the driver will set up only 512 mempools for 48 the given application to save HW resources. 49 50.. note:: 51 52 Since this configuration is per application, the end user needs to 53 provide ``max_pools`` parameter to the first PCIe device probed by the given 54 application. 55 56- ``Lock NPA contexts in NDC`` 57 58 Lock NPA aura and pool contexts in NDC cache. 59 The device args take hexadecimal bitmask where each bit represent the 60 corresponding aura/pool id. 61 62 For example:: 63 64 -a 0002:02:00.0,npa_lock_mask=0xf 65 66Debugging Options 67~~~~~~~~~~~~~~~~~ 68 69.. _table_octeontx2_mempool_debug_options: 70 71.. table:: OCTEON TX2 mempool debug options 72 73 +---+------------+-------------------------------------------------------+ 74 | # | Component | EAL log command | 75 +===+============+=======================================================+ 76 | 1 | NPA | --log-level='pmd\.mempool.octeontx2,8' | 77 +---+------------+-------------------------------------------------------+ 78 79Standalone mempool device 80~~~~~~~~~~~~~~~~~~~~~~~~~ 81 82 The ``usertools/dpdk-devbind.py`` script shall enumerate all the mempool devices 83 available in the system. In order to avoid, the end user to bind the mempool 84 device prior to use ethdev and/or eventdev device, the respective driver 85 configures an NPA LF and attach to the first probed ethdev or eventdev device. 86 In case, if end user need to run mempool as a standalone device 87 (without ethdev or eventdev), end user needs to bind a mempool device using 88 ``usertools/dpdk-devbind.py`` 89 90 Example command to run ``mempool_autotest`` test with standalone OCTEONTX2 NPA device:: 91 92 echo "mempool_autotest" | <build_dir>/app/test/dpdk-test -c 0xf0 --mbuf-pool-ops-name="octeontx2_npa" 93