Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Nov 2006 11:39:24 -0800 (PST)
From:      Mohan Srinivasan <mohan_srinivasan@yahoo.com>
To:        Ulrich Spoerlein <uspoerlein@gmail.com>, current@freebsd.org
Subject:   Re: Expensive timeout in nfs_socket.c
Message-ID:  <925717.1319.qm@web30803.mail.mud.yahoo.com>
In-Reply-To: <20061122184411.GB1522@roadrunner.q.local>

next in thread | previous in thread | raw e-mail | index | archive | help
The way the NFS client does re-transmits is that nfs_timer() is called once 
every 10 msecs. It loops over all the requests that are pending and decides 
which ones to retransmit.

This badly needs a re-write. We need to kill nfs_timer() and have a timeout
per NFS request. In the common case, the timeouts would never happen. If we
did this, we could both simplify the code and optimize it significantly.

It is a fair amount of work, and it is not likely to happen soon :(

mohan

--- Ulrich Spoerlein <uspoerlein@gmail.com> wrote:

> Hi,
> 
> I just wanted to report that I always get at least one "expensive
> timeout" warning per boot on a fairly recent current. Always when
> accessing large data sets from NFS.
> 
> Expensive timeout(9) function: 0xc062b1bc(0) 0.102241471 s
> igor# addr2line -e /boot/kernel/kernel.symbols 0xc062b1bc
> /vol/src/sys/nfsclient/nfs_socket.c:1357
> 
> I also got one from syscons, but I've since removed the flags from
> rc.conf, as the machine is headless. For the curious:
> 
> Expensive timeout(9) function: 0xc04a1444(0xc07a2880) 0.008804956 s
> igor# addr2line -e kernel.symbols 0xc04a1444
> /vol/src/sys/dev/syscons/syscons.c:1688
> 
> I have kern.hz=100 in /boot/loader.conf, if that is important.
> 
> Ulrich Spoerlein
> -- 
> A: Yes.
> >Q: Are you sure?
> > >A: Because it reverses the logical flow of conversation.
> > >>Q: Why is top posting frowned upon?
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
> 




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