Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Jan 2011 00:17:05 -0800
From:      Jeremy Chadwick <freebsd@jdc.parodius.com>
To:        Chris H <chris#@1command.com>
Cc:        Yong-Hyeon Pyun <pyunyh@gmail.com>, Rick Macklem <rmacklem@uoguelph.ca>, freebsd-stable@freebsd.org
Subject:   Re: important NFS client patch for FreeBSD8.n
Message-ID:  <20110111081705.GA93322@icarus.home.lan>
In-Reply-To: <6bb74cb2fa23167e22f88b716d18510e.HRCIM@webmail.1command.com>
References:  <717625949.112359.1294698176010.JavaMail.root@erie.cs.uoguelph.ca> <6bb74cb2fa23167e22f88b716d18510e.HRCIM@webmail.1command.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 10, 2011 at 11:40:37PM -0800, Chris H wrote:
> Greetings, and thank you for the "heads up".
> On Mon, January 10, 2011 2:22 pm, Rick Macklem wrote:
> > I just commited a patch (r217242) to head. Anyone who is using client
> > side NFS on FreeBSD8.n should apply this patch. It is also available at:
> > http://people.freebsd.org/~rmacklem/krpc.patch
> >
> >
> > It fixes a problem where the kernel rpc assumes that 4 bytes of data
> > exists in the first mbuf without checking. If the data straddles multiple mbufs,
> > it uses garbage and then a typical case will wedge for a minute or so until it
> > times out and establishes a new TCP connection. It also replaces m_pullup() with
> > m_copydata(), since m_pullup() can fail for rare cases when there is data
> > available. (m_pullup() uses MGET(, M_DONTWAIT,) which can fail when mbuf
> > allocation is constrainted, for example.)
> >
> > Thanks to john.gemignani at isilon.com for spotting this problem, rick
> 
> I just fired a message off to @amd64 && @net because I am seeing messages like:
> 
> nfe0: tx v2 error 0x6204<UNDERFLOW>
> 
> on a recent 8.1/amd64 install which is connected to an 8.0/i386 via NFS.
> They both run NFS client && server, and they both utilize mount points
> on each other. They are only 2 of several interconnected servers. The
> others are all 7x/i386. But I only see these messages on the 8.1/amd64,
> and only when connected to, and utilizing mounts on the 8.0/i386, and even
> then, only when the data exceeds ~1.5Mb.
> I guess I'm asking if the messages I'm receiving are related to the
> corrections your patch provides. Or should I keep looking for the answer
> for the messages I am seeing.

The above message is coming from the nfe(4) NIC driver, not from NFS.
It's possible that NFS tickles some kind of I/O throughput quirk in
drivers such as nfe(4), given that they're intended for cheap desktops.

CC'ing Yong-Hyeon Pyun to assist in debugging/explaining the above
error.

In the interim, can you please provide output from the following
commands:

# uname -a
# dmesg           (please include relevant nfe details and miibus)
# pciconf -lvcb   (please only include nfe-related output)
# netstat -ind    (you can XX-out MACs and/or IPs)
# ifconfig -a     (you can XX-out MACs and/or IPs)

Thanks.

-- 
| Jeremy Chadwick                                   jdc@parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.               PGP 4BD6C0CB |




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