Re: [PATCH net-next V2 13/16] net: fec: print more debug info in fec_timeout
On 3/4/2016 10:35 AM, Joe Perches wrote: > On Fri, 2016-03-04 at 09:05 -0700, Troy Kisky wrote: >> On 3/4/2016 3:06 AM, Fugang Duan wrote: >>> From: Troy KiskySent: Thursday, February >>> 25, 2016 8:37 AM > [] Print the current interrupt flags and mask and the interrupt state during the last interrupt in fec_timeout. > [] diff --git a/drivers/net/ethernet/freescale/fec_main.c > [] @@ -1107,6 +1107,9 @@ fec_timeout(struct net_device *ndev) int i; uint events = 0; + pr_err("%s: last=%x %x, mask %x\n", __func__, fep->last_ievents, + readl(fep->hwp + FEC_IEVENT), readl(fep->hwp + FEC_IMASK)); + >>> pr_err() -> netdev_err() >> Sounds good > > This seems like debugging information rather than > an error a user can do anything with and if there's > a timeout, how likely is it that the hardware is > hosed and this would repetitively and unnecessarily > fill up logs? > > So maybe netdev_dbg and net_ratelimit() too. > > if (net_ratelimit() > netdev_(etc...) > > This patch hasn't been helpful to me in quite a while. I'll just drop it. I know where to get it if I need it again. Thanks Troy
Re: [PATCH net-next V2 13/16] net: fec: print more debug info in fec_timeout
On Fri, 2016-03-04 at 09:05 -0700, Troy Kisky wrote: > On 3/4/2016 3:06 AM, Fugang Duan wrote: > > From: Troy KiskySent: Thursday, February > > 25, 2016 8:37 AM [] > > > Print the current interrupt flags and mask and the interrupt state during > > > the last > > > interrupt in fec_timeout. [] > > > diff --git a/drivers/net/ethernet/freescale/fec_main.c [] > > > @@ -1107,6 +1107,9 @@ fec_timeout(struct net_device *ndev) > > > int i; > > > uint events = 0; > > > > > > + pr_err("%s: last=%x %x, mask %x\n", __func__, fep->last_ievents, > > > + readl(fep->hwp + FEC_IEVENT), readl(fep->hwp + FEC_IMASK)); > > > + > > pr_err() -> netdev_err() > Sounds good This seems like debugging information rather than an error a user can do anything with and if there's a timeout, how likely is it that the hardware is hosed and this would repetitively and unnecessarily fill up logs? So maybe netdev_dbg and net_ratelimit() too. if (net_ratelimit() netdev_(etc...)
Re: [PATCH net-next V2 13/16] net: fec: print more debug info in fec_timeout
On 3/4/2016 3:06 AM, Fugang Duan wrote: > From: Troy KiskySent: Thursday, February > 25, 2016 8:37 AM >> To: netdev@vger.kernel.org; da...@davemloft.net; b38...@freescale.com >> Cc: fabio.este...@freescale.com; l.st...@pengutronix.de; and...@lunn.ch; >> trem...@gmail.com; li...@arm.linux.org.uk; linux-arm- >> ker...@lists.infradead.org; l...@boundarydevices.com; shawn...@kernel.org; >> johan...@sipsolutions.net; stillcompil...@gmail.com; >> sergei.shtyl...@cogentembedded.com; a...@arndb.de; Troy Kisky >> >> Subject: [PATCH net-next V2 13/16] net: fec: print more debug info in >> fec_timeout >> >> Print the current interrupt flags and mask and the interrupt state during >> the last >> interrupt in fec_timeout. >> >> Signed-off-by: Troy Kisky >> --- >> drivers/net/ethernet/freescale/fec.h | 1 + >> drivers/net/ethernet/freescale/fec_main.c | 4 >> 2 files changed, 5 insertions(+) >> >> diff --git a/drivers/net/ethernet/freescale/fec.h >> b/drivers/net/ethernet/freescale/fec.h >> index 001200b..615cca1 100644 >> --- a/drivers/net/ethernet/freescale/fec.h >> +++ b/drivers/net/ethernet/freescale/fec.h >> @@ -506,6 +506,7 @@ struct fec_enet_private { >> unsigned int total_tx_ring_size; >> unsigned int total_rx_ring_size; >> uintevents; >> +uintlast_ievents; >> >> struct platform_device *pdev; >> >> diff --git a/drivers/net/ethernet/freescale/fec_main.c >> b/drivers/net/ethernet/freescale/fec_main.c >> index afd4060..9a3136b 100644 >> --- a/drivers/net/ethernet/freescale/fec_main.c >> +++ b/drivers/net/ethernet/freescale/fec_main.c >> @@ -1107,6 +1107,9 @@ fec_timeout(struct net_device *ndev) >> int i; >> uint events = 0; >> >> +pr_err("%s: last=%x %x, mask %x\n", __func__, fep->last_ievents, >> + readl(fep->hwp + FEC_IEVENT), readl(fep->hwp + FEC_IMASK)); >> + > pr_err() -> netdev_err() > Sounds good
RE: [PATCH net-next V2 13/16] net: fec: print more debug info in fec_timeout
From: Troy KiskySent: Thursday, February 25, 2016 8:37 AM > To: netdev@vger.kernel.org; da...@davemloft.net; b38...@freescale.com > Cc: fabio.este...@freescale.com; l.st...@pengutronix.de; and...@lunn.ch; > trem...@gmail.com; li...@arm.linux.org.uk; linux-arm- > ker...@lists.infradead.org; l...@boundarydevices.com; shawn...@kernel.org; > johan...@sipsolutions.net; stillcompil...@gmail.com; > sergei.shtyl...@cogentembedded.com; a...@arndb.de; Troy Kisky > > Subject: [PATCH net-next V2 13/16] net: fec: print more debug info in > fec_timeout > > Print the current interrupt flags and mask and the interrupt state during the > last > interrupt in fec_timeout. > > Signed-off-by: Troy Kisky > --- > drivers/net/ethernet/freescale/fec.h | 1 + > drivers/net/ethernet/freescale/fec_main.c | 4 > 2 files changed, 5 insertions(+) > > diff --git a/drivers/net/ethernet/freescale/fec.h > b/drivers/net/ethernet/freescale/fec.h > index 001200b..615cca1 100644 > --- a/drivers/net/ethernet/freescale/fec.h > +++ b/drivers/net/ethernet/freescale/fec.h > @@ -506,6 +506,7 @@ struct fec_enet_private { > unsigned int total_tx_ring_size; > unsigned int total_rx_ring_size; > uintevents; > + uintlast_ievents; > > struct platform_device *pdev; > > diff --git a/drivers/net/ethernet/freescale/fec_main.c > b/drivers/net/ethernet/freescale/fec_main.c > index afd4060..9a3136b 100644 > --- a/drivers/net/ethernet/freescale/fec_main.c > +++ b/drivers/net/ethernet/freescale/fec_main.c > @@ -1107,6 +1107,9 @@ fec_timeout(struct net_device *ndev) > int i; > uint events = 0; > > + pr_err("%s: last=%x %x, mask %x\n", __func__, fep->last_ievents, > +readl(fep->hwp + FEC_IEVENT), readl(fep->hwp + FEC_IMASK)); > + pr_err() -> netdev_err() I don't want the debug patch enter to the driver. > for (i = 0; i < fep->num_tx_queues; i++) { > struct fec_enet_priv_tx_q *txq = fep->tx_queue[i]; > int index; > @@ -1514,6 +1517,7 @@ fec_enet_interrupt(int irq, void *dev_id) > > if (!int_events) > return IRQ_NONE; > + fep->last_ievents = int_events; > > if (int_events & (FEC_ENET_RXF | FEC_ENET_TXF)) { > if (napi_schedule_prep(>napi)) { > -- > 2.5.0