Message ID | 1285946861.21547.24.camel@edumazet-laptop |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Fri, Oct 1, 2010 at 08:27, Eric Dumazet <eric.dumazet@gmail.com> wrote: > Le vendredi 01 octobre 2010 à 18:18 +0400, Alexey Vlasov a écrit : > >> NIC statistics: >> rx_packets: 2973717440 >> tx_packets: 3032670910 >> rx_bytes: 1892633650741 >> tx_bytes: 2536130682695 >> rx_broadcast: 118773199 >> tx_broadcast: 68013 >> rx_multicast: 95257 >> tx_multicast: 0 >> rx_errors: 0 >> tx_errors: 0 >> tx_dropped: 0 >> multicast: 95257 >> collisions: 0 >> rx_length_errors: 0 >> rx_over_errors: 0 >> rx_crc_errors: 0 >> rx_frame_errors: 0 >> rx_no_buffer_count: 7939 >> rx_queue_drop_packet_count: 1324025520 >> rx_missed_errors: 146631 >> tx_aborted_errors: 0 >> tx_carrier_errors: 0 >> tx_fifo_errors: 0 >> tx_heartbeat_errors: 0 >> tx_window_errors: 0 >> tx_abort_late_coll: 0 >> tx_deferred_ok: 0 >> tx_single_coll_ok: 0 >> tx_multi_coll_ok: 0 >> tx_timeout_count: 0 >> tx_restart_queue: 50715 >> rx_long_length_errors: 0 >> rx_short_length_errors: 0 >> rx_align_errors: 0 >> tx_tcp_seg_good: 344724062 >> tx_tcp_seg_failed: 0 >> rx_flow_control_xon: 0 >> rx_flow_control_xoff: 0 >> tx_flow_control_xon: 0 >> tx_flow_control_xoff: 0 >> rx_long_byte_count: 1892633650741 >> rx_csum_offload_good: 2973697420 >> rx_csum_offload_errors: 6235 >> tx_dma_out_of_sync: 0 >> alloc_rx_buff_failed: 0 >> tx_smbus: 9327 >> rx_smbus: 118531661 >> dropped_smbus: 0 >> tx_queue_0_packets: 797617475 >> tx_queue_0_bytes: 630191908685 >> tx_queue_1_packets: 719681297 >> tx_queue_1_bytes: 625907304846 >> tx_queue_2_packets: 718841556 >> tx_queue_2_bytes: 620522418855 >> tx_queue_3_packets: 796521255 >> tx_queue_3_bytes: 646196024585 >> rx_queue_0_packets: 788885797 >> rx_queue_0_bytes: 458936338699 >> rx_queue_0_drops: 0 >> rx_queue_1_packets: 701354604 >> rx_queue_1_bytes: 457490536453 >> rx_queue_1_drops: 0 >> rx_queue_2_packets: 791887663 >> rx_queue_2_bytes: 534425333616 >> rx_queue_2_drops: 0 >> rx_queue_3_packets: 691579028 >> rx_queue_3_bytes: 429887244557 >> rx_queue_3_drops: 0 >> 11.111.80: R 1983626201:1983626201(0) win 0 >> > > > > OK > > IGB stats are wrong... for rx_queue_drop_packet_count field at least > > Here is a patch against 2.6.32.23, to get the idea... > > Dont trust it unless you patch your kernel ;) > > Thanks > > Note: current linux-2.6 tree doesnt have this bug. > > [PATCH] igb: rx_fifo_errors counter fix > > Alexey Vlasov reported insane rx_queue_drop_packet_count > (rx_fifo_errors) values. > > IGB drivers is doing an accumulation for 82575, instead using a zero > value for rqdpc_total. > > Reported-by: Alexey Vlasov <renton@renton.name> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> > --- > linux-2.6.32.23/net/igb/igb_main.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > Thanks Eric! I have added the patch to my queue.
--- linux-2.6.32.23/drivers/net/igb/igb_main.c.orig +++ linux-2.6.32.23/drivers/net/igb/igb_main.c @@ -3552,6 +3552,7 @@ struct e1000_hw *hw = &adapter->hw; struct pci_dev *pdev = adapter->pdev; u16 phy_tmp; + unsigned long rqdpc_total = 0; #define PHY_IDLE_ERROR_COUNT_MASK 0x00FF @@ -3645,7 +3646,6 @@ if (hw->mac.type != e1000_82575) { u32 rqdpc_tmp; - u64 rqdpc_total = 0; int i; /* Read out drops stats per RX queue. Notice RQDPC (Receive * Queue Drop Packet Count) stats only gets incremented, if @@ -3660,7 +3660,6 @@ adapter->rx_ring[i].rx_stats.drops += rqdpc_tmp; rqdpc_total += adapter->rx_ring[i].rx_stats.drops; } - adapter->net_stats.rx_fifo_errors = rqdpc_total; } /* Note RNBC (Receive No Buffers Count) is an not an exact @@ -3668,7 +3667,7 @@ * one of the reason for saving it in rx_fifo_errors, as its * potentially not a true drop. */ - adapter->net_stats.rx_fifo_errors += adapter->stats.rnbc; + adapter->net_stats.rx_fifo_errors = rqdpc_total + adapter->stats.rnbc; /* RLEC on some newer hardware can be incorrect so build * our own version based on RUC and ROC */