Date: Tue, 6 Dec 2005 16:29:50 +0200 From: Giorgos Keramidas <keramida@linux.gr> To: Fredrik Lindberg <fli+freebsd-current@shapeshifter.se> Cc: Dag-Erling Sm?rgrav <des@des.no>, Travis Mikalson <bofh@terranova.net>, current@freebsd.org, njl@freebsd.org Subject: Re: powerd Message-ID: <20051206142950.GA14331@flame.pc> In-Reply-To: <43958F9A.2000205@shapeshifter.se> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
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. - Giorgos
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20051206142950.GA14331>