[dpdk-dev] [PATCH v6 1/8] ether: refine debug build option
Ferruh Yigit
ferruh.yigit at intel.com
Thu Apr 1 16:30:52 CEST 2021
On 3/31/2021 10:52 AM, Qi Zhang wrote:
> PMDs use RTE_LIBRTE_<PMD_NAME>_DEBUG_RX|TX as build option to wrap
> data path debug code. As .config has been removed since the meson build,
> It is not friendly for new DPDK users to notice those debug options.
>
> The patch introduces below build options for data path debug, so PMD
> can choose to reuse them to avoid maintain their own.
>
> - RTE_ETHDEV_DEBUG_RX
> - RTE_ETHDEV_DEBUG_TX
>
> All the build options are documented at programming guide
> "3.1 Driver Option", so users can easily find them.
>
> The original undocumented RTE_LIBRTE_ETHDEV_DEBUG will alias to
> both RTE_ETHDEV_DEBUG_RX and RTE_ETHDEV_DEBUG_TX for backward
> compatibility.
>
> Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> ---
> doc/guides/nics/build_and_test.rst | 16 ++++++++++++++++
> lib/librte_ethdev/rte_ethdev.h | 22 ++++++++++++++--------
> 2 files changed, 30 insertions(+), 8 deletions(-)
>
> diff --git a/doc/guides/nics/build_and_test.rst b/doc/guides/nics/build_and_test.rst
> index e83dd4628c..e8b29c2277 100644
> --- a/doc/guides/nics/build_and_test.rst
> +++ b/doc/guides/nics/build_and_test.rst
> @@ -26,6 +26,22 @@ This will also build testpmd.
> Detailed instructions are available
> in the :doc:`meson build guide <../prog_guide/build-sdk-meson>`.
>
> +The ethdev layer supports below build options for debug purpose:
> +
> +- ``RTE_ETHDEV_DEBUG_RX`` (default **disabled**)
> +
> + Build with debug code on Rx path.
> +
> +- ``RTE_ETHDEV_DEBUG_TX`` (default **disabled**)
> +
> + Build with debug code on Tx path.
> +
> +.. Note::
> +
> + The ethdev library use above options to wrap debug code to trace invalid parameters
> + on data path APIs, so performance downgrade is expected when enabling those options.
> + Each PMD can decide to reuse them to wrap their own debug code in the Rx/Tx path.
> +
Following drivers are other users of the PMD specific compile flag for the Rx/Tx
datapath debug logs [1], maintainers of those PMDs cc'ed, can you please plan
switching to the RTE_ETHDEV_DEBUG_RX / RTE_ETHDEV_DEBUG_TX macros?
[1]:
- bnx2x: RTE_LIBRTE_BNX2X_DEBUG_RX / RTE_LIBRTE_BNX2X_DEBUG_TX
- qede: RTE_LIBRTE_QEDE_DEBUG_RX / RTE_LIBRTE_QEDE_DEBUG_TX
- virtio: RTE_LIBRTE_VIRTIO_DEBUG_RX / RTE_LIBRTE_VIRTIO_DEBUG_TX
- netvsc: RTE_LIBRTE_NETVSC_DEBUG_RX / RTE_LIBRTE_NETVSC_DEBUG_TX
- avp: RTE_LIBRTE_AVP_DEBUG_RX / RTE_LIBRTE_AVP_DEBUG_TX
- thunderx: RTE_LIBRTE_THUNDERX_NICVF_DEBUG_RX /
RTE_LIBRTE_THUNDERX_NICVF_DEBUG_TX
- vmxnet3: RTE_LIBRTE_VMXNET3_DEBUG_RX / RTE_LIBRTE_VMXNET3_DEBUG_TX
- nfp: RTE_LIBRTE_NFP_NET_DEBUG_RX / RTE_LIBRTE_NFP_NET_DEBUG_TX
- liquidio: RTE_LIBRTE_LIO_DEBUG_RX / RTE_LIBRTE_LIO_DEBUG_TX
- txgbe: RTE_LIBRTE_TXGBE_DEBUG_RX / RTE_LIBRTE_TXGBE_DEBUG_TX
- ena: RTE_LIBRTE_ENA_DEBUG_RX / RTE_LIBRTE_ENA_DEBUG_TX
More information about the dev
mailing list