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