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_at_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_at_freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-current > To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org" >Received on Wed Nov 22 2006 - 18:39:31 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:03 UTC