From owner-freebsd-testing@FreeBSD.ORG Thu Mar 6 16:29:43 2014 Return-Path: Delivered-To: freebsd-testing@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3395C93B for ; Thu, 6 Mar 2014 16:29:43 +0000 (UTC) Received: from relay00.pair.com (relay00.pair.com [209.68.5.9]) by mx1.freebsd.org (Postfix) with SMTP id DC72EA3E for ; Thu, 6 Mar 2014 16:29:42 +0000 (UTC) Received: (qmail 31581 invoked from network); 6 Mar 2014 16:29:35 -0000 Received: from 87.58.146.155 (HELO x2.osted.lan) (87.58.146.155) by relay00.pair.com with SMTP; 6 Mar 2014 16:29:35 -0000 X-pair-Authenticated: 87.58.146.155 Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.5/8.14.5) with ESMTP id s26GTYLH025975; Thu, 6 Mar 2014 17:29:34 +0100 (CET) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.5/8.14.5/Submit) id s26GTYRZ025974; Thu, 6 Mar 2014 17:29:34 +0100 (CET) (envelope-from pho) Date: Thu, 6 Mar 2014 17:29:34 +0100 From: Peter Holm To: Garrett Cooper Subject: Re: Test scenario for sysctl kern.maxfiles Message-ID: <20140306162934.GB25614@x2.osted.lan> References: <20140305085806.GA70478@x2.osted.lan> <20140306112322.GA10664@x2.osted.lan> <20140306153247.GA22830@x2.osted.lan> <6A23D2B5-4EAA-46EF-A582-8C55FE0ED46B@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6A23D2B5-4EAA-46EF-A582-8C55FE0ED46B@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) Cc: "freebsd-testing@freebsd.org" X-BeenThere: freebsd-testing@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: Testing on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 06 Mar 2014 16:29:43 -0000 On Thu, Mar 06, 2014 at 07:44:58AM -0800, Garrett Cooper wrote: > On Mar 6, 2014, at 7:32 AM, Peter Holm wrote: > > > On Thu, Mar 06, 2014 at 09:15:58AM -0500, Eitan Adler wrote: > >> On 6 March 2014 06:23, Peter Holm wrote: > >>> On Wed, Mar 05, 2014 at 10:08:49AM -0700, Alan Somers wrote: > >>>> On Wed, Mar 5, 2014 at 1:58 AM, Peter Holm wrote: > >>>>> Here's an attempt to verify that increasing kern.maxfiles works as > >>>>> expected. > >>>>> > >>>>> http://people.freebsd.org/~pho/kern_descrip_test-v3.diff > >>>>> -- > >>>>> Peter > >>>> > >>>> 1) done should be of type "static volatile sig_atomic_t", not int, > >>>> because it's set by signal handlers. > >>>> > >>> > >>> Yes, that is nicer (I learned something new today :-). But the use > >>> here works because there is a call to usleep(3) after each test, > >>> forcing the compiler to reload the "done" variable. > >> > >> That isn't what sig_atomic_t is trying to prevent. It is an ""integer > >> type of an object that can be accessed as an atomic entity, even in > >> the presence of asynchronous interrupts."". In particular, on some > >> machines it would be possible for the signal handler to observe a > >> half-updated "int" type variable. > >> > >> On i386 sig_atomic_t happens to be an "int". On amd64 it happens to > >> be a long. This is not contractual. > >> > > > > I only just realize that the ATF test programs are threaded. > > Anyway it seems to be a good practice to always use "static volatile > > sig_atomic_t" for signal handler variables. > > ATF forks, doesn?t spawns threads: > > # grep -r pthread contrib/atf/ || echo not threaded > not threaded > Hmm ... OK. $ ldd /usr/tests/sys/kern/unix_seqpacket_test /usr/tests/sys/kern/unix_seqpacket_test: libthr.so.3 => /lib/libthr.so.3 (0x2806f000) libatf-c.so.1 => /usr/lib/libatf-c.so.1 (0x28091000) libc.so.7 => /lib/libc.so.7 (0x280a5000) $ > I think that the point that others were trying to make here is that it sets a good standard/precedence to program with atomicity in mind instead of it not being involved, because of how signal handlers are designed. > Oh, I absolutely agree. -- Peter