DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
To: Jiawen Wu <jiawenwu@trustnetic.com>, dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v5 05/24] net/ngbe: add log type and error type
Date: Mon, 14 Jun 2021 20:54:51 +0300	[thread overview]
Message-ID: <3fb089b1-47c0-0be3-d941-31131b27e597@oktetlabs.ru> (raw)
In-Reply-To: <20210602094108.1575640-6-jiawenwu@trustnetic.com>

On 6/2/21 12:40 PM, Jiawen Wu wrote:
> Add log type and error type to trace functions.
> 
> Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com>
> ---
>   doc/guides/nics/ngbe.rst            |  20 +++++
>   drivers/net/ngbe/base/ngbe_status.h | 125 ++++++++++++++++++++++++++++
>   drivers/net/ngbe/base/ngbe_type.h   |   1 +
>   drivers/net/ngbe/ngbe_ethdev.c      |  16 ++++
>   drivers/net/ngbe/ngbe_logs.h        |  46 ++++++++++
>   5 files changed, 208 insertions(+)
>   create mode 100644 drivers/net/ngbe/base/ngbe_status.h
>   create mode 100644 drivers/net/ngbe/ngbe_logs.h
> 
> diff --git a/doc/guides/nics/ngbe.rst b/doc/guides/nics/ngbe.rst
> index 4ec2623a05..c274a15aab 100644
> --- a/doc/guides/nics/ngbe.rst
> +++ b/doc/guides/nics/ngbe.rst
> @@ -15,6 +15,26 @@ Prerequisites
>   
>   - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
>   

It should be two empty lines before section start.

> +Pre-Installation Configuration
> +------------------------------
> +
> +Dynamic Logging Parameters
> +~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> +One may leverage EAL option "--log-level" to change default levels
> +for the log types supported by the driver. The option is used with
> +an argument typically consisting of two parts separated by a colon.
> +
> +NGBE PMD provides the following log types available for control:
> +
> +- ``pmd.net.ngbe.driver`` (default level is **notice**)
> +
> +  Affects driver-wide messages unrelated to any particular devices.
> +
> +- ``pmd.net.ngbe.init`` (default level is **notice**)
> +
> +  Extra logging of the messages during PMD initialization.
> +

Same here.

