Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Apr 2007 10:02:30 +0900
From:      Pyun YongHyeon <pyunyh@gmail.com>
To:        Rainer Hurling <rhurlin@gwdg.de>
Cc:        darren780@yahoo.com, freebsd-current@freebsd.org, Shigeaki Tagashira <shigeaki@se.hiroshima-u.ac.jp>
Subject:   Re: yongari nfe problems
Message-ID:  <20070402010230.GA1323@cdnetworks.co.kr>
In-Reply-To: <460E77BE.9090503@gwdg.de>
References:  <20070311050627.GC79728@cdnetworks.co.kr> <45F3B94B.3030104@gwdg.de> <20070312045116.GA83433@cdnetworks.co.kr> <45F5C914.3000805@gwdg.de> <20070313004601.GA87608@cdnetworks.co.kr> <20070313005845.GB87608@cdnetworks.co.kr> <45F636B5.9060608@gwdg.de> <20070313070153.GD87608@cdnetworks.co.kr> <20070331003031.GB68853@cdnetworks.co.kr> <460E77BE.9090503@gwdg.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 31, 2007 at 05:01:18PM +0200, Rainer Hurling wrote:
 > Thank you Pyun YongHyeon for the newest patch. I am running it with 
 > if_nfe.c and if_nfereg.h from 03/21/2007 and if_nfevar.h from 03/19/2007 
 > on FreeBSD 7.0-CURRENT (i386) from today.
 > 
 > boot -v gives me:
 > nfe0: <NVIDIA nForce MCP55 Networking Adapter> port 0xb000-0xb007 mem 
 > xfbef3000-0xfbef3fff,0xfbefa800-0xfbefa8ff,0
 > xfbefa400-0xfbefa40f irq 22 at device 8.0 on pci0
 > nfe0: Reserved 0x1000 bytes for rid 0x10 type 3 at 0xfbef3000
 > miibus0: <MII bus> on nfe0
 > ciphy0: <VSC8601 10/100/1000TX PHY> PHY 1 on miibus0
 > ciphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 
 > 1000baseT-FDX, auto
 > nfe0: bpf attached
 > nfe0: Ethernet address: 00:16:17:95:d9:7c
 > nfe0: [MPSAFE]
 > nfe0: [FILTER]
 > 
 > 
 > Now there are no more warning from miibus0 :-)
 > 

Thanks for testing.

 > Unfortunately at bigger network transfers I still observe the previously 
 > described watchdog timeouts:
 > 
 > nfe0: watchdog timeout (missed Tx interrupts) -- recovering
 > nfe0: watchdog timeout (missed Tx interrupts) -- recovering
 > nfe0: watchdog timeout (missed Tx interrupts) -- recovering
 > nfe0: watchdog timeout (missed Tx interrupts) -- recovering
 > nfe0: watchdog timeout (missed Tx interrupts) -- recovering
 > nfe0: watchdog timeout (missed Tx interrupts) -- recovering
 > ...
 > 
 > During these timeouts I am not able to use my network ;-(
 > 
 > I would be happy if I could help solving this problem. Let me know if I 
 > can test anything.
 > 

Does nfe(4) use shared interrupt with other devices?
(Check 'vmstat -i' output.)

Since the watchdog timeout error indicates you've had missing Tx
completion interrupts I guess you've lost Tx completion interrupts
under high systems loads. One of major changes in new nfe(4) was
switching to so-called adaptive polling and it is known to give better
performance. However it can loose interrupts under high system loads
(e.g. buildworld) and I guess there are two ways to fix the issue.

1. Add MSI/MSI-X support.
 I think this is the cleanest solution to the issue. But old
 hardwares which has no MSI/MSI-X support and buggy PCI bridges may
 have issues dealing with MSI/MSI-X. In addition, there is no public
 documentation available for NVIDIA NICs and lack of MSI/MSI-X capable
 hardwares make me hard to add MSI/MSI-X support. AFAIK, Shigeaki
 Tagashira is working on supporting MSI/MSI-X.(CCed)

2. polling(4)
 Because polling(4) does not rely on timed-delivery of Tx interrupts
 it would help in your case.

-- 
Regards,
Pyun YongHyeon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20070402010230.GA1323>