RE: How to troubleshoot slow network performance with Realtek 8169s?

2005-07-04 Thread Ted Mittelstaedt


-Original Message-
From: Juha Saarinen [mailto:[EMAIL PROTECTED]
Sent: Sunday, July 03, 2005 4:03 AM
To: Ted Mittelstaedt
Cc: FreeBSD questions
Subject: Re: How to troubleshoot slow network performance with Realtek
8169s?


On 7/3/05, Ted Mittelstaedt [EMAIL PROTECTED] wrote:
 
 The Realtek is a cheap adapter.  You can try hard-coding the
 media type to see what happens, but the fact remains this is
 nowhere near as good a card as the 82801B.  As a result of this
 there hasn't been that much attention to driver optimizations,
 you can review the work here:
 
 http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c
 
 If playing around with the media type doesen't fix it you can
 try a send-pr but your best off just pulling the card and
 replacing it with another Intel, then mailing the card to one
 of the driver developers.  Maybe in 6 months to a year you
 might see a faster driver in FreeBSD - or maybe not.

Yeah, I know the 8169s isn't the flashest card in the universe and I
don't mind donating a card or two to the developers, but with further
testing -- assuming iperf isn't lying -- it seems the driver is OK and
there's something happening further up the chain that I don't
understand yet.

What's weird is that with both 100 and 1000Mbit/s connections, the max
speed is a quarter of the link speed when using applications such as
ftp for transferring files. With iperf, I see 92Mbit/s on 100Mbit/s
and 400-640Mbit/s on 1000mbit/s connections depending on the
direction.



This isn't weird at all.  It is a driver issue.  Remember I said the
driver hasn't been optimized.  The driver could be letting the card
seize the PCI bus for an inordinate amount of time or some such.  This
could also be an interaction with the card, the driver, and some bios
setting of your motherboard.  This could be, for example, not allowing
enough cpu time for a higher-overhead program like FTP to run at full
speed, while allowing a lower overhead program like iperf, enough time
to run at full blast.  I have seen issues like this before and they
have almost always been solved by swapping hardware.

I have in fact swapped hardware that acted up in one machine to
a different machine that had a different motherboard, same FreeBSD
versions on both systems, and that hardware became rock-solid in
the new motherboard.

Frankly it all depends on what you want to do.  If this is a production
system you are going to need it online and you can't waste the time
to screw around with it - in that case you know the Intel chipset works
well in that motherboard, so replace the Realtek.  If however this is
a fun-n-games system then keep the Realtek in there and file a send-pr
and work it that way.

Ted

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: How to troubleshoot slow network performance with Realtek 8169s?

2005-07-04 Thread Juha Saarinen
On 7/4/05, Ted Mittelstaedt [EMAIL PROTECTED] wrote:
 This isn't weird at all.  It is a driver issue.  Remember I said the
 driver hasn't been optimized.  The driver could be letting the card
 seize the PCI bus for an inordinate amount of time or some such.  This
 could also be an interaction with the card, the driver, and some bios
 setting of your motherboard.  This could be, for example, not allowing
 enough cpu time for a higher-overhead program like FTP to run at full
 speed, while allowing a lower overhead program like iperf, enough time
 to run at full blast.  I have seen issues like this before and they
 have almost always been solved by swapping hardware.
 
 I have in fact swapped hardware that acted up in one machine to
 a different machine that had a different motherboard, same FreeBSD
 versions on both systems, and that hardware became rock-solid in
 the new motherboard.
 
 Frankly it all depends on what you want to do.  If this is a production
 system you are going to need it online and you can't waste the time
 to screw around with it - in that case you know the Intel chipset works
 well in that motherboard, so replace the Realtek.  If however this is
 a fun-n-games system then keep the Realtek in there and file a send-pr
 and work it that way.

Righto, that, too, makes sense.

Will engage in some further investigation (read: hardware swapping and
head scratching) to narrow things down.




-- 

Juha
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


How to troubleshoot slow network performance with Realtek 8169s?

2005-07-03 Thread Juha Saarinen
I have a 3.06GHz Intel P4 server running 5.4-RELEASE-p3, with the
following two NICs:

fxp0: Intel 82801BA/CAM (ICH2/3) Pro/100 Ethernet port 0xdf00-0xdf3f mem 0xfea
fc000-0xfeafcfff irq 20 at device 8.0 on pci2
miibus0: MII bus on fxp0
inphy0: i82562ET 10/100 media interface on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:d0:b7:c3:0f:20
re0: RealTek 8169S Single-chip Gigabit Ethernet port 0xd800-0xd8ff mem 0xfeaff
800-0xfeaff8ff irq 22 at device 10.0 on pci2
miibus1: MII bus on re0
rgephy0: RTL8169S/8110S media interface on miibus1
rgephy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseTX, 1000baseTX
-FDX, auto
re0: Ethernet address: 00:08:a1:3c:72:bb

The Intel NIC is built into the motherboard, and the Realtek 8169s
sits in a 32-bit PCI slot.

Performance for the Realtek adapter is slow though: around 25Mbit/s
when serving clients with Fast Ethernet NICs, and around 250Mbit/s for
Gigabit Ethernet ones.

Having tried out the card in Windows boxes and seen the expected
600Mbit/s, I expected something similar with FreeBSD 5.4. The odd
thing is that you get approx. a quarter of the link speed with both
100TX and 1000TX but not more under FreeBSD 5.4.

The environment a switched network with known good cabling, standard
size Ethernet frames, media autoselect and a kernel with
DEVICE_POLLING and HZ=2000 which re(4) supports according to the
polling(4) man page.

#ifconfig re0
re0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
options=58VLAN_MTU,VLAN_HWTAGGING,POLLING
snip
media: Ethernet autoselect (1000baseTX full-duplex)
status: active

Enabling/disabling polling makes no real difference, apart from taking
the edge of performance somewhat.

#sysctl -a | grep polling
kern.polling.idlepoll_sleeping: 1
kern.polling.stalled: 0
kern.polling.suspect: 367
kern.polling.phase: 0
kern.polling.enable: 1
kern.polling.handlers: 1
kern.polling.residual_burst: 0
kern.polling.pending_polls: 0
kern.polling.lost_polls: 782
kern.polling.short_ticks: 731
kern.polling.reg_frac: 20
kern.polling.user_frac: 50
kern.polling.poll_in_trap: 0
kern.polling.idle_poll: 0
kern.polling.burst_max: 150
kern.polling.each_burst: 5
kern.polling.burst: 110

The re(4) man page doesn't have any troubleshooting hints and Googling
didn't turn up anything useful.

What else could I look for?

-- 

Juha
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


RE: How to troubleshoot slow network performance with Realtek 8169s?

2005-07-03 Thread Ted Mittelstaedt

The Realtek is a cheap adapter.  You can try hard-coding the
media type to see what happens, but the fact remains this is
nowhere near as good a card as the 82801B.  As a result of this
there hasn't been that much attention to driver optimizations,
you can review the work here:

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c

If playing around with the media type doesen't fix it you can
try a send-pr but your best off just pulling the card and
replacing it with another Intel, then mailing the card to one
of the driver developers.  Maybe in 6 months to a year you
might see a faster driver in FreeBSD - or maybe not.

Ted

-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Juha Saarinen
Sent: Sunday, July 03, 2005 12:37 AM
To: FreeBSD questions
Subject: How to troubleshoot slow network performance with Realtek
8169s?


I have a 3.06GHz Intel P4 server running 5.4-RELEASE-p3, with the
following two NICs:

fxp0: Intel 82801BA/CAM (ICH2/3) Pro/100 Ethernet port 
0xdf00-0xdf3f mem 0xfea
fc000-0xfeafcfff irq 20 at device 8.0 on pci2
miibus0: MII bus on fxp0
inphy0: i82562ET 10/100 media interface on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:d0:b7:c3:0f:20
re0: RealTek 8169S Single-chip Gigabit Ethernet port 
0xd800-0xd8ff mem 0xfeaff
800-0xfeaff8ff irq 22 at device 10.0 on pci2
miibus1: MII bus on re0
rgephy0: RTL8169S/8110S media interface on miibus1
rgephy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 
1000baseTX, 1000baseTX
-FDX, auto
re0: Ethernet address: 00:08:a1:3c:72:bb

The Intel NIC is built into the motherboard, and the Realtek 8169s
sits in a 32-bit PCI slot.

Performance for the Realtek adapter is slow though: around 25Mbit/s
when serving clients with Fast Ethernet NICs, and around 250Mbit/s for
Gigabit Ethernet ones.

Having tried out the card in Windows boxes and seen the expected
600Mbit/s, I expected something similar with FreeBSD 5.4. The odd
thing is that you get approx. a quarter of the link speed with both
100TX and 1000TX but not more under FreeBSD 5.4.

The environment a switched network with known good cabling, standard
size Ethernet frames, media autoselect and a kernel with
DEVICE_POLLING and HZ=2000 which re(4) supports according to the
polling(4) man page.

#ifconfig re0
re0: flags=8843UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST mtu 1500
options=58VLAN_MTU,VLAN_HWTAGGING,POLLING
snip
media: Ethernet autoselect (1000baseTX full-duplex)
status: active

Enabling/disabling polling makes no real difference, apart from taking
the edge of performance somewhat.

#sysctl -a | grep polling
kern.polling.idlepoll_sleeping: 1
kern.polling.stalled: 0
kern.polling.suspect: 367
kern.polling.phase: 0
kern.polling.enable: 1
kern.polling.handlers: 1
kern.polling.residual_burst: 0
kern.polling.pending_polls: 0
kern.polling.lost_polls: 782
kern.polling.short_ticks: 731
kern.polling.reg_frac: 20
kern.polling.user_frac: 50
kern.polling.poll_in_trap: 0
kern.polling.idle_poll: 0
kern.polling.burst_max: 150
kern.polling.each_burst: 5
kern.polling.burst: 110

The re(4) man page doesn't have any troubleshooting hints and Googling
didn't turn up anything useful.

What else could I look for?

-- 

Juha
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to 
[EMAIL PROTECTED]

___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: How to troubleshoot slow network performance with Realtek 8169s?

2005-07-03 Thread Juha Saarinen
Hmm... replying to myself here, but using iperf I see 420Mbit/s+ from
FreeBSD to Windows with TCP. Vice versa, 640mbit/s approx.

Not so with file transfers across ftp, http, and smb though. Which is odd. 

-- 

Juha
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: How to troubleshoot slow network performance with Realtek 8169s?

2005-07-03 Thread Juha Saarinen
On 7/3/05, Ted Mittelstaedt [EMAIL PROTECTED] wrote:
 
 The Realtek is a cheap adapter.  You can try hard-coding the
 media type to see what happens, but the fact remains this is
 nowhere near as good a card as the 82801B.  As a result of this
 there hasn't been that much attention to driver optimizations,
 you can review the work here:
 
 http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/re/if_re.c
 
 If playing around with the media type doesen't fix it you can
 try a send-pr but your best off just pulling the card and
 replacing it with another Intel, then mailing the card to one
 of the driver developers.  Maybe in 6 months to a year you
 might see a faster driver in FreeBSD - or maybe not.

Yeah, I know the 8169s isn't the flashest card in the universe and I
don't mind donating a card or two to the developers, but with further
testing -- assuming iperf isn't lying -- it seems the driver is OK and
there's something happening further up the chain that I don't
understand yet.

What's weird is that with both 100 and 1000Mbit/s connections, the max
speed is a quarter of the link speed when using applications such as
ftp for transferring files. With iperf, I see 92Mbit/s on 100Mbit/s
and 400-640Mbit/s on 1000mbit/s connections depending on the
direction.



-- 

Juha
___
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to [EMAIL PROTECTED]