>   Driver compilation and testing
>   ------------------------------
>   
> diff --git a/drivers/net/ngbe/base/ngbe_status.h b/drivers/net/ngbe/base/ngbe_status.h
> new file mode 100644
> index 0000000000..b1836c6479
> --- /dev/null
> +++ b/drivers/net/ngbe/base/ngbe_status.h
> @@ -0,0 +1,125 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2018-2020 Beijing WangXun Technology Co., Ltd.
> + * Copyright(c) 2010-2017 Intel Corporation
> + */
> +
> +#ifndef _NGBE_STATUS_H_
> +#define _NGBE_STATUS_H_
> +
> +/* Error Codes:
> + * common error
> + * module error(simple)
> + * module error(detailed)
> + *
> + * (-256, 256): reserved for non-ngbe defined error code
> + */
> +#define TERR_BASE (0x100)
> +enum ngbe_error {
> +	TERR_NULL = TERR_BASE,
> +	TERR_ANY,
> +	TERR_NOSUPP,
> +	TERR_NOIMPL,
> +	TERR_NOMEM,
> +	TERR_NOSPACE,
> +	TERR_NOENTRY,
> +	TERR_CONFIG,
> +	TERR_ARGS,
> +	TERR_PARAM,
> +	TERR_INVALID,
> +	TERR_TIMEOUT,
> +	TERR_VERSION,
> +	TERR_REGISTER,
> +	TERR_FEATURE,
> +	TERR_RESET,
> +	TERR_AUTONEG,
> +	TERR_MBX,
> +	TERR_I2C,
> +	TERR_FC,
> +	TERR_FLASH,
> +	TERR_DEVICE,
> +	TERR_HOSTIF,
> +	TERR_SRAM,
> +	TERR_EEPROM,
> +	TERR_EEPROM_CHECKSUM,
> +	TERR_EEPROM_PROTECT,
> +	TERR_EEPROM_VERSION,
> +	TERR_MAC,
> +	TERR_MAC_ADDR,
> +	TERR_SFP,
> +	TERR_SFP_INITSEQ,
> +	TERR_SFP_PRESENT,
> +	TERR_SFP_SUPPORT,
> +	TERR_SFP_SETUP,
> +	TERR_PHY,
> +	TERR_PHY_ADDR,
> +	TERR_PHY_INIT,
> +	TERR_FDIR_CMD,
> +	TERR_FDIR_REINIT,
> +	TERR_SWFW_SYNC,
> +	TERR_SWFW_COMMAND,
> +	TERR_FC_CFG,
> +	TERR_FC_NEGO,
> +	TERR_LINK_SETUP,
> +	TERR_PCIE_PENDING,
> +	TERR_PBA_SECTION,
> +	TERR_OVERTEMP,
> +	TERR_UNDERTEMP,
> +	TERR_XPCS_POWERUP,
> +};
> +
> +/* WARNING: just for legacy compatibility */
> +#define NGBE_NOT_IMPLEMENTED 0x7FFFFFFF
> +#define NGBE_ERR_OPS_DUMMY   0x3FFFFFFF
> +
> +/* Error Codes */
> +#define NGBE_ERR_EEPROM				-(TERR_BASE + 1)
> +#define NGBE_ERR_EEPROM_CHECKSUM		-(TERR_BASE + 2)
> +#define NGBE_ERR_PHY				-(TERR_BASE + 3)
> +#define NGBE_ERR_CONFIG				-(TERR_BASE + 4)
> +#define NGBE_ERR_PARAM				-(TERR_BASE + 5)
> +#define NGBE_ERR_MAC_TYPE			-(TERR_BASE + 6)
> +#define NGBE_ERR_UNKNOWN_PHY			-(TERR_BASE + 7)
> +#define NGBE_ERR_LINK_SETUP			-(TERR_BASE + 8)
> +#define NGBE_ERR_ADAPTER_STOPPED		-(TERR_BASE + 9)
> +#define NGBE_ERR_INVALID_MAC_ADDR		-(TERR_BASE + 10)
> +#define NGBE_ERR_DEVICE_NOT_SUPPORTED		-(TERR_BASE + 11)
> +#define NGBE_ERR_MASTER_REQUESTS_PENDING	-(TERR_BASE + 12)
> +#define NGBE_ERR_INVALID_LINK_SETTINGS		-(TERR_BASE + 13)
> +#define NGBE_ERR_AUTONEG_NOT_COMPLETE		-(TERR_BASE + 14)
> +#define NGBE_ERR_RESET_FAILED			-(TERR_BASE + 15)
> +#define NGBE_ERR_SWFW_SYNC			-(TERR_BASE + 16)
> +#define NGBE_ERR_PHY_ADDR_INVALID		-(TERR_BASE + 17)
> +#define NGBE_ERR_I2C				-(TERR_BASE + 18)
> +#define NGBE_ERR_SFP_NOT_SUPPORTED		-(TERR_BASE + 19)
> +#define NGBE_ERR_SFP_NOT_PRESENT		-(TERR_BASE + 20)
> +#define NGBE_ERR_SFP_NO_INIT_SEQ_PRESENT	-(TERR_BASE + 21)
> +#define NGBE_ERR_NO_SAN_ADDR_PTR		-(TERR_BASE + 22)
> +#define NGBE_ERR_FDIR_REINIT_FAILED		-(TERR_BASE + 23)
> +#define NGBE_ERR_EEPROM_VERSION			-(TERR_BASE + 24)
> +#define NGBE_ERR_NO_SPACE			-(TERR_BASE + 25)
> +#define NGBE_ERR_OVERTEMP			-(TERR_BASE + 26)
> +#define NGBE_ERR_FC_NOT_NEGOTIATED		-(TERR_BASE + 27)
> +#define NGBE_ERR_FC_NOT_SUPPORTED		-(TERR_BASE + 28)
> +#define NGBE_ERR_SFP_SETUP_NOT_COMPLETE		-(TERR_BASE + 30)
> +#define NGBE_ERR_PBA_SECTION			-(TERR_BASE + 31)
> +#define NGBE_ERR_INVALID_ARGUMENT		-(TERR_BASE + 32)
> +#define NGBE_ERR_HOST_INTERFACE_COMMAND		-(TERR_BASE + 33)
> +#define NGBE_ERR_OUT_OF_MEM			-(TERR_BASE + 34)
> +#define NGBE_ERR_FEATURE_NOT_SUPPORTED		-(TERR_BASE + 36)
> +#define NGBE_ERR_EEPROM_PROTECTED_REGION	-(TERR_BASE + 37)
> +#define NGBE_ERR_FDIR_CMD_INCOMPLETE		-(TERR_BASE + 38)
> +#define NGBE_ERR_FW_RESP_INVALID		-(TERR_BASE + 39)
> +#define NGBE_ERR_TOKEN_RETRY			-(TERR_BASE + 40)
> +#define NGBE_ERR_FLASH_LOADING_FAILED		-(TERR_BASE + 41)
> +
> +#define NGBE_ERR_NOSUPP                        -(TERR_BASE + 42)
> +#define NGBE_ERR_UNDERTEMP                     -(TERR_BASE + 43)
> +#define NGBE_ERR_XPCS_POWER_UP_FAILED          -(TERR_BASE + 44)
> +#define NGBE_ERR_PHY_INIT_NOT_DONE             -(TERR_BASE + 45)
> +#define NGBE_ERR_TIMEOUT                       -(TERR_BASE + 46)
> +#define NGBE_ERR_REGISTER                      -(TERR_BASE + 47)
> +#define NGBE_ERR_MNG_ACCESS_FAILED             -(TERR_BASE + 49)
> +#define NGBE_ERR_PHY_TYPE                      -(TERR_BASE + 50)
> +#define NGBE_ERR_PHY_TIMEOUT                   -(TERR_BASE + 51)

