MPX2/LM90 switching discussion

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Thanks for the comments, I start looking at the code this weekend,
> and since a journey of a thousand miles starts with the first step,
> it's probably best that I get a user-space program running to prove
> the concept and then go from there.

Absolutely. And experimenting with it will also let you test race
conditions, errors on switching etc... so you may have a better view on
what further code should care about.

> I found one of your suggestions very intriguing, writing a 
> independent LM90 driver, something like LM90MPX2 or some such, that a 
> user could insmod instead of or in addition to the LM90 driver. Only 
> MPX2 users would want to use it, and it would segregate this nasty 
> switching business away from the pristine code.

A replacement driver would have the drawback of duplicating part of the
code. A complementary driver would have the drawback that the lm90
driver would need some changes. I don't know what is worse, and trying
both for a wise comparison may be required.

> I've also thought a
> bit about how to solve the synchronization issue as simply as
> possible, and I'm toying with successive accesses reading from
> alternate CPUs. Basically, a incoming request would read from the
> current CPU and trigger a switch.

Yes, that's about the only way I can think about. Or you may try to read
the first CPU temp, then switch, then read all other values, then read
what would possibly be the second CPU temp. But I suspect that the LM90
will stop sampling values when you access it through the SMBus, so it'll
probably won't work (but you may want to try though).

> I know that the two-second caching
> presents a problem, so the minimum access period would have to be
> three seconds. Once again, this is an issue only LM90MPX2 users would
> need to be concerned about. So perhaps we can find a compromise
> between the solution resting in kernel-space, yet not bloating
> existing code (or at least co-habitating with it!)

I don't much get how you go from 2 to 3 seconds. At any rate, you may
want to read the LM90 datasheet. The 2 seconds delay is more or less
arbitrary. Depending on all chips supported (and you would only support
one) and the temperature update frequency, this delay may be lowered.

> I truly understand how badly the folks over at Iwill hosed this up. 
> I don't know /why/ they did what they did, but I do know that their
> BIOS handles it, and Alex's code handles it, so it ought to be
> possible in Linux.

Well, we never said it was not possible. We only questionned on what
would be considered acceptable, and what would not. Iwill BIOS is
specific to your motherboard, which means that anything that works is
basically acceptable. MBM is an all-in-one solution. We have kernel
drivers with an interface to user-space, and a library for use by the
other applications. This adds constraints at the price of evolutivity
(*kof*).

Good luck :)

-- 
Jean "Khali" Delvare
http://khali.linux-fr.org/



[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux