Phantom pain with windfarm on diskless iMac G5

Markus Demleitner msdemlei at cl.uni-heidelberg.de
Thu Jan 5 22:47:51 EST 2006


On Thu, Jan 05, 2006 at 10:41:29AM +1100, Benjamin Herrenschmidt wrote:
> On Wed, 2006-01-04 at 15:20 +0100, Markus Demleitner wrote:
> > Hi,
> > 
> > I tried 2.6.15 on my diskless iMac G5 clients today, resulting in
> > 747 emulation mode (vrooom...!).  It turns out windfarm was
> > querying the hard disk temperature sensor, which usually is mounted
> > on the mounting bracket Apple uses.  We made the mistake of removing
> > these (from about 30 machines:-(), which in turn made
> > some way to detect the absence of the sensor (and tell it from a
> > simple failure).  However, the OF device trees still list the sensor
[...]
> > Even if there were a way to detect the absence of the sensor, there's
> > still the problem that windfarm_pm81.c insists on having a hd temp
> > sensor to work, so a fix would probably require spoiling that
> > wonderful
[...]
> > In short: Am I doomed to hack the kernels of my diskless clients to
> > eternity (or retrofit the sensors)?  Or is there a sane way to treat
> > that kind of problem?
> 
> Hrm... That isn't trivial as I don't see a clean way to detect that the
> HD is not there from windfarm without doing gross hacks, unless we can
> somewhat rely on the device-tree there...
> 
> What we could do is:
> 
>  - Make pm81 start the control loops regardless of the presence of the
> sensor, and have the control loop itself set the disk fan to an
> arbitrary low value if the sensor is not there. If the sensor kicks in
> "later" (because lm75 loads later), it will automatically start using
> the full control loop. That is easy.
If that works out, fine -- I could simply keep lm75 from loading and
I'd be happy.  However, I can see issues here of not detecting sensor
or other failures.  Worse, this isn't an issue of the disk fan (which
my machines don't have anyway) alone, but also of the main fan (right
now, we get an overtemp condition on top of that, with all
consequences).

>  - In lm75 itself, in case of failure, add a little hack that tests if
> the disk is present by looking in the device-tree, provided again that
> there is a node for it that can be detected... If not, then return an
> arbitrarily low temperature instead of a failure.
I'd like that (it's basically what I'm doing now, except that I
don't actually sense hd presence but just run the crippled kernels on
machines without disks).  Trouble is, as I said, that the dev tree
doesn't reflect disk absence.  Asking other parts of the kernel
introduces more trouble (the ata interface may not be compiled in and
in fact isn't on my client machines).

> Either that or a module/kernel command line option... The later is
> easier but less "neat" :)
Since I have no idea how to solve the problem with the other
"solutions", that's probably the best idea.  What do you think of a
parameter "debug_values" for windfarm_lm75_sensor.c that is either 0
(default) for returning actual sensor readings or some other value
that's then returned (which might also help with debugging, and the
naming of the parameter should make clear that you're not supposed to
use it unless you know what you're doing)?

While I'm about this: Did you resolve the issues with windfarm as
modules?

Thanks,

        Markus




More information about the Linuxppc64-dev mailing list