Not sure that I understand how above define are related to logging.

> +
> +#endif /* _NGBE_STATUS_H_ */
> diff --git a/drivers/net/ngbe/base/ngbe_type.h b/drivers/net/ngbe/base/ngbe_type.h
> index b6bde11dcd..bcc9f74216 100644
> --- a/drivers/net/ngbe/base/ngbe_type.h
> +++ b/drivers/net/ngbe/base/ngbe_type.h
> @@ -8,6 +8,7 @@
>   
>   #define NGBE_ALIGN		128 /* as intel did */
>   
> +#include "ngbe_status.h"
>   #include "ngbe_osdep.h"
>   #include "ngbe_devids.h"
>   
> diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c
> index 3431a9a9a7..f24c3e173e 100644
> --- a/drivers/net/ngbe/ngbe_ethdev.c
> +++ b/drivers/net/ngbe/ngbe_ethdev.c
> @@ -6,6 +6,7 @@
>   #include <rte_common.h>
>   #include <ethdev_pci.h>
>   
> +#include "ngbe_logs.h"
>   #include "base/ngbe.h"
>   #include "ngbe_ethdev.h"
>   
> @@ -37,6 +38,8 @@ eth_ngbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
>   	struct ngbe_hw *hw = NGBE_DEV_HW(eth_dev);
>   	const struct rte_memzone *mz;
>   
> +	PMD_INIT_FUNC_TRACE();
> +
>   	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
>   		return 0;
>   
> @@ -65,6 +68,8 @@ eth_ngbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
>   static int
>   eth_ngbe_dev_uninit(struct rte_eth_dev *eth_dev)
>   {
> +	PMD_INIT_FUNC_TRACE();
> +
>   	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
>   		return 0;
>   
> @@ -115,6 +120,8 @@ static struct rte_pci_driver rte_ngbe_pmd = {
>   static int
>   ngbe_dev_close(struct rte_eth_dev *dev)
>   {
> +	PMD_INIT_FUNC_TRACE();
> +
>   	RTE_SET_USED(dev);
>   
>   	return 0;
> @@ -124,3 +131,12 @@ RTE_PMD_REGISTER_PCI(net_ngbe, rte_ngbe_pmd);
>   RTE_PMD_REGISTER_PCI_TABLE(net_ngbe, pci_id_ngbe_map);
>   RTE_PMD_REGISTER_KMOD_DEP(net_ngbe, "* igb_uio | uio_pci_generic | vfio-pci");
>   
> +RTE_LOG_REGISTER(ngbe_logtype_init, pmd.net.ngbe.init, NOTICE);
> +RTE_LOG_REGISTER(ngbe_logtype_driver, pmd.net.ngbe.driver, NOTICE);
> +
> +#ifdef RTE_ETHDEV_DEBUG_RX
> +	RTE_LOG_REGISTER(ngbe_logtype_rx, pmd.net.ngbe.rx, DEBUG);
> +#endif
> +#ifdef RTE_ETHDEV_DEBUG_TX
> +	RTE_LOG_REGISTER(ngbe_logtype_tx, pmd.net.ngbe.tx, DEBUG);
> +#endif
> diff --git a/drivers/net/ngbe/ngbe_logs.h b/drivers/net/ngbe/ngbe_logs.h
> new file mode 100644
> index 0000000000..c5d1ab0930
> --- /dev/null
> +++ b/drivers/net/ngbe/ngbe_logs.h
> @@ -0,0 +1,46 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2018-2020 Beijing WangXun Technology Co., Ltd.
> + * Copyright(c) 2010-2017 Intel Corporation
> + */
> +
> +#ifndef _NGBE_LOGS_H_
> +#define _NGBE_LOGS_H_
> +
> +/*
> + * PMD_USER_LOG: for user
> + */
> +extern int ngbe_logtype_init;
> +#define PMD_INIT_LOG(level, fmt, args...) \
> +	rte_log(RTE_LOG_ ## level, ngbe_logtype_init, \
> +		"%s(): " fmt "\n", __func__, ##args)
> +
> +extern int ngbe_logtype_driver;
> +#define PMD_DRV_LOG(level, fmt, args...) \
> +	rte_log(RTE_LOG_ ## level, ngbe_logtype_driver, \
> +		"%s(): " fmt "\n", __func__, ##args)
> +
> +#ifdef RTE_ETHDEV_DEBUG_RX
> +extern int ngbe_logtype_rx;
> +#define PMD_RX_LOG(level, fmt, args...) \
> +	rte_log(RTE_LOG_ ## level, ngbe_logtype_rx,	\
> +		"%s(): " fmt "\n", __func__, ##args)
> +#else
> +#define PMD_RX_LOG(level, fmt, args...) do { } while (0)
> +#endif
> +
> +#ifdef RTE_ETHDEV_DEBUG_TX
> +extern int ngbe_logtype_tx;
> +#define PMD_TX_LOG(level, fmt, args...) \
> +	rte_log(RTE_LOG_ ## level, ngbe_logtype_tx,	\
> +		"%s(): " fmt "\n", __func__, ##args)
> +#else
> +#define PMD_TX_LOG(level, fmt, args...) do { } while (0)
> +#endif
> +
> +#define TLOG_DEBUG(fmt, args...)  PMD_DRV_LOG(DEBUG, fmt, ##args)
> +
> +#define DEBUGOUT(fmt, args...)    TLOG_DEBUG(fmt, ##args)
> +#define PMD_INIT_FUNC_TRACE()     TLOG_DEBUG(" >>")
> +#define DEBUGFUNC(fmt)            TLOG_DEBUG(fmt)
> +
> +#endif /* _NGBE_LOGS_H_ */
> 


  reply	other threads:[~2021-06-14 17:54 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-02  9:40 [dpdk-dev] [PATCH v5 00/24] net: ngbe PMD Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 01/24] net/ngbe: add build and doc infrastructure Jiawen Wu
2021-06-14 17:05   ` Andrew Rybchenko
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 02/24] net/ngbe: add device IDs Jiawen Wu
2021-06-14 17:08   ` Andrew Rybchenko
2021-06-15  2:52     ` Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 03/24] net/ngbe: support probe and remove Jiawen Wu
2021-06-14 17:27   ` Andrew Rybchenko
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 04/24] net/ngbe: add device init and uninit Jiawen Wu
2021-06-14 17:36   ` Andrew Rybchenko
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 05/24] net/ngbe: add log type and error type Jiawen Wu
2021-06-14 17:54   ` Andrew Rybchenko [this message]
2021-06-15  7:13     ` Jiawen Wu
2021-07-01 13:57   ` David Marchand
2021-07-02  2:08     ` Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 06/24] net/ngbe: define registers Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 07/24] net/ngbe: set MAC type and LAN id Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 08/24] net/ngbe: init and validate EEPROM Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 09/24] net/ngbe: add HW initialization Jiawen Wu
2021-06-14 18:01   ` Andrew Rybchenko
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 10/24] net/ngbe: identify PHY and reset PHY Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 11/24] net/ngbe: store MAC address Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 12/24] net/ngbe: add info get operation Jiawen Wu
2021-06-14 18:13   ` Andrew Rybchenko
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 13/24] net/ngbe: support link update Jiawen Wu
2021-06-14 18:45   ` Andrew Rybchenko
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 14/24] net/ngbe: setup the check PHY link Jiawen Wu
2021-06-02  9:40 ` [dpdk-dev] [PATCH v5 15/24] net/ngbe: add Rx queue setup and release Jiawen Wu
2021-06-14 18:53   ` Andrew Rybchenko
2021-06-15  7:50     ` Jiawen Wu
2021-06-15  8:06       ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 16/24] net/ngbe: add Tx " Jiawen Wu
2021-06-14 18:59   ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 17/24] net/ngbe: add Rx and Tx init Jiawen Wu
2021-06-14 19:01   ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 18/24] net/ngbe: add packet type Jiawen Wu
2021-06-14 19:06   ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 19/24] net/ngbe: add simple Rx and Tx flow Jiawen Wu
2021-06-14 19:10   ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 20/24] net/ngbe: support bulk and scatter Rx Jiawen Wu
2021-06-14 19:17   ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 21/24] net/ngbe: support full-featured Tx path Jiawen Wu
2021-06-14 19:22   ` Andrew Rybchenko
2021-06-14 19:23     ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 22/24] net/ngbe: add device start operation Jiawen Wu
2021-06-14 19:33   ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 23/24] net/ngbe: start and stop RxTx Jiawen Wu
2021-06-14 20:44   ` Andrew Rybchenko
2021-06-02  9:41 ` [dpdk-dev] [PATCH v5 24/24] net/ngbe: add device stop operation Jiawen Wu
2021-06-11  1:38 ` [dpdk-dev] [PATCH v5 00/24] net: ngbe PMD Jiawen Wu
2021-06-14 20:56 ` Andrew Rybchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3fb089b1-47c0-0be3-d941-31131b27e597@oktetlabs.ru \
    --to=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=jiawenwu@trustnetic.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).