G
Guest
Guest
Archived from groups: comp.os.linux.networking,comp.dcom.lans.ethernet (More info?)
Hello,
I'm running a system based on Linux 2.4.31 with three Intel 82450EM
gigabit Ethernet ports. In trying to diagnose a througput problem, I'm
using ethtool to look at the controller registers, but I'm not sure how
to interpret the values of RDH and RDT (receive descriptor head/tail).
Given output like:
[TEST] root # ethtool -d eth2
MAC Registers
-------------
0x00000: CTRL (Device control register) 0x083C0249
Duplex: full
Endian mode (buffers): little
Link reset: reset
Set link up: 1
Invert Loss-Of-Signal: no
Receive flow control: enabled
Transmit flow control: disabled
VLAN mode: disabled
Auto speed detect: disabled
Speed select: 1000Mb/s
Force speed: no
Force duplex: no
0x00008: STATUS (Device status register) 0x0000C383
Duplex: full
Link up: link config
TBI mode: disabled
Link speed: 1000Mb/s
Bus type: PCI
Bus speed: 33MHz
Bus width: 32-bit
0x00100: RCTL (Receive control register) 0x0000801A
Receiver: enabled
Store bad packets: disabled
Unicast promiscuous: enabled
Multicast promiscuous: enabled
Long packet: disabled
Descriptor minimum threshold size: 1/2
Broadcast accept mode: accept
VLAN filter: disabled
Cononical form indicator: disabled
Discard pause frames: filtered
Pass MAC control frames: don't pass
Receive buffer size: 2048
0x02808: RDLEN (Receive desc length) 0x00010000
0x02810: RDH (Receive desc head) 0x000008D8
0x02818: RDT (Receive desc tail) 0x000008D0
0x02820: RDTR (Receive delay timer) 0x00000000
0x00400: TCTL (Transmit ctrl register) 0x000400FA
Transmitter: enabled
Pad short packets: enabled
Software XOFF Transmission: disabled
Re-transmit on late collision: disabled
0x03808: TDLEN (Transmit desc length) 0x00001000
0x03810: TDH (Transmit desc head) 0x00000036
0x03818: TDT (Transmit desc tail) 0x00000036
0x03820: TIDV (Transmit delay timer) 0x00000040
PHY type: M88
where RDH is 000008D8 and RDT is 000008D0, does this mean that the
descriptor ring buffer has 8 free descriptors, or 8 used descriptors?
It's curious that RDH always seems to be numerically higher than RDT.
In practice, I've never seen the situation reversed.
Oh, and a second question. As you can see, the "ethtool -d" output
doesn't show anywhere close to the full register dump. Is there a tool
I can use to access registers not shown here, or do I need to start
hacking ethtool?
Thanks!
G
Hello,
I'm running a system based on Linux 2.4.31 with three Intel 82450EM
gigabit Ethernet ports. In trying to diagnose a througput problem, I'm
using ethtool to look at the controller registers, but I'm not sure how
to interpret the values of RDH and RDT (receive descriptor head/tail).
Given output like:
[TEST] root # ethtool -d eth2
MAC Registers
-------------
0x00000: CTRL (Device control register) 0x083C0249
Duplex: full
Endian mode (buffers): little
Link reset: reset
Set link up: 1
Invert Loss-Of-Signal: no
Receive flow control: enabled
Transmit flow control: disabled
VLAN mode: disabled
Auto speed detect: disabled
Speed select: 1000Mb/s
Force speed: no
Force duplex: no
0x00008: STATUS (Device status register) 0x0000C383
Duplex: full
Link up: link config
TBI mode: disabled
Link speed: 1000Mb/s
Bus type: PCI
Bus speed: 33MHz
Bus width: 32-bit
0x00100: RCTL (Receive control register) 0x0000801A
Receiver: enabled
Store bad packets: disabled
Unicast promiscuous: enabled
Multicast promiscuous: enabled
Long packet: disabled
Descriptor minimum threshold size: 1/2
Broadcast accept mode: accept
VLAN filter: disabled
Cononical form indicator: disabled
Discard pause frames: filtered
Pass MAC control frames: don't pass
Receive buffer size: 2048
0x02808: RDLEN (Receive desc length) 0x00010000
0x02810: RDH (Receive desc head) 0x000008D8
0x02818: RDT (Receive desc tail) 0x000008D0
0x02820: RDTR (Receive delay timer) 0x00000000
0x00400: TCTL (Transmit ctrl register) 0x000400FA
Transmitter: enabled
Pad short packets: enabled
Software XOFF Transmission: disabled
Re-transmit on late collision: disabled
0x03808: TDLEN (Transmit desc length) 0x00001000
0x03810: TDH (Transmit desc head) 0x00000036
0x03818: TDT (Transmit desc tail) 0x00000036
0x03820: TIDV (Transmit delay timer) 0x00000040
PHY type: M88
where RDH is 000008D8 and RDT is 000008D0, does this mean that the
descriptor ring buffer has 8 free descriptors, or 8 used descriptors?
It's curious that RDH always seems to be numerically higher than RDT.
In practice, I've never seen the situation reversed.
Oh, and a second question. As you can see, the "ethtool -d" output
doesn't show anywhere close to the full register dump. Is there a tool
I can use to access registers not shown here, or do I need to start
hacking ethtool?
Thanks!
G