View previous topic :: View next topic |
Author |
Message |
plink212 Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
Joined: 21 Jan 2005 Posts: 90
|
Posted: Fri Nov 24, 2006 8:23 pm Post subject: Jumbo Frames [SOLVED] |
|
|
I have 2 linux machines
the first has a nforce 4 chipset with a gigabyte nic identified as
Code: | 00:14.0 Bridge: nVidia Corporation MCP51 Ethernet Controller (rev a1) |
ifconfig lists
Code: | eth0 Link encap:Ethernet HWaddr 00:15:58:11:09:A9
inet addr:192.168.1.4 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4092 errors:0 dropped:0 overruns:0 frame:0
TX packets:2516 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:483502 (472.1 Kb) TX bytes:351905 (343.6 Kb)
Interrupt:10 |
ethtool lists
Code: | Settings for eth0:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: external
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Link detected: yes |
This is using the forced eth driver in the kernel
Code: | Linux mythtv 2.6.18-ck1-r2 #2 SMP Sun Nov 19 12:43:53 GMT 2006 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ AuthenticAMD GNU/Linux |
I want to set jumbo frames so i execute
Code: | ifconfig eth0 mtu 9000 |
however the result is
Code: | SIOCSIFMTU: Invalid argument |
The same is true for the other machine which has deets as follows
Code: | 00:0a.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)
|
Code: | eth0 Link encap:Ethernet HWaddr 00:14:6C:33:63:B5
inet addr:192.168.1.77 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:19207579 errors:0 dropped:0 overruns:0 frame:0
TX packets:12375561 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:4130092277 (3938.7 Mb) TX bytes:1644050617 (1567.8 Mb)
Interrupt:16 Base address:0x4400 |
Code: | Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: yes
|
Is there some hidden kernel option I am missing here? as i do not seem to able to enable jumbo frames on either nic?
Thanks
Tim
Last edited by plink212 on Sun Jan 21, 2007 2:44 pm; edited 1 time in total |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
anthrax Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/4020324842625733c67e2.jpg)
Joined: 17 Apr 2005 Posts: 105
|
Posted: Sat Nov 25, 2006 7:52 am Post subject: |
|
|
Since my network is not gigabit enabled, so I shall do the best I can. I may be the case that Jumbo Frames are not possible yet with the driver. However reading the gentoo-wiki page on it the guy mentioned that his Gigabit Interface could only bring its MTU up to 7200 so maybe yours is not capable of the full 9000 either. So may be google around for the max MTU of your chip/driver or use ethtool (I really dont know what one you can do this with in just guessing). One other thing you could try is bringing down your interface and then trying to apply the new MTU.
Good Luck ![Smile :)](images/smiles/icon_smile.gif) _________________ Trust is a weakness |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
plink212 Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
Joined: 21 Jan 2005 Posts: 90
|
Posted: Sat Nov 25, 2006 10:02 am Post subject: |
|
|
looking in the forcedeth.c the maximum mtu is defined as 9200, so at least for the nvidia I do not think that is the case.
I have tried applying the mtu with the interface up and down but it gives the same result.
I cannot seem to set a mtu of greater than 1500 on either adapter. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
plink212 Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
Joined: 21 Jan 2005 Posts: 90
|
Posted: Sat Nov 25, 2006 1:39 pm Post subject: |
|
|
bump |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
anthrax Tux's lil' helper
![Tux's lil' helper Tux's lil' helper](/images/ranks/rank_rect_1.gif)
![](images/avatars/4020324842625733c67e2.jpg)
Joined: 17 Apr 2005 Posts: 105
|
Posted: Tue Nov 28, 2006 6:29 pm Post subject: |
|
|
Then I guess I regret to say that either the nforce ethernet does support jumbo frames (not all gigabit chips do) or the forcedeth driver doesnt support it. It may be worth trying the proprietary ones from Nvidia maybe _________________ Trust is a weakness |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
anybody n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 14 Sep 2003 Posts: 32
|
Posted: Sun Jan 21, 2007 1:15 am Post subject: |
|
|
This is very strange. According to nVidia Specs the nForce Gigabit adapters DO support Jumbo frames, and according to the driver it does too.
Why doesn't it work ?!? Has somebody solved this problem yet ?
I'm using an Asus A8N-VM CSM with GeForce 6150/MCP430 Chipset and a "nVidia Corporation MCP51 Ethernet Controller (rev a1)" network controller according to lspci.
I am using the very latest Kernel (2.6.20-rc5) and tried it with both "Use Rx and Tx Polling (NAPI) (EXPERIMENTAL)" On and Off. |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
anybody n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 14 Sep 2003 Posts: 32
|
Posted: Sun Jan 21, 2007 1:45 am Post subject: |
|
|
Even tough i have absolutely no clue about C, i just had a look at the forcedeth.c driver, trying to find out more about this problem. And i actually found the reason !!!
Let's have a look at some code snippets:
Code: | #define DEV_HAS_LARGEDESC 0x0004 /* device supports jumbo frames and needs packet format 2 */ |
Code: |
np->pkt_limit = NV_PKTLIMIT_1;
if (id->driver_data & DEV_HAS_LARGEDESC)
np->pkt_limit = NV_PKTLIMIT_2;
|
We can see that the higher value of 9100 (stored in NV_PKTLIMIT_2) is only enabled when DEV_HAS_LARGEDESC is present.
Now if we compare for example the hardware profiles in the driver of the old nForce 3 with the much newer MCP51, we see:
Code: |
{ /* nForce3 Ethernet Controller */
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_7),
.driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM,
|
vs.
Code: |
{ /* MCP51 Ethernet Controller */
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_13),
.driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL,
|
The question that remains now is: Does this hardware REALLY not support jumbo frames (which i doubt), or is it just a forcedeth bug, that nobody except us has noticed so far?
Could someone please test whether it is possible to use jumbo frames on this hardware in windows ? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
anybody n00b
![n00b n00b](/images/ranks/rank_rect_0.gif)
Joined: 14 Sep 2003 Posts: 32
|
Posted: Sun Jan 21, 2007 2:14 am Post subject: |
|
|
I changed the both MCP51 feature bits in the forcedeth.c code and recompiled the kernel:
Code: |
tux ~ # ifconfig eth0 mtu 9100
tux ~ # ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:15:F2:52:D7:6A
inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:9100 Metric:1
RX packets:461 errors:0 dropped:0 overruns:0 frame:0
TX packets:353 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:79498 (77.6 Kb) TX bytes:32904 (32.1 Kb)
Interrupt:23 Base address:0x4000
|
However now, once i enable larger MTU sizes (i tried, 9100, 9000 and 2000), the server quickly looses the whole network connection or starts dropping SSH connections where there is more traffic than a few bytes / sec.
(For example: When starting IPTRAF, i only see the first few parts of the background and then the connection is dead before the menu shows up)
I'm starting to get the impression that this network card might actually NOT support Jumbo Frames. I found an indication that this might be true here:
http://archives.neohapsis.com/archives/openbsd/cvs/2006-02/0288.html
However, i guess for the ultimate proof, having a look in the windows device manager of such a board is needed. If that should be indeed the case, having a gigabit network card without jumbo frames is indeed a very sad thing
[EDIT]
I now had someone have a look in the windows settings driver settings, in both Vista (Microsoft Driver) and Windows XP (nVidia Driver).
Both did not have Settings related to Frame Size / Jumbo Frames in the Device Manager. So i suppose this chipset really doesn't support it. I ordered an Intel PRO/1000 PT Desktop Adapter PCIe x1 Network Card therefor and will do some speed comparisons once it arrives.
[/EDIT] |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
|