All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Zintakis <michael.zintakis@googlemail.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: lm-sensors@lm-sensors.org, Len Brown <lenb@kernel.org>,
	linux-acpi@vger.kernel.org
Subject: Re: [lm-sensors] Fintek f71882fg ACPI conflict
Date: Thu, 28 Jun 2012 00:00:56 +0100	[thread overview]
Message-ID: <4FEB90A8.8050901@googlemail.com> (raw)
In-Reply-To: <20120627171505.GB12712@roeck-us.net>

Hello Guenter and All,


> Please see http://hansdegoede.livejournal.com/7932.html; it should explain what
> is going on.
>   
This is precisely what I stumbled upon when reading the documentation 
about the kernel acpi parameters today and tried it straight away 
(though, in all honesty, I didn't have a clue that it is actually a bad 
idea until I read the article above - thanks for posting!). Could any of 
the more knowledgeable on here explain why is it such a bad idea please?

I also tried another, much cleaner solution which was described in that 
kernel documentation file, namely:

memmap=nn[KMG]$ss[KMG]
            [KNL,ACPI] Mark specific memory as reserved.
            Region of memory to be used, from ss to ss+nn.
            Example: Exclude memory from 0x18690000-0x1869ffff
                     memmap=64K$0x18690000
                     or
                     memmap=0x10000$0x18690000

