OI 151 e1000g NIC problem

Hi all,

I was abit confused where to put this problem, since its only relevant to OI and therefore I put it here.

For the past weeks I was building my own NAS based on OI 151 a7. Everything was sweet, until I bumped into one horrific issue which cause the link between my NAS to my PC dropped everytime I transfer large number of files over the link (~100 GBytes).

At the beginning of the file transfer, everything was fast ~110-120 Mbyte/s speed could be achieved easily. After 10 minutes, the link speed will drop to around 80 Mbyte/s and hovering around there, then another 10 minutes the speed will drop even lower to only 30-ish Mbyte/s and it will suddenly freeze the point-to-point link. From my OI NAS, I couldnt ping my client, however I could ping localhost, all zeros subnet and broadcast subnet just fine. While on my windows client, the link was shown as on for 10 seconds, and gone for 5 seconds and return and repeats.

To bring the link up again, I have to reboot my NAS and the similar symptoms happened over and over.

After I did some research why does this problem happen, I found some interesting info about some people having similar issues with intel 82574L NIC (e1000g).
One person suggested that he updated BIOS of his motherboard and fixed the problem

while the other linux user had an update for their NIC's driver and also solved the problem.

I tried to search for the driver all over the place and couldnt find any and also I couldnt find any BIOS update for my motherboard.

On the other hand, I also have tried few attempts:

  • Plugging and unplugging the cable
  • Changing over 5 cables! produces same effect
  • Changing to another onboard intel 82574L NIC (e1000g) on the motherboard
  • Enable jumbo frame on both NAS and windows client.
  • Decrease and increase the interrupt throttling rate.
  • Direct memory access binding and changing the threshold size.
  • Changing the MTU size from 1500 to 9216 (max value)
  • Turning on/off flow control for Tx/Rx
  • Forcing the NIC to be slave/master
  • Turning off ACPI function for NIC

My PC and my NAS are set up in point-to-point links fashion.
NAS:
Openindiana 151 a7
ip: 192.168.2.1/30

Windows 7 client:
ip: 192.168.2.2/30

All the following commands were issued after the network came down, it is shown clearly by ipadm that the link is still 'up'!

me@server:~# dladm show-linkprop e1000g0
LINK         PROPERTY        PERM VALUE          DEFAULT        POSSIBLE
e1000g0      speed           r-   1000           1000           -- 
e1000g0      autopush        rw   --             --             -- 
e1000g0      zone            rw   --             --             -- 
e1000g0      duplex          r-   full           full           half,full 
e1000g0      state           r-   up             up             up,down 
e1000g0      adv_autoneg_cap rw   1              1              1,0 
e1000g0      mtu             rw   1500           1500           1500-9216 
e1000g0      flowctrl        rw   no             bi             no,tx,rx,bi 
e1000g0      adv_10gfdx_cap  r-   --             0              1,0 
e1000g0      en_10gfdx_cap   --   --             0              1,0 
e1000g0      adv_1000fdx_cap r-   1              0              1,0 
e1000g0      en_1000fdx_cap  rw   1              1              1,0 
e1000g0      adv_1000hdx_cap r-   0              0              1,0 
e1000g0      en_1000hdx_cap  rw   0              0              1,0 
e1000g0      adv_100fdx_cap  r-   1              0              1,0 
e1000g0      en_100fdx_cap   rw   1              1              1,0 
e1000g0      adv_100hdx_cap  r-   1              0              1,0 
e1000g0      en_100hdx_cap   rw   1              1              1,0 
e1000g0      adv_10fdx_cap   r-   1              0              1,0 
e1000g0      en_10fdx_cap    rw   1              1              1,0 
e1000g0      adv_10hdx_cap   r-   1              0              1,0 
e1000g0      en_10hdx_cap    rw   1              1              1,0 
e1000g0      maxbw           rw   --             --             -- 
e1000g0      cpus            rw   --             --             -- 
e1000g0      cpus-effective  r-   0,5-7          --             -- 
e1000g0      pool            rw   --             --             -- 
e1000g0      pool-effective  r-   --             --             -- 
e1000g0      priority        rw   high           high           low,medium,high 
e1000g0      tagmode         rw   vlanonly       vlanonly       normal,vlanonly 
e1000g0      forward         rw   1              1              1,0 
e1000g0      default_tag     rw   1              1              -- 
e1000g0      learn_limit     rw   1000           1000           -- 
e1000g0      learn_decay     rw   200            200            -- 
e1000g0      stp             rw   1              1              1,0 
e1000g0      stp_priority    rw   128            128            -- 
e1000g0      stp_cost        rw   auto           auto           -- 
e1000g0      stp_edge        rw   1              1              1,0 
e1000g0      stp_p2p         rw   auto           auto           true,false,auto 
e1000g0      stp_mcheck      rw   0              0              1,0 
e1000g0      protection      rw   --             --             mac-nospoof,
                                                                restricted,
                                                                ip-nospoof,
                                                                dhcp-nospoof 
