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

From: maowenan
Date: Thu Oct 25 2018 - 23:15:47 EST


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

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.
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. */

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?

Thanks a lot.