Thread (5 messages) 5 messages, 2 authors, 2018-11-02

Re: bnx2: rx_fw_discards: BCM5716 sporadically drops packets when update to driver version 2.2.6

From: maowenan <hidden>
Date: 2018-10-30 09:03:45
Also in: lkml


On 2018/10/30 14:47, Mody, Rasesh wrote:
quoted
From: maowenan <redacted>
Sent: Thursday, October 25, 2018 8:16 PM

Hi,

After I update version of bnx2 driver from 2.2.1 to 2.2.6, I find BCM5716
sporadically drops packets, which shows in rx_fw_discards.
C36-141-5:~ #  ethtool -S NIC0

NIC statistics:
    rx_ucast_packets: 11902

    rx_mcast_packets: 217

    rx_bcast_packets: 4954320

    rx_filtered_packets: 328793

    rx_fw_discards: 2742

C36-141-5:~ #

5s later:

C36-141-5:~ #  ethtool -S NIC0

NIC statistics:
    rx_ucast_packets: 11910

    rx_mcast_packets: 217

    rx_bcast_packets: 4958117

    rx_filtered_packets: 328897

    rx_fw_discards: 2750

C36-141-5:~ #

so rx_fw_discards: 2742-----> rx_fw_discards: 2750, lost 8 packets.

the information of bnx2
C36-141-5:~ # modinfo bnx2
kernel/drivers/net/ethernet/broadcom/bnx2.ko

firmware:       bnx2/bnx2-rv2p-09ax-6.0.17.fw

firmware:       bnx2/bnx2-rv2p-09-6.0.17.fw

firmware:       bnx2/bnx2-mips-09-6.2.1b.fw

firmware:       bnx2/bnx2-rv2p-06-6.0.15.fw

firmware:       bnx2/bnx2-mips-06-6.2.3.fw
version:        2.2.6


1) Firstly, I check the patches from 2.2.1 to 2.2.6, below patch is interesting.
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id
=0021850d0417a4dc38ed871d929b651b87e2ead9
Do not enable filter SORT MODE in chip init routine. This patch addresses an
issue where BCM5716 sporadically drops packets when changing multicast list.
diff --git a/drivers/net/ethernet/broadcom/bnx2.c
b/drivers/net/ethernet/broadcom/bnx2.c
index 8957eb5f4478..8c9a8b7787d2 100644
--- a/drivers/net/ethernet/broadcom/bnx2.c
+++ b/drivers/net/ethernet/broadcom/bnx2.c
@@ -4984,8 +4984,6 @@ bnx2_init_chip(struct bnx2 *bp)

       bp->idle_chk_status_idx = 0xffff;

-       bp->rx_mode = BNX2_EMAC_RX_MODE_SORT_MODE;
-
       /* Set up how to generate a link change interrupt. */
       BNX2_WR(bp, BNX2_EMAC_ATTENTION_ENA,
BNX2_EMAC_ATTENTION_ENA_LINK);


2) Secondly, I revert this patch, after verify it, I find rx_fw_discards does not
increasing.
so I think this patch can fix current issue. But I'm not sure the issue of this
patch to fix will be reproduced?
I'm not convinced that what factor will trigger rx_fw_discards increasing?
And how to fix this?
Can you please reword your point above? i.e. what is working and what is not. I am not sure if I understand it completely.

Is the rx_fw_disacard count incrementing with 2.2.6 upstream driver on BCM5716? What is the kernel version?
Which test is being run?

The case is based on BCM5716's driver version of 2.2.6, and both 3.10 and mainline kernel version exist this issue .
The testing seems like using one port of BCM5716 to receive packets, it can be found rx_fw_disacard increasing occasionally.
There is one patch in 2.2.6, 0021850d0417a4dc38ed871d929b651b87e2ead9, if I remove this patch, I can't reproduce this issue,
rx_fw_disacard doesn't increase.
So I don't know why this patch(0021850d0417a4dc38ed871d929b651b87e2ead9) can fix my problem(rx_fw_disacard increasing)?
If I remove this patch, how to fix the issue that the patch had resolved?
quoted
Thanks a lot.









Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help