Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 06 Dec 2005 15:41:58 +0100
From:      Fredrik Lindberg <fli+freebsd-current@shapeshifter.se>
To:        Giorgos Keramidas <keramida@linux.gr>
Cc:        Dag-Erling Sm?rgrav <des@des.no>, Travis Mikalson <bofh@terranova.net>, current@freebsd.org, njl@freebsd.org
Subject:   Re: powerd
Message-ID:  <4395A336.3060909@shapeshifter.se>
In-Reply-To: <20051206142950.GA14331@flame.pc>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
Giorgos Keramidas wrote:
> On 2005-12-06 14:18, Fredrik Lindberg <fli+freebsd-current@shapeshifter.se> wrote:
> 
>>Dag-Erling Sm?rgrav wrote:
>>
>>>Fredrik Lindberg <fli+freebsd-current@shapeshifter.se> 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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4395A336.3060909>