From owner-freebsd-current@FreeBSD.ORG Tue Dec 6 14:42:35 2005 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 02D7B16A425; Tue, 6 Dec 2005 14:42:34 +0000 (GMT) (envelope-from fli+freebsd-current@shapeshifter.se) Received: from mx1.h3q.net (manticore.shapeshifter.se [212.37.5.30]) by mx1.FreeBSD.org (Postfix) with ESMTP id 304CB43D5C; Tue, 6 Dec 2005 14:42:06 +0000 (GMT) (envelope-from fli+freebsd-current@shapeshifter.se) Received: from localhost (localhost [127.0.0.1]) by mx1.h3q.net (Postfix) with ESMTP id C92BF1A9DD; Tue, 6 Dec 2005 15:41:59 +0100 (CET) Received: from mx1.h3q.net ([127.0.0.1]) by localhost (mx1.h3q.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 42814-04; Tue, 6 Dec 2005 15:41:58 +0100 (CET) Received: from [192.168.0.94] (81-234-243-91-o926.tbon.telia.com [81.234.243.91]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.h3q.net (Postfix) with ESMTP id B40F11A6EA; Tue, 6 Dec 2005 15:41:58 +0100 (CET) Message-ID: <4395A336.3060909@shapeshifter.se> Date: Tue, 06 Dec 2005 15:41:58 +0100 From: Fredrik Lindberg User-Agent: Mozilla Thunderbird 1.0.6 (X11/20050928) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Giorgos Keramidas References: <43938F61.1050202@terranova.net> <4393F60E.2040106@shapeshifter.se> <86mzjflc97.fsf@xps.des.no> <439495B1.5060305@shapeshifter.se> <861x0qmuen.fsf@xps.des.no> <43956ADF.4050504@shapeshifter.se> <86slt6lb9s.fsf@xps.des.no> <43958F9A.2000205@shapeshifter.se> <20051206142950.GA14331@flame.pc> In-Reply-To: <20051206142950.GA14331@flame.pc> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: amavisd-new at h3q.net Cc: Dag-Erling Sm?rgrav , Travis Mikalson , current@freebsd.org, njl@freebsd.org Subject: Re: powerd 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: Tue, 06 Dec 2005 14:42:35 -0000 Giorgos Keramidas wrote: > On 2005-12-06 14:18, Fredrik Lindberg wrote: > >>Dag-Erling Sm?rgrav wrote: >> >>>Fredrik Lindberg writes: >>> >>>>Dag-Erling Sm?rgrav wrote: >>>> >>>>>If the devd loop is an *alternative* to the polling loop, there's >>>>>even less reason to use threads. >>>> >>>>Yes it's an alternative, reading a variable versus doing a sysctl call >>>>each interation. It seemed like I good idea, when I first wrote this >>>>(almost a year ago), to have a thread providing a cached value of the >>>>AC state. But maybe I was trying to be too smart or something. >>> >>>Yes. Not only is it a bad design idea, but the implementation is >>>wrong, and likely to fail badly when compiled at high optimization >>>levels. >> >>Ignoring the fact that it does work with -O3 (gcc 3.4.4), could you >>please explain why it has the potential of failing with high >>optimizations. > > > I haven't looked at the source code, but I think what Dag-Erling means > is that optimizing compilers, in high optimization mode, may inhibit > sequential read operations of the same variable, trying to 'optimize' > many read operations that would (to the best of their knowledge) return > the same result. > > This is never going to happen if the variable is declared as 'volatile' > though, so I'm not sure if it applies in this case, until I look at the > sources of powerd. > Ah, ok. I was thinking of something like that. Anyway, thank you for explaining this. Fredrik Lindberg