From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
To: Jiawen Wu <jiawenwu@trustnetic.com>, dev@dpdk.org
Cc: "david.marchand@redhat.com" <david.marchand@redhat.com>
Subject: Re: [dpdk-dev] [PATCH v6 03/19] net/ngbe: add log type and error type
Date: Fri, 2 Jul 2021 16:22:17 +0300 [thread overview]
Message-ID: <ba52b76d-8d4f-4aaa-a104-3e480ac73cf0@oktetlabs.ru> (raw)
In-Reply-To: <20210617110005.4132926-4-jiawenwu@trustnetic.com>
On 6/17/21 1:59 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 | 21 +++++++++
> drivers/net/ngbe/base/ngbe_status.h | 73 +++++++++++++++++++++++++++++
> drivers/net/ngbe/ngbe_ethdev.c | 14 ++++++
> drivers/net/ngbe/ngbe_logs.h | 46 ++++++++++++++++++
> 4 files changed, 154 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 37502627a3..54d0665db9 100644
> --- a/doc/guides/nics/ngbe.rst
> +++ b/doc/guides/nics/ngbe.rst
> @@ -17,6 +17,27 @@ Prerequisites
> - Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment.
>
>
> +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.
> +
> +
> 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..917b7da8aa
> --- /dev/null
> +++ b/drivers/net/ngbe/base/ngbe_status.h
> @@ -0,0 +1,73 @@
> +/* SPDX-License-Identifier: BSD-3-Clause
> + * Copyright(c) 2018-2020 Beijing WangXun Technology Co., Ltd.
2021?
> + * 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)
> +
> +/* 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)
> +
> +#endif /* _NGBE_STATUS_H_ */
> diff --git a/drivers/net/ngbe/ngbe_ethdev.c b/drivers/net/ngbe/ngbe_ethdev.c
> index d8df7ef896..e05766752a 100644
> --- a/drivers/net/ngbe/ngbe_ethdev.c
> +++ b/drivers/net/ngbe/ngbe_ethdev.c
> @@ -7,6 +7,7 @@
> #include <rte_common.h>
> #include <ethdev_pci.h>
>
> +#include "ngbe_logs.h"
> #include <base/ngbe_devids.h>
> #include "ngbe_ethdev.h"
>
> @@ -34,6 +35,8 @@ eth_ngbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
> {
> struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(eth_dev);
>
> + PMD_INIT_FUNC_TRACE();
> +
> if (rte_eal_process_type() != RTE_PROC_PRIMARY)
> return 0;
>
> @@ -45,6 +48,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;
>
> @@ -85,3 +90,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
Sorry for misguiding you. Please, follow David's
review notes to use RTE_LOG_REGISTER_SUFFIX.
> 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.
2021?
> + * 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_ */
>
next prev parent reply other threads:[~2021-07-02 13:22 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-17 10:59 [dpdk-dev] [PATCH v6 00/19] net: ngbe PMD Jiawen Wu
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 01/19] net/ngbe: add build and doc infrastructure Jiawen Wu
2021-07-02 13:07 ` Andrew Rybchenko
2021-07-05 2:52 ` Jiawen Wu
2021-07-05 8:54 ` Andrew Rybchenko
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 02/19] net/ngbe: support probe and remove Jiawen Wu
2021-07-02 13:22 ` Andrew Rybchenko
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 03/19] net/ngbe: add log type and error type Jiawen Wu
2021-07-02 13:22 ` Andrew Rybchenko [this message]
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 04/19] net/ngbe: define registers Jiawen Wu
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 05/19] net/ngbe: set MAC type and LAN ID with device initialization Jiawen Wu
2021-07-02 16:05 ` Andrew Rybchenko
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 06/19] net/ngbe: init and validate EEPROM Jiawen Wu
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 07/19] net/ngbe: add HW initialization Jiawen Wu
2021-07-02 16:08 ` Andrew Rybchenko
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 08/19] net/ngbe: identify PHY and reset PHY Jiawen Wu
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 09/19] net/ngbe: store MAC address Jiawen Wu
2021-07-02 16:12 ` Andrew Rybchenko
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 10/19] net/ngbe: support link update Jiawen Wu
2021-07-02 16:24 ` Andrew Rybchenko
2021-07-05 7:10 ` Jiawen Wu
2021-07-05 8:58 ` Andrew Rybchenko
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 11/19] net/ngbe: setup the check PHY link Jiawen Wu
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 12/19] net/ngbe: add Rx queue setup and release Jiawen Wu
2021-07-02 16:35 ` Andrew Rybchenko
2021-07-05 8:36 ` Jiawen Wu
2021-07-05 9:08 ` Andrew Rybchenko
2021-07-06 7:53 ` Jiawen Wu
2021-07-06 8:06 ` Andrew Rybchenko
2021-07-06 8:33 ` Jiawen Wu
2021-06-17 10:59 ` [dpdk-dev] [PATCH v6 13/19] net/ngbe: add Tx " Jiawen Wu
2021-07-02 16:39 ` Andrew Rybchenko
2021-06-17 11:00 ` [dpdk-dev] [PATCH v6 14/19] net/ngbe: add simple Rx flow Jiawen Wu
2021-07-02 16:42 ` Andrew Rybchenko
2021-06-17 11:00 ` [dpdk-dev] [PATCH v6 15/19] net/ngbe: add simple Tx flow Jiawen Wu
2021-07-02 16:45 ` Andrew Rybchenko
2021-06-17 11:00 ` [dpdk-dev] [PATCH v6 16/19] net/ngbe: add device start and stop operations Jiawen Wu
2021-07-02 16:52 ` Andrew Rybchenko
2021-06-17 11:00 ` [dpdk-dev] [PATCH v6 17/19] net/ngbe: add Tx queue start and stop Jiawen Wu
2021-07-02 16:55 ` Andrew Rybchenko
2021-06-17 11:00 ` [dpdk-dev] [PATCH v6 18/19] net/ngbe: add Rx " Jiawen Wu
2021-06-17 11:00 ` [dpdk-dev] [PATCH v6 19/19] net/ngbe: support to close and reset device Jiawen Wu
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=ba52b76d-8d4f-4aaa-a104-3e480ac73cf0@oktetlabs.ru \
--to=andrew.rybchenko@oktetlabs.ru \
--cc=david.marchand@redhat.com \
--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).