From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-0016ce01.pphosted.com (mx0a-0016ce01.pphosted.com [67.231.148.157]) by dpdk.org (Postfix) with ESMTP id 42AE48E8A for ; Fri, 11 Dec 2015 07:37:13 +0100 (CET) Received: from pps.filterd (m0045602.ppops.net [127.0.0.1]) by mx0a-0016ce01.pphosted.com (8.15.0.59/8.15.0.59) with SMTP id tBB6Wm6Y010600; Thu, 10 Dec 2015 22:37:11 -0800 Received: from avcashub1.qlogic.com (avcashub2.qlogic.com [198.70.193.116]) by mx0a-0016ce01.pphosted.com with ESMTP id 1yqfyxruqh-1 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NOT); Thu, 10 Dec 2015 22:37:11 -0800 Received: from avluser05.qlc.com (10.1.113.115) by qlc.com (10.1.4.191) with Microsoft SMTP Server id 14.3.235.1; Thu, 10 Dec 2015 22:37:10 -0800 Received: (from rmody@localhost) by avluser05.qlc.com (8.14.4/8.14.4/Submit) id tBB6bALA001371; Thu, 10 Dec 2015 22:37:10 -0800 X-Authentication-Warning: avluser05.qlc.com: rmody set sender to rasesh.mody@qlogic.com using -f From: Rasesh Mody To: , Date: Thu, 10 Dec 2015 22:36:36 -0800 Message-ID: <1449815802-1131-4-git-send-email-rasesh.mody@qlogic.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1449815802-1131-1-git-send-email-rasesh.mody@qlogic.com> References: <1449815802-1131-1-git-send-email-rasesh.mody@qlogic.com> MIME-Version: 1.0 Content-Type: text/plain X-Proofpoint-Virus-Version: vendor=nai engine=5700 definitions=8011 signatures=670668 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 clxscore=1015 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1507310007 definitions=main-1512110118 Cc: sony.chacko@qlogic.com Subject: [dpdk-dev] [PATCH v4 3/9] bnx2x: Add periodic debug option X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Dec 2015 06:37:13 -0000 From: Harish Patil The periodic debug option is used to collect periodic events like statistics, register access etc and won't interfere with user-level messages. Signed-off-by: Harish Patil Signed-off-by: Rasesh Mody --- config/common_bsdapp | 1 + config/common_linuxapp | 1 + drivers/net/bnx2x/Makefile | 4 ++-- drivers/net/bnx2x/bnx2x.c | 6 +++--- drivers/net/bnx2x/bnx2x.h | 2 +- drivers/net/bnx2x/bnx2x_ethdev.c | 2 +- drivers/net/bnx2x/bnx2x_logs.h | 8 ++++++++ drivers/net/bnx2x/bnx2x_stats.c | 2 +- drivers/net/bnx2x/debug.c | 36 ++++++++++++++++++++---------------- 9 files changed, 38 insertions(+), 24 deletions(-) diff --git a/config/common_bsdapp b/config/common_bsdapp index 07328d9..46952e2 100644 --- a/config/common_bsdapp +++ b/config/common_bsdapp @@ -237,6 +237,7 @@ CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT=n CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n +CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=n # # Compile burst-oriented Chelsio Terminator 10GbE/40GbE (CXGBE) PMD diff --git a/config/common_linuxapp b/config/common_linuxapp index ba9e55d..68ccf86 100644 --- a/config/common_linuxapp +++ b/config/common_linuxapp @@ -236,6 +236,7 @@ CONFIG_RTE_LIBRTE_BNX2X_DEBUG_INIT=n CONFIG_RTE_LIBRTE_BNX2X_DEBUG_RX=n CONFIG_RTE_LIBRTE_BNX2X_DEBUG_TX=n CONFIG_RTE_LIBRTE_BNX2X_MF_SUPPORT=n +CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC=n # # Compile burst-oriented Chelsio Terminator 10GbE/40GbE (CXGBE) PMD diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile index d895d8c..6f1f385 100644 --- a/drivers/net/bnx2x/Makefile +++ b/drivers/net/bnx2x/Makefile @@ -5,7 +5,7 @@ include $(RTE_SDK)/mk/rte.vars.mk # LIB = librte_pmd_bnx2x.a -CFLAGS += -O3 -g +CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) CFLAGS += -DZLIB_CONST LDLIBS += -lz @@ -24,7 +24,7 @@ SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_ethdev.c SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += ecore_sp.c SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += elink.c SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x_vfpf.c -SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_DEBUG) += debug.c +SRCS-$(CONFIG_RTE_LIBRTE_BNX2X_DEBUG_PERIODIC) += debug.c # this lib depends upon: DEPDIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += lib/librte_eal lib/librte_ether lib/librte_hash diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c index 2dc2a47..228ae6f 100644 --- a/drivers/net/bnx2x/bnx2x.c +++ b/drivers/net/bnx2x/bnx2x.c @@ -4343,7 +4343,7 @@ static void bnx2x_eq_int(struct bnx2x_softc *sc) /* handle eq element */ switch (opcode) { case EVENT_RING_OPCODE_STAT_QUERY: - PMD_DRV_LOG(DEBUG, "got statistics completion event %d", + PMD_DEBUG_PERIODIC_LOG(DEBUG, "got statistics completion event %d", sc->stats_comp++); /* nothing to do with stats comp */ goto next_spqe; @@ -4494,7 +4494,7 @@ static int bnx2x_handle_sp_tq(struct bnx2x_softc *sc) /* SP events: STAT_QUERY and others */ if (status & BNX2X_DEF_SB_IDX) { /* handle EQ completions */ - PMD_DRV_LOG(DEBUG, "---> EQ INTR <---"); + PMD_DEBUG_PERIODIC_LOG(DEBUG, "---> EQ INTR <---"); bnx2x_eq_int(sc); bnx2x_ack_sb(sc, sc->igu_dsb_id, USTORM_ID, le16toh(sc->def_idx), IGU_INT_NOP, 1); @@ -4567,7 +4567,7 @@ int bnx2x_intr_legacy(struct bnx2x_softc *sc, int scan_fp) return 0; } - PMD_DRV_LOG(DEBUG, "Interrupt status 0x%04x", status); + PMD_DEBUG_PERIODIC_LOG(DEBUG, "Interrupt status 0x%04x", status); //bnx2x_dump_status_block(sc); FOR_EACH_ETH_QUEUE(sc, i) { diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h index 867b92a..a5f9f1d 100644 --- a/drivers/net/bnx2x/bnx2x.h +++ b/drivers/net/bnx2x/bnx2x.h @@ -1445,7 +1445,7 @@ struct bnx2x_func_init_params { #define BAR1 2 #define BAR2 4 -#ifdef RTE_LIBRTE_BNX2X_DEBUG +#ifdef RTE_LIBRTE_BNX2X_DEBUG_PERIODIC uint8_t bnx2x_reg_read8(struct bnx2x_softc *sc, size_t offset); uint16_t bnx2x_reg_read16(struct bnx2x_softc *sc, size_t offset); uint32_t bnx2x_reg_read32(struct bnx2x_softc *sc, size_t offset); diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c index 36779ea..d09c72f 100644 --- a/drivers/net/bnx2x/bnx2x_ethdev.c +++ b/drivers/net/bnx2x/bnx2x_ethdev.c @@ -52,7 +52,7 @@ bnx2x_interrupt_action(struct rte_eth_dev *dev) struct bnx2x_softc *sc = dev->data->dev_private; uint32_t link_status; - PMD_DRV_LOG(INFO, "Interrupt handled"); + PMD_DEBUG_PERIODIC_LOG(INFO, "Interrupt handled"); if (bnx2x_intr_legacy(sc, 0)) DELAY_MS(250); diff --git a/drivers/net/bnx2x/bnx2x_logs.h b/drivers/net/bnx2x/bnx2x_logs.h index d31c253..32f8c62 100644 --- a/drivers/net/bnx2x/bnx2x_logs.h +++ b/drivers/net/bnx2x/bnx2x_logs.h @@ -47,4 +47,12 @@ #define PMD_DRV_LOG(level, fmt, args...) \ PMD_DRV_LOG_RAW(level, fmt "\n", ## args) +#ifdef RTE_LIBRTE_BNX2X_DEBUG_PERIODIC +#define PMD_DEBUG_PERIODIC_LOG(level, fmt, args...) \ + RTE_LOG(level, PMD, "%s(): " fmt "\n", __func__, ## args) +#else +#define PMD_DEBUG_PERIODIC_LOG(level, fmt, args...) do { } while(0) +#endif + + #endif /* _PMD_LOGS_H_ */ diff --git a/drivers/net/bnx2x/bnx2x_stats.c b/drivers/net/bnx2x/bnx2x_stats.c index 80260f0..e161f4f 100644 --- a/drivers/net/bnx2x/bnx2x_stats.c +++ b/drivers/net/bnx2x/bnx2x_stats.c @@ -105,7 +105,7 @@ bnx2x_storm_stats_post(struct bnx2x_softc *sc) sc->fw_stats_req->hdr.drv_stats_counter = htole16(sc->stats_counter++); - PMD_DRV_LOG(DEBUG, + PMD_DEBUG_PERIODIC_LOG(DEBUG, "sending statistics ramrod %d", le16toh(sc->fw_stats_req->hdr.drv_stats_counter)); diff --git a/drivers/net/bnx2x/debug.c b/drivers/net/bnx2x/debug.c index 9ab4f1d..d8d0c13 100644 --- a/drivers/net/bnx2x/debug.c +++ b/drivers/net/bnx2x/debug.c @@ -44,30 +44,32 @@ void bnx2x_reg_write8(struct bnx2x_softc *sc, size_t offset, uint8_t val) { - PMD_DRV_LOG(DEBUG, "offset=0x%08lx val=0x%02x", offset, val); - *((volatile uint8_t*)((uint64_t)sc->bar[BAR0].base_addr + offset)) = val; + PMD_DEBUG_PERIODIC_LOG(DEBUG, "offset=0x%08lx val=0x%02x", (unsigned long)offset, val); + *((volatile uint8_t*)((uintptr_t)sc->bar[BAR0].base_addr + offset)) = val; } void bnx2x_reg_write16(struct bnx2x_softc *sc, size_t offset, uint16_t val) { if ((offset % 2) != 0) { - PMD_DRV_LOG(DEBUG, "Unaligned 16-bit write to 0x%08lx", offset); + PMD_DRV_LOG(NOTICE, "Unaligned 16-bit write to 0x%08lx", + (unsigned long)offset); } - PMD_DRV_LOG(DEBUG, "offset=0x%08lx val=0x%04x", offset, val); - *((volatile uint16_t*)((uint64_t)sc->bar[BAR0].base_addr + offset)) = val; + PMD_DEBUG_PERIODIC_LOG(DEBUG, "offset=0x%08lx val=0x%04x", (unsigned long)offset, val); + *((volatile uint16_t*)((uintptr_t)sc->bar[BAR0].base_addr + offset)) = val; } void bnx2x_reg_write32(struct bnx2x_softc *sc, size_t offset, uint32_t val) { if ((offset % 4) != 0) { - PMD_DRV_LOG(DEBUG, "Unaligned 32-bit write to 0x%08lx", offset); + PMD_DRV_LOG(NOTICE, "Unaligned 32-bit write to 0x%08lx", + (unsigned long)offset); } - PMD_DRV_LOG(DEBUG, "offset=0x%08lx val=0x%08x", offset, val); - *((volatile uint32_t*)((uint64_t)sc->bar[BAR0].base_addr + offset)) = val; + PMD_DEBUG_PERIODIC_LOG(DEBUG, "offset=0x%08lx val=0x%08x", (unsigned long)offset, val); + *((volatile uint32_t*)((uintptr_t)sc->bar[BAR0].base_addr + offset)) = val; } uint8_t @@ -75,8 +77,8 @@ bnx2x_reg_read8(struct bnx2x_softc *sc, size_t offset) { uint8_t val; - val = (uint8_t)(*((volatile uint8_t*)((uint64_t)sc->bar[BAR0].base_addr + offset))); - PMD_DRV_LOG(DEBUG, "offset=0x%08lx val=0x%02x", offset, val); + val = (uint8_t)(*((volatile uint8_t*)((uintptr_t)sc->bar[BAR0].base_addr + offset))); + PMD_DEBUG_PERIODIC_LOG(DEBUG, "offset=0x%08lx val=0x%02x", (unsigned long)offset, val); return (val); } @@ -87,11 +89,12 @@ bnx2x_reg_read16(struct bnx2x_softc *sc, size_t offset) uint16_t val; if ((offset % 2) != 0) { - PMD_DRV_LOG(DEBUG, "Unaligned 16-bit read from 0x%08lx", offset); + PMD_DRV_LOG(NOTICE, "Unaligned 16-bit read from 0x%08lx", + (unsigned long)offset); } - val = (uint16_t)(*((volatile uint16_t*)((uint64_t)sc->bar[BAR0].base_addr + offset))); - PMD_DRV_LOG(DEBUG, "offset=0x%08lx val=0x%08x", offset, val); + val = (uint16_t)(*((volatile uint16_t*)((uintptr_t)sc->bar[BAR0].base_addr + offset))); + PMD_DEBUG_PERIODIC_LOG(DEBUG, "offset=0x%08lx val=0x%08x", (unsigned long)offset, val); return (val); } @@ -102,12 +105,13 @@ bnx2x_reg_read32(struct bnx2x_softc *sc, size_t offset) uint32_t val; if ((offset % 4) != 0) { - PMD_DRV_LOG(DEBUG, "Unaligned 32-bit read from 0x%08lx", offset); + PMD_DRV_LOG(NOTICE, "Unaligned 32-bit read from 0x%08lx", + (unsigned long)offset); return 0; } - val = (uint32_t)(*((volatile uint32_t*)((uint64_t)sc->bar[BAR0].base_addr + offset))); - PMD_DRV_LOG(DEBUG, "offset=0x%08lx val=0x%08x", offset, val); + val = (uint32_t)(*((volatile uint32_t*)((uintptr_t)sc->bar[BAR0].base_addr + offset))); + PMD_DEBUG_PERIODIC_LOG(DEBUG, "offset=0x%08lx val=0x%08x", (unsigned long)offset, val); return (val); } -- 1.7.10.3