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>