e1000g0      allowed-ips     rw   --             --             -- 
e1000g0      allowed-dhcp-cids rw --             --             -- 
e1000g0      rxrings         rw   --             --             -- 
e1000g0      rxrings-effective r- 1              --             -- 
e1000g0      txrings         rw   --             --             -- 
e1000g0      txrings-effective r- --             --             -- 
e1000g0      txrings-available r- 0              --             -- 
e1000g0      rxrings-available r- 0              --             -- 
e1000g0      rxhwclnt-available r- 0             --             -- 
e1000g0      txhwclnt-available r- 0             --             -- 


my@server:~# dladm show-ether
LINK            PTYPE    STATE    AUTO  SPEED-DUPLEX                    PAUSE
e1000g0         current  up       yes   1G-f                            none


my@server:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v------46 ---
e1000g0    ok       bm--------46 -46

my@server:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
e1000g0/v4        static   ok           192.168.2.1/30
lo0/v6            static   ok           ::1/128

All help will be appreciated, really desperate about this problem, it has been bugging me for days.

Regards

enno

Can you post the make and model of your motherboard. If the NIC is on an addin card, can you post the details of that as well?

Unless your motherboard manufacturer is no longer in existence, it's likely you can find a BIOS update. Perhaps we can help you do that.

Its industrial type motherboard, OEM.
NICs are built in type, on board. Intel 82574L (e1000g)
No BIOS update, tried to wander around google.

Just because you couldn't find it on Google doesn't mean it doesn't exist on the internet.

yea, but it doesnt have got brand on it tho, OEM.

I assure you, there is a part number on there somewhere.

EDIT: This link shows some of the more obscure places the part number might be hidden. Perhaps it will give you a clue. Look towards the bottom of the page and it's illustrated.

ok, I will find it tomorrow. Bed time in NZ haha...
Thanks for your help DustinT, appreciate that.

No problem man, I'm sure you can get to the bottom of this. Good night!

---------- Post updated at 09:13 AM ---------- Previous update was at 09:09 AM ----------

EDIT: Here's a link with some great software tools to identify a motherboard. I'm sorry to say they are all Windows based, but I'm sure that can give you a place to start. I believe there are comparable tools available for *nix systems, although I don't have any specific suggestions.

---------- Post updated at 09:15 AM ---------- Previous update was at 09:13 AM ----------

EDIT: Last link, this one for a technique to identify it from directly from the BIOS.

OK updated the motherboard BIOS to the latest version and the problem still exist. :frowning:

Can you duplicate the problem with another OS? Perhaps try booting off a Ubuntu live cd or something and see what happens. That can help narrow it down to a hardware or software problem.

Can you share the model of your motherboard? A lot of times there's specifics on how the NIC was implemented that can help.

Well all this seems very familiar to me. I used to own a group of IT companies and one of them was a storage distributor. We saw large transfers throttling back (to almost nothing) quite regularly and it caused all sorts of support calls to our storage help desk.

My advice is to look at Windoze as the culprit. You've searched Google so you probably already know that there have been raging arguments and bust-ups over this, for example:

Are You Seeing Slow Windows 7 Network Performance?

Unfortunately I can't just prescribe a cure; I can only sympathise. You are not alone!!!!

What Windoze version are you using exactly? Even using a different (older) version may not fix it!!!!!! Good old MS!

Try using a different protocol to test your transfer speeds eg. FTP between Windows and OI. Also see the performance difference if one node or the other initiates the transfer.

Sorry to be so vague but I reckon you can forget about OI being the problem.

Hope that helps.

1 Like