Re: [TG3]: About hw coalescing infrastructure.
From: Eric Dumazet <hidden>
Date: 2005-07-04 21:22:12
Michael Chan a écrit :
On Wed, 2005-06-22 at 17:25 +0200, Eric Dumazet wrote:quoted
Is there anything I can try to tune the coalescing ? Being able to handle 100 packets each interrupt instead of one or two would certainly help. I dont mind about latency. But of course I would like not to drop packets :) But maybe the BCM5702 is not able to delay an interrupt ?On the 5702 that supports CLRTCKS mode, you need to play around with the following parameters in tg3.h. To reduce interrupts, you generally have to increase the values. #define LOW_RXCOL_TICKS_CLRTCKS 0x00000014 #define LOW_TXCOL_TICKS_CLRTCKS 0x00000048 #define LOW_RXMAX_FRAMES 0x00000005 #define LOW_TXMAX_FRAMES 0x00000035 #define DEFAULT_RXCOAL_TICK_INT_CLRTCKS 0x00000014 #define DEFAULT_TXCOAL_TICK_INT_CLRTCKS 0x00000014 #define DEFAULT_RXCOAL_MAXF_INT 0x00000005 #define DEFAULT_TXCOAL_MAXF_INT 0x00000005
Thanks Michael I tried various settings. # ethtool -c eth0 Coalesce parameters for eth0: Adaptive RX: off TX: off stats-block-usecs: 1000000 sample-interval: 0 pkt-rate-low: 0 pkt-rate-high: 0 rx-usecs: 500 rx-frames: 20 rx-usecs-irq: 500 rx-frames-irq: 20 tx-usecs: 600 tx-frames: 53 tx-usecs-irq: 600 tx-frames-irq: 20 rx-usecs-low: 0 rx-frame-low: 0 tx-usecs-low: 0 tx-frame-low: 0 rx-usecs-high: 0 rx-frame-high: 0 tx-usecs-high: 0 tx-frame-high: 0 But it seems something is wrong because when network load becomes high I get : Jul 4 23:01:19 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:19 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:01:24 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:24 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:01:29 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:29 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:01:34 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:34 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:01:39 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:39 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:01:44 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:44 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:01:49 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:49 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:01:54 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:54 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:01:59 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:01:59 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:02:04 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:02:04 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:02:09 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:02:09 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:02:14 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:02:14 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:02:19 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:02:19 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:02:24 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:02:24 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:02:29 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:02:29 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:02:34 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:02:34 dada1 kernel: tg3: eth0: transmit timed out, resetting Jul 4 23:02:39 dada1 kernel: NETDEV WATCHDOG: eth0: transmit timed out Jul 4 23:02:39 dada1 kernel: tg3: eth0: transmit timed out, resetting Then the machine crashes at this point. tg3.c : #define DRV_MODULE_VERSION "3.31" #define DRV_MODULE_RELDATE "June 8, 2005" # ethtool -g eth0 Ring parameters for eth0: Pre-set maximums: RX: 511 RX Mini: 0 RX Jumbo: 255 TX: 0 Current hardware settings: RX: 400 RX Mini: 0 RX Jumbo: 40 TX: 511 Thank you Eric Dumazet