So, I tried to use the following kernel command line parameter: 
"memmap=0x08$0x00000290" in order to force ACPI to mark this memory 
space as "reserved" and not use it, but that didn't work for some 
reason. When I tried to load the f71882fg driver the same error 
happened. :-(

The only solution, it seems, is by using "acpi_enforce_resources=lax" - 
that way it all works out.

Relying on ACPI is not an option for me whatsoever - I am using this 
board to run critical applications 24/7 and I *need* to have active fan, 
voltage and temperature management at *all* times.

ACPI cannot provide that!

The only piece of software which could provide what I need is the 
f71882fg driver and it does it very well, though, there I have one 
issue, which you, or anyone else could address for me, if possible. The 
issue is this:

Initially, when the board is first powered up, all fans (all 3 of them) 
are at a standstill because the board temperature is low. After some 
time passes by, when the temperature starts to rise steadily, it comes a 
point where the BIOS/the f71882fg driver increase the pwm parameter of 
the fans, but there comes a problem: due to the fact that the current 
increase is very gentle and also due to the fact of the actual physical 
fan inertia (for a lack of better word), the fan does *not* start.

That causes overheating!

If I gently push the fan or blow towards it, it starts spinning and 
BIOS/f71882fg takes over and controls it very well and it all works, 
until there comes a point again where the fan stops (outside temperature 
drops for example), in which case the whole cycle repeats.

I devised one ugly hack to fix this: I created a shell script, which 
runs every 10 seconds and checks to see if fanX_alarm=1 (this happens, 
for example, when there is current applied to the fan - i.e. its "pwmX" 
value is >0 and "fanX_input=0", i.e. the fan is not moving - the 
scenario I described above). If that is the case, then the script, 
temporarily, switches to "manual" control (pwmX_enable=1), throttles up 
the fan up to a maximum (i.e. pwmX=255), checks that the fan is running, 
and then restores automatic control (reverts pwmX_enable back to 2).

That way, when the fan is initially stopped and the BIOS/f71882fg driver 
applies some current to it in order to get it going and can't do it, it 
gets a gentle "push" from my script, after which automatic control takes 
over again and all is well.

That way it works, but I don't like it - there has to be another, more 
"civilised" way of doing this, surely!

One last question (though this is more specific to the f71882fg driver): 
I have a procfs file called "pwmX_auto_pointY" (Y being from 1-5), which 
indicates the various pwm current value which is to be applied for 
different points: 4 being when the controlling temperature is low (the 
value of pwmX_auto_point4_temp to be precise) and 1 being where the 
current is at its maximum - normally 255.

Now, what is the purpose of pwmX_auto_point5 - does this hold the pwm 
value where the fan is in an idle state (i.e. the temperature is below 
pwmX_auto_point4_temp)? Because on all 3 fans, I have this set to 1, 
which, I am assuming is when the fans are stopped.

Even if I bring this value to some "idle" current, that won't help much 
because when I first boot the system, the fans are *always* still, so 
even if the idle state is >1, that won't help me much, so there must be 
another - better - way than using a script to "kickstart" the fans 
initially, surely!

Apologies for this long post, but I have been banging my head against 
the wall with these problems for the past week with no end in sight!


MZ


WARNING: multiple messages have this Message-ID (diff)
From: Michael Zintakis <michael.zintakis@googlemail.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: lm-sensors@lm-sensors.org, Len Brown <lenb@kernel.org>,
	linux-acpi@vger.kernel.org
Subject: Re: [lm-sensors] Fintek f71882fg ACPI conflict
Date: Wed, 27 Jun 2012 23:00:56 +0000	[thread overview]
Message-ID: <4FEB90A8.8050901@googlemail.com> (raw)
In-Reply-To: <20120627171505.GB12712@roeck-us.net>

Hello Guenter and All,


> Please see http://hansdegoede.livejournal.com/7932.html; it should explain what
> is going on.
>   
This is precisely what I stumbled upon when reading the documentation 
about the kernel acpi parameters today and tried it straight away 
(though, in all honesty, I didn't have a clue that it is actually a bad 
idea until I read the article above - thanks for posting!). Could any of 
the more knowledgeable on here explain why is it such a bad idea please?

I also tried another, much cleaner solution which was described in that 
kernel documentation file, namely:

memmap=nn[KMG]$ss[KMG]
            [KNL,ACPI] Mark specific memory as reserved.
            Region of memory to be used, from ss to ss+nn.
            Example: Exclude memory from 0x18690000-0x1869ffff
                     memmapdK$0x18690000
                     or
                     memmap=0x10000$0x18690000

So, I tried to use the following kernel command line parameter: 
"memmap=0x08$0x00000290" in order to force ACPI to mark this memory 
space as "reserved" and not use it, but that didn't work for some 
reason. When I tried to load the f71882fg driver the same error 
happened. :-(

The only solution, it seems, is by using "acpi_enforce_resources=lax" - 
that way it all works out.

Relying on ACPI is not an option for me whatsoever - I am using this 
board to run critical applications 24/7 and I *need* to have active fan, 
voltage and temperature management at *all* times.

ACPI cannot provide that!

The only piece of software which could provide what I need is the 
f71882fg driver and it does it very well, though, there I have one 
issue, which you, or anyone else could address for me, if possible. The 
issue is this:

Initially, when the board is first powered up, all fans (all 3 of them) 
are at a standstill because the board temperature is low. After some 
time passes by, when the temperature starts to rise steadily, it comes a 
point where the BIOS/the f71882fg driver increase the pwm parameter of 
the fans, but there comes a problem: due to the fact that the current 
increase is very gentle and also due to the fact of the actual physical 
fan inertia (for a lack of better word), the fan does *not* start.

That causes overheating!

If I gently push the fan or blow towards it, it starts spinning and 
BIOS/f71882fg takes over and controls it very well and it all works, 
until there comes a point again where the fan stops (outside temperature 
drops for example), in which case the whole cycle repeats.

I devised one ugly hack to fix this: I created a shell script, which 
runs every 10 seconds and checks to see if fanX_alarm=1 (this happens, 
for example, when there is current applied to the fan - i.e. its "pwmX" 
value is >0 and "fanX_input=0", i.e. the fan is not moving - the 
scenario I described above). If that is the case, then the script, 
temporarily, switches to "manual" control (pwmX_enable=1), throttles up 
the fan up to a maximum (i.e. pwmX%5), checks that the fan is running, 
and then restores automatic control (reverts pwmX_enable back to 2).

That way, when the fan is initially stopped and the BIOS/f71882fg driver 
applies some current to it in order to get it going and can't do it, it 
gets a gentle "push" from my script, after which automatic control takes 
over again and all is well.

That way it works, but I don't like it - there has to be another, more 
"civilised" way of doing this, surely!

One last question (though this is more specific to the f71882fg driver): 
I have a procfs file called "pwmX_auto_pointY" (Y being from 1-5), which 
indicates the various pwm current value which is to be applied for 
different points: 4 being when the controlling temperature is low (the 
value of pwmX_auto_point4_temp to be precise) and 1 being where the 
current is at its maximum - normally 255.

Now, what is the purpose of pwmX_auto_point5 - does this hold the pwm 
value where the fan is in an idle state (i.e. the temperature is below 
pwmX_auto_point4_temp)? Because on all 3 fans, I have this set to 1, 
which, I am assuming is when the fans are stopped.

Even if I bring this value to some "idle" current, that won't help much 
because when I first boot the system, the fans are *always* still, so 
even if the idle state is >1, that won't help me much, so there must be 
another - better - way than using a script to "kickstart" the fans 
initially, surely!

Apologies for this long post, but I have been banging my head against 
the wall with these problems for the past week with no end in sight!


MZ


_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

  reply	other threads:[~2012-06-27 23:01 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-26 23:56 [lm-sensors] Fintek f71882fg ACPI conflict Michael Zintakis
2012-06-27 17:15 ` Guenter Roeck
2012-06-27 17:15   ` [lm-sensors] " Guenter Roeck
2012-06-27 23:00   ` Michael Zintakis [this message]
2012-06-27 23:00     ` Michael Zintakis
2012-06-28  1:45     ` Matthew Garrett
2012-06-28  1:45       ` Matthew Garrett
2012-06-28 11:15       ` Michael Zintakis
2012-06-28 11:15         ` Michael Zintakis
2012-06-28 12:40         ` Jean Delvare
2012-06-28 12:40           ` Jean Delvare
2012-06-28 12:53           ` Michael Zintakis
2012-06-28 12:53             ` Michael Zintakis
2012-06-28 13:27             ` Jean Delvare
2012-06-28 13:27               ` Jean Delvare
2012-06-29  5:35               ` Robert Hancock
2012-06-29  5:35                 ` Robert Hancock
2012-06-29 12:11                 ` Michael Zintakis
2012-06-29 12:11                   ` Michael Zintakis
2012-06-29 16:34                   ` Guenter Roeck
2012-06-29 16:34                     ` Guenter Roeck
2012-06-28  5:20     ` Guenter Roeck
2012-06-28  5:20       ` Guenter Roeck
2012-06-28 11:31       ` Michael Zintakis
2012-06-28 11:31         ` Michael Zintakis
2012-06-28 17:12         ` Guenter Roeck
2012-06-28 17:12           ` Guenter Roeck
2012-06-28 17:39           ` Michael Zintakis
2012-06-28 17:39             ` Michael Zintakis
2012-06-28 18:57             ` Guenter Roeck
2012-06-28 18:57               ` Guenter Roeck
2012-06-28  3:15 ` Andrey Repin
2012-06-28 11:36 ` Michael Zintakis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FEB90A8.8050901@googlemail.com \
    --to=michael.zintakis@googlemail.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=lm-sensors@lm-sensors.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.