From owner-freebsd-current@freebsd.org Thu Dec 17 12:03:48 2015 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 91C17A48015 for ; Thu, 17 Dec 2015 12:03:48 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2B0A81F6B; Thu, 17 Dec 2015 12:03:47 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kostik@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id tBHC3heY000254 (version=TLSv1 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Thu, 17 Dec 2015 14:03:43 +0200 (EET) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua tBHC3heY000254 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id tBHC3h17000253; Thu, 17 Dec 2015 14:03:43 +0200 (EET) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 17 Dec 2015 14:03:43 +0200 From: Konstantin Belousov To: Don Lewis Cc: freebsd-current@freebsd.org Subject: Re: fork_findpid() - Fatal trap 12: page fault while in kernel mode Message-ID: <20151217120343.GA3625@kib.kiev.ua> References: <20151216121000.GV3625@kib.kiev.ua> <201512161908.tBGJ8286089845@gw.catspoiler.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201512161908.tBGJ8286089845@gw.catspoiler.org> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Status: No, score=-2.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FREEMAIL_FROM,NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.1 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on tom.home X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.20 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: Thu, 17 Dec 2015 12:03:48 -0000 On Wed, Dec 16, 2015 at 11:08:02AM -0800, Don Lewis wrote: > I used to have a patch the deferred linking the new process into > proctree/allproc until it was fully formed. The motivation was to get > rid of all of the PRS_NEW stuff scattered around the source. > Unfortunately the patch bit-rotted and I'm pretty sure that I lost it. I had similar tought for a second as one of the possibilities to fix the issue, but rejected it outright due to the way the pid allocator works. The loop which faulted is the allocator, it depends on the new pid being linked early to detect the duplicated alloc. What you wrote could be done, but this restructuring requires the separate pid allocator, and probably it must repeat all quirks and subtle behaviour of the current algorithm. But I do not object, PRS_NEW is a trouble on its own.