From owner-freebsd-current@FreeBSD.ORG Fri Mar 17 18:55:24 2006 Return-Path: X-Original-To: current@freebsd.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7C77816A47B for ; Fri, 17 Mar 2006 18:55:24 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from fw.zoral.com.ua (ll-227.216.82.212.sovam.net.ua [212.82.216.227]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9A95C43D5D for ; Fri, 17 Mar 2006 18:55:09 +0000 (GMT) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by fw.zoral.com.ua (8.13.3/8.13.3) with ESMTP id k2HIt3nh023073 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 17 Mar 2006 20:55:03 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.13.4/8.13.4) with ESMTP id k2HIt3DK095763; Fri, 17 Mar 2006 20:55:03 +0200 (EET) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.13.4/8.13.4/Submit) id k2HIt216095758; Fri, 17 Mar 2006 20:55:02 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 17 Mar 2006 20:55:02 +0200 From: Kostik Belousov To: Rong-En Fan Message-ID: <20060317185502.GF1203@deviant.kiev.zoral.com.ua> References: <200603161516.27081.mi+mx@aldan.algebra.com> <20060317094103.GD1203@deviant.kiev.zoral.com.ua> <6eb82e0603171026h4bc49a08kb0bda30e171feaec@mail.gmail.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="65ImJOski3p8EhYV" Content-Disposition: inline In-Reply-To: <6eb82e0603171026h4bc49a08kb0bda30e171feaec@mail.gmail.com> User-Agent: Mutt/1.4.2.1i X-Virus-Scanned: ClamAV version 0.88, clamav-milter version 0.87 on fw.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED autolearn=failed version=3.1.0 X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on fw.zoral.com.ua Cc: Mohan Srinivasan , current@freebsd.org Subject: Re: unkillable process stuck in "nfsaio" 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: Fri, 17 Mar 2006 18:55:24 -0000 --65ImJOski3p8EhYV Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Mar 17, 2006 at 01:26:13PM -0500, Rong-En Fan wrote: > On 3/17/06, Kostik Belousov wrote: > > Just out of curiosity: > > > > could you, please, test this little patch: > > > > Index: sys/nfsclient/nfs_bio.c >=20 > I have been played around with intr/nointr with this patch + some in > nfs_bio.c, nfs_vnops.c. > Here are the results (note that, the revision # below means the > changes made in that > revision), tested on RELENG_6 as of yesterday, i386, SMP. kernel is built= with > INVARIANT on. >=20 > * nfs_vnops.c 1.262, nfs_bio.c 1.154 >=20 > - intr >=20 > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > 50+0 records in > 50+0 records out > 52428800 bytes transferred in 4.410424 secs (11887474 bytes/sec) > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > ^C^C^C^C^C^C^C^C^C^C7+0 records in > 6+0 records out > 6291456 bytes transferred in 291.017236 secs (21619 bytes/sec) > (stuck in nfsaio) >=20 > - nointr >=20 > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > 50+0 records in > 50+0 records out > 52428800 bytes transferred in 4.264193 secs (12295128 bytes/sec) > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > ^C12+0 records in > 11+0 records out > 11534336 bytes transferred in 0.990210 secs (11648373 bytes/sec) >=20 > * nfs_vnops.c 1.262 >=20 > - intr >=20 > $dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > 50+0 records in > 50+0 records out > 52428800 bytes transferred in 4.238704 secs (12369064 bytes/sec) > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > ^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C > ^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^Ccc^C^C^C^C15+0 records = in > 14+0 records out > 14680064 bytes transferred in 677.578696 secs (21665 bytes/sec) > (stuck in nfsaio) >=20 > - nointr >=20 > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > 50+0 records in > 50+0 records out > 52428800 bytes transferred in 4.255155 secs (12321244 bytes/sec) > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > ^C11+0 records in > 10+0 records out > 10485760 bytes transferred in 0.899381 secs (11658864 bytes/sec) >=20 > * nfs_vnops.c 1.262, nfs_bio.c (remove slpflag =3D 0) >=20 > - intr >=20 > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > 50+0 records in > 50+0 records out > 52428800 bytes transferred in 4.245185 secs (12350181 bytes/sec) > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > ^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C > (top's state is changing between CPU0, CPU1, RUN, *Giant) > (11 minutes passed, I reboot this box) >=20 > - nointr > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > 50+0 records in > 50+0 records out > 52428800 bytes transferred in 4.454680 secs (11769375 bytes/sec) > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > ^C17+0 records in > 16+0 records out > 16777216 bytes transferred in 1.458180 secs (11505587 bytes/sec) >=20 > * nfs_vnops.c 1.262, nfs_bio.c 1.154 (remove slpflags =3D 0) >=20 > - intr > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > 50+0 records in > 50+0 records out > 52428800 bytes transferred in 4.386083 secs (11953445 bytes/sec) > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > ^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C^C > (top's state is changing between CPU0, CPU1, RUN, *Giant) > (44 minutes passwd, I rebooted) >=20 > - noitntr > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > 50+0 records in > 50+0 records out > 52428800 bytes transferred in 4.370959 secs (11994805 bytes/sec) > $ dd if=3D/dev/zero of=3Db bs=3D1m count=3D50 > ^C25+0 records in > 24+0 records out > 25165824 bytes transferred in 2.122789 secs (11855076 bytes/sec) >=20 > Looks like that the changes to nfs_vnops.c last Nov by ps@, ^C can really= stop > the process, but it take too much time :( >=20 > Hope this helps, > Rong-En Fan Hmm, it seems there are another places to loop forever, e.g, in nfs_bioread(), line 462 or 656. I think that exit on signal from nfs_asyncio() shall cause exit from nfs_bioread too. Sorry, I cannot make the patch now. Will look at this at the next week, if nobody comes out with patch. --65ImJOski3p8EhYV Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (FreeBSD) iD8DBQFEGwYFC3+MBN1Mb4gRAlbxAJ9yhxV/IjPys9cMEpVk6R8CkFWNqQCg78RU OSTrpDCBRm+QlpwFANXOyBU= =2bzc -----END PGP SIGNATURE----- --65ImJOski3p8EhYV--