netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Help interpreting ethtool -S for tg3 (rx_discards and such)
@ 2004-09-09 16:09 François Baligant
  2004-09-09 16:47 ` akepner
  0 siblings, 1 reply; 2+ messages in thread
From: François Baligant @ 2004-09-09 16:09 UTC (permalink / raw)
  To: netdev

Hi,

We have a tg3 NIC under heavy load (30megabit/s, around 15k to 20k 
packet/sec)

Under 2.6.7, the NIC behaves quite correctly (except errors see below)
Under 2.6.8, the NIC's link will go down after some time and not come up 
again (rx_discards grow more quickly than in 2.6.7)
Under 2.6.9-rc1, the NIC will go down from time to time also but recover 
after 5 seconds and link goes up again (dito)

Should I worry about the errors in ethtool, like rx_discards ? What does 
it mean ? Can i tune something to avoid them ? (netdev backlog?)

Is there any way to lower the amount of interrupt needed to handle this 
load? (it's eating quite a lot of CPU)

Here is ethtool -S under 2.6.7

root# ethtool -S eth1
NIC statistics:
     rx_octets: 965700844
     rx_fragments: 0
     rx_ucast_packets: 828761367
     rx_mcast_packets: 80
     rx_bcast_packets: 4768
     rx_fcs_errors: 0
     rx_align_errors: 0
     rx_xon_pause_rcvd: 0
     rx_xoff_pause_rcvd: 0
     rx_mac_ctrl_rcvd: 0
     rx_xoff_entered: 0
     rx_frame_too_long_errors: 0
     rx_jabbers: 0
     rx_undersize_packets: 0
     rx_in_length_errors: 0
     rx_out_length_errors: 0
     rx_64_or_less_octet_packets: 366875287
     rx_65_to_127_octet_packets: 438933359
     rx_128_to_255_octet_packets: 18104208
     rx_256_to_511_octet_packets: 2937651
     rx_512_to_1023_octet_packets: 956801
     rx_1024_to_1522_octet_packets: 958902
     rx_1523_to_2047_octet_packets: 0
     rx_2048_to_4095_octet_packets: 0
     rx_4096_to_8191_octet_packets: 0
     rx_8192_to_9022_octet_packets: 0
     tx_octets: 3659297
     tx_collisions: 0
     tx_xon_sent: 0
     tx_xoff_sent: 0
     tx_flow_control: 0
     tx_mac_errors: 0
     tx_single_collisions: 0
     tx_mult_collisions: 0
     tx_deferred: 0
     tx_excessive_collisions: 0
     tx_late_collisions: 0
     tx_collide_2times: 0
     tx_collide_3times: 0
     tx_collide_4times: 0
     tx_collide_5times: 0
     tx_collide_6times: 0
     tx_collide_7times: 0
     tx_collide_8times: 0
     tx_collide_9times: 0
     tx_collide_10times: 0
     tx_collide_11times: 0
     tx_collide_12times: 0
     tx_collide_13times: 0
     tx_collide_14times: 0
     tx_collide_15times: 0
     tx_ucast_packets: 832632783
     tx_mcast_packets: 5
     tx_bcast_packets: 65
     tx_carrier_sense_errors: 0
     tx_discards: 0
     tx_errors: 0
     dma_writeq_full: 496271
     dma_write_prioq_full: 0
     rxbds_empty: 0
     rx_discards: 157542
     rx_errors: 0
     rx_threshold_hit: 828579298
     dma_readq_full: 71729839
     dma_read_prioq_full: 87219
     tx_comp_queue_full: 53098049
     ring_set_send_prod_index: 763849878
     ring_status_update: 906065223
     nic_irqs: 647367776
     nic_avoided_irqs: 258697447
     nic_tx_threshold_hit: 24570520

root# mpstat 1
Linux 2.6.7-mjb1 (localhost)      09/09/2004

10:58:02 AM  CPU   %user   %nice %system %iowait   %idle    intr/s
10:58:03 AM  all   21.66    0.00   14.65    0.00   63.69  29276.92
10:58:04 AM  all   21.25    0.00   15.00    0.00   63.75  28553.75
10:58:05 AM  all   14.81    0.00   10.49    0.00   74.69  26353.09
10:58:06 AM  all   13.94    0.00   10.91    0.00   75.15  24815.85
10:58:07 AM  all   12.50    0.00   10.12    0.00   77.38  23850.00
10:58:08 AM  all   16.77    0.00    9.58    0.00   73.65  23755.42
10:58:09 AM  all   14.12    0.00    9.41    0.00   76.47  22460.00

root# ethtool -a eth1
Pause parameters for eth1:
Autonegotiate:  off
RX:             off
TX:             off

root# ethtool -k eth1
Offload parameters for eth1:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp segmentation offload: off

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Help interpreting ethtool -S for tg3 (rx_discards and such)
  2004-09-09 16:09 Help interpreting ethtool -S for tg3 (rx_discards and such) François Baligant
@ 2004-09-09 16:47 ` akepner
  0 siblings, 0 replies; 2+ messages in thread
From: akepner @ 2004-09-09 16:47 UTC (permalink / raw)
  To: François Baligant; +Cc: netdev

On Thu, 9 Sep 2004, François Baligant wrote:

> Hi,
> 
> We have a tg3 NIC under heavy load (30megabit/s, around 15k to 20k 
> packet/sec)
> 
> Under 2.6.7, the NIC behaves quite correctly (except errors see below)
> Under 2.6.8, the NIC's link will go down after some time and not come up 
> again (rx_discards grow more quickly than in 2.6.7)
> Under 2.6.9-rc1, the NIC will go down from time to time also but recover 
> after 5 seconds and link goes up again (dito)
> 
> Should I worry about the errors in ethtool, like rx_discards ? What does 
> it mean ? Can i tune something to avoid them ? (netdev backlog?)

I believe that when rx_discards increments, it means that the card 
dropped the packet due to a resource constraint. 

I've seen similar behavior (but at much higher data rates.) In my 
case, enabling h/w flow control fixed things. If it's possible to use 
h/w flow control in your configuration, then you might give that a try.

> 
> Is there any way to lower the amount of interrupt needed to handle this 
> load? (it's eating quite a lot of CPU)
> ....

That is a _feature_ of NAPI ;-)

-- 
Arthur

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2004-09-09 16:47 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-09 16:09 Help interpreting ethtool -S for tg3 (rx_discards and such) François Baligant
2004-09-09 16:47 ` akepner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).