From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id DC738A0A0C; Fri, 2 Jul 2021 15:22:19 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C4596413D4; Fri, 2 Jul 2021 15:22:19 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 26BB8413D0 for ; Fri, 2 Jul 2021 15:22:18 +0200 (CEST) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id BCED87F52A; Fri, 2 Jul 2021 16:22:17 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru BCED87F52A DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1625232137; bh=SQwofeduWL2/YxiWH5Y3dUHNraAhYkhHGmIFsi2Pb4U=; h=Subject:To:References:From:Cc:Date:In-Reply-To; b=Qfvbn6WJtzFk0wbd+Gfhce/+xD1gqLwkRv6XfVrh9+TBMQhs0CuRUZM9mFTdTJyr7 CnGzTA1v+DhpxsQFt/45Q/QHRnl6NBtpgo/bzhi1982EnXw7yI97aeywx5ZXLboRTQ ZuzgKvfneNv50tWDUbUvHmsIw9KuRLx5addgJfsk= To: Jiawen Wu , dev@dpdk.org References: <20210617110005.4132926-1-jiawenwu@trustnetic.com> <20210617110005.4132926-4-jiawenwu@trustnetic.com> From: Andrew Rybchenko Organization: OKTET Labs Cc: "david.marchand@redhat.com" Message-ID: Date: Fri, 2 Jul 2021 16:22:17 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 MIME-Version: 1.0 In-Reply-To: <20210617110005.4132926-4-jiawenwu@trustnetic.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v6 03/19] net/ngbe: add log type and error type X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 6/17/21 1:59 PM, Jiawen Wu wrote: > Add log type and error type to trace functions. > > Signed-off-by: Jiawen Wu > --- > 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 ` 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 > #include > > +#include "ngbe_logs.h" > #include > #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_ */ >