From owner-freebsd-current@FreeBSD.ORG Wed Aug 18 08:07:11 2010 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4D8F0106566B for ; Wed, 18 Aug 2010 08:07:11 +0000 (UTC) (envelope-from pluknet@gmail.com) Received: from mail-qy0-f182.google.com (mail-qy0-f182.google.com [209.85.216.182]) by mx1.freebsd.org (Postfix) with ESMTP id DF8078FC12 for ; Wed, 18 Aug 2010 08:07:10 +0000 (UTC) Received: by qyk4 with SMTP id 4so331047qyk.13 for ; Wed, 18 Aug 2010 01:07:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=o3ZP7z1iizrjG1+Mo7B9C/LPZwkZHorSq7ZnOSr031I=; b=q/uwn0d6Ptpqn2lYY08rvdn44c5Dtw0tnkSwTHAEEWw7PuVNbZYC01VRTNUniBCAYn 2BYG/qcLqsU885MylGbDTGrtzVouT2IklOTBpLv1v0fRXS9n6v5ClmEa2aFxOmQpHVH/ NrHMqXk1jC7MchAYlJmt2gEg6gwxuyytUFoAQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=rTqWL59jB4ujV5mXnvP1uWayL75FyfdCBW5n+B3vhaT4+8dF6xIkGbc/x2Rs2paPKK KNtG0W4Ndx5XwWZpJE1KwZ0PBrZp5WXlswq6oG2SeD9J/YyHyHYjTEMePBGW0f4O5HUG iiARWjJl2J2FEhA7TKQDw47R8GHRTuJS8Fhlo= MIME-Version: 1.0 Received: by 10.224.62.217 with SMTP id y25mr5115898qah.193.1282118829177; Wed, 18 Aug 2010 01:07:09 -0700 (PDT) Received: by 10.229.31.12 with HTTP; Wed, 18 Aug 2010 01:07:09 -0700 (PDT) In-Reply-To: <20100817160445.GO2396@deviant.kiev.zoral.com.ua> References: <20100816185456.GU2396@deviant.kiev.zoral.com.ua> <20100817160445.GO2396@deviant.kiev.zoral.com.ua> Date: Wed, 18 Aug 2010 12:07:09 +0400 Message-ID: From: pluknet To: Kostik Belousov Content-Type: text/plain; charset=ISO-8859-1 Cc: FreeBSD Current Subject: Re: LOR on nfs: vfs_vnops.c:301 kern_descrip.c:1580 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, 18 Aug 2010 08:07:11 -0000 On 17 August 2010 20:04, Kostik Belousov wrote: > On Tue, Aug 17, 2010 at 07:42:41PM +0400, pluknet wrote: >> 2010/8/16 Kostik Belousov : >> > On Mon, Aug 16, 2010 at 09:07:24PM +0400, pluknet wrote: >> >> On 16 August 2010 21:05, pluknet wrote: >> >> > Hi. >> >> > >> >> > Seeing on mostly idle, recently updated current, while closing a file. >> >> > Presumably never reported on ML. >> [...] >> >> >> > Both LORs are valid. The fork performed deep inside the VFS call stack >> > is obviously problematic. As a workaround, you may fix the number of >> > nfsiods. >> > >> > Proper fix might consist of creating a shepherd thread which only task >> > is to act on the requests on creating new nfsiods. >> > >> > Would you try to implement this ? I will provide the assistance, if needed. >> >> Hmm.. I tried to move kproc_create() under shepherd thread and now stuck >> with cp process lockup in [bo_wwait] when cp'ing something on nfs: cp a b. >> Did I screw up something? >> See weird draft patch attached (weird, as I have no idea how to nicely >> exchange data between nfs_nfsiodnew() and shep_thread() thread). > Most likely, you loose the requests to create nfsiods since the > existing request in the global variable shep_chan can be overwritten > by new request. You should either sleep till existing request is serviced, > or form a queue. It turns out I passed pointer to pointer instead of pointer (sorry for my poor English). > > Also please take a note of the John' suggestion to use the taskqueue. I decided to go this road. Thank you both. Now I do nfs buildkernel survive and prepare some benchmark results. -- wbr, pluknet