From owner-freebsd-current@FreeBSD.ORG Wed Nov 22 19:39:31 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 0640116A47C for ; Wed, 22 Nov 2006 19:39:31 +0000 (UTC) (envelope-from mohan_srinivasan@yahoo.com) Received: from web30803.mail.mud.yahoo.com (web30803.mail.mud.yahoo.com [68.142.200.146]) by mx1.FreeBSD.org (Postfix) with SMTP id D1AE843D76 for ; Wed, 22 Nov 2006 19:38:55 +0000 (GMT) (envelope-from mohan_srinivasan@yahoo.com) Received: (qmail 1343 invoked by uid 60001); 22 Nov 2006 19:39:25 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:Date:From:Subject:To:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-ID; b=S6WQv/VNM09r7KK7z9Iq894jAu5uX6KpaPh08SA/GXMhnnOypXsmBRtHh4YvM2n2K1eWF2pjEoX1F0tg2ckX69/ocOQflMjngyCKXaymioDrsf0OnuXKuMYvysLECxSttXucMfHfItLabIbg76/TozJGGZFd5BeqtgGDMVVqJWI=; X-YMail-OSG: 1IIyk40VM1nPrq.AMMUmXENb570Off5XsvRfg1hmzMvyTjgN3.2Xa6k8VEwY1auguRRJnMaSRbWRv9GOUPck3Q8WwB6DU6.byJBThv5Gg.mo91GVdmmOg5m7MrazAr4aT8XkguW6hiPV7VY- Received: from [207.126.239.39] by web30803.mail.mud.yahoo.com via HTTP; Wed, 22 Nov 2006 11:39:24 PST Date: Wed, 22 Nov 2006 11:39:24 -0800 (PST) From: Mohan Srinivasan To: Ulrich Spoerlein , current@freebsd.org In-Reply-To: <20061122184411.GB1522@roadrunner.q.local> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Message-ID: <925717.1319.qm@web30803.mail.mud.yahoo.com> Cc: Subject: Re: Expensive timeout in nfs_socket.c X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Nov 2006 19:39:31 -0000 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